+if (SimGrid_FOUND AND NOT CMAKE_VERSION VERSION_LESS 2.8.12)
+ add_library(SimGrid::SimGrid SHARED IMPORTED)
+ set_target_properties(SimGrid::SimGrid PROPERTIES
+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${SimGrid_INCLUDE_DIR}
+ INTERFACE_COMPILE_FEATURES cxx_alias_templates
+ IMPORTED_LOCATION ${SimGrid_LIBRARY}
+ )
+ # We need C++11, so check for it just in case the user removed it since compiling SimGrid
+ if (NOT CMAKE_VERSION VERSION_LESS 3.8)
+ # 3.8+ allows us to simply require C++11 (or higher)
+ set_property(TARGET SimGrid::SimGrid PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_11)
+ elseif (NOT CMAKE_VERSION VERSION_LESS 3.1)
+ # 3.1+ is similar but for certain features. We pick just one
+ set_property(TARGET SimGrid::SimGrid PROPERTY INTERFACE_COMPILE_FEATURES cxx_alias_templates)
+ else ()
+ # Old CMake can't do much. Just check the CXX_FLAGS and inform the user when a C++11 feature does not work
+ include(CheckCXXSourceCompiles)
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}")
+ check_cxx_source_compiles("using Foo = int; int main(){}" _SIMGRID_CXX11_ENABLED)
+ if (NOT _SIMGRID_CXX11_ENABLED)
+ message(WARNING "C++11 is required to use SimGrid. Enable it with e.g. -std=c++11")
+ endif ()
+ unset(_SIMGRID_CXX11_ENABLED CACHE)
+ endif ()
+endif ()