-message(STATUS "Looking for lib SimGrid")
-if(HAVE_SIMGRID_LIB)
- message(STATUS "Looking for lib SimGrid - found")
- if(CMAKE_CACHE_MAJOR_VERSION EQUAL "2" AND CMAKE_CACHE_MINOR_VERSION GREATER "7") #need cmake version 2.8
- get_filename_component(simgrid_version ${HAVE_SIMGRID_LIB} REALPATH)
- string(REPLACE "${HAVE_SIMGRID_LIB}." "" simgrid_version "${simgrid_version}")
- string(REGEX MATCH "^[0-9]" SIMGRID_MAJOR_VERSION "${simgrid_version}")
- string(REGEX MATCH "^[0-9].[0-9]" SIMGRID_MINOR_VERSION "${simgrid_version}")
- string(REGEX MATCH "^[0-9].[0-9].[0-9]" SIMGRID_PATCH_VERSION "${simgrid_version}")
- string(REGEX REPLACE "^${SIMGRID_MINOR_VERSION}." "" SIMGRID_PATCH_VERSION "${SIMGRID_PATCH_VERSION}")
- string(REGEX REPLACE "^${SIMGRID_MAJOR_VERSION}." "" SIMGRID_MINOR_VERSION "${SIMGRID_MINOR_VERSION}")
- message(STATUS "Simgrid version : ${SIMGRID_MAJOR_VERSION}.${SIMGRID_MINOR_VERSION}")
- endif(CMAKE_CACHE_MAJOR_VERSION EQUAL "2" AND CMAKE_CACHE_MINOR_VERSION GREATER "7")
-else(HAVE_SIMGRID_LIB)
- message(STATUS "Looking for lib SimGrid - not found")
-endif(HAVE_SIMGRID_LIB)
-
-message(STATUS "Looking for gras.h")
-if(HAVE_GRAS_H)
-message(STATUS "Looking for gras.h - found")
-else(HAVE_GRAS_H)
-message(STATUS "Looking for gras.h - not found")
-endif(HAVE_GRAS_H)
-
-if(HAVE_SIMGRID_LIB AND HAVE_GRAS_H)
-else(HAVE_SIMGRID_LIB AND HAVE_GRAS_H)
- message(FATAL_ERROR "You need to install simgrid and set environment variable SIMGRID_ROOT!")
-endif(HAVE_SIMGRID_LIB AND HAVE_GRAS_H)
\ No newline at end of file
+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
+ 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 this library. Enable it with e.g. -std=c++11")
+ endif ()
+ unset(_SIMGRID_CXX11_ENABLED CACHE)
+ endif ()
+endif ()
+