# CMake find module to search for the SimGrid library.
-# Copyright (c) 2016-2018. The SimGrid Team.
+# Copyright (c) 2016-2020. The SimGrid Team.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the license (GNU LGPL) which comes with this package.
# DEVELOPERS OF PROGRAMS USING SIMGRID
# ------------------------------------
#
-# 1. Include this file in your own CMakeLists.txt
+# 1. Include this file in your own CMakeLists.txt (before defining any target)
# Either by copying it in your tree, or (recommended) by using the
# version automatically installed by SimGrid.
-#
+#
# 2. Afterward, if you have CMake >= 2.8.12, this will define a
# target called 'SimGrid::Simgrid'. Use it as:
# target_link_libraries(your-simulator SimGrid::SimGrid)
# #else
# (code to use with SimGrid v3.19+)
# #endif
+#
+# Since SimGrid header files require C++11, so we set CMAKE_CXX_STANDARD to 11.
+# Change this variable in your own file if you need a later standard.
#
# IMPROVING THIS FILE
cmake_minimum_required(VERSION 2.8)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
find_path(SimGrid_INCLUDE_DIR
- NAMES simgrid_config.h
+ NAMES simgrid/config.h
+ NAMES simgrid/version.h
PATHS ${SimGrid_PATH}/include /opt/simgrid/include
)
+if (NOT SimGrid_INCLUDE_DIR)
+ # search under the old name
+ find_path(SimGrid_INCLUDE_DIR
+ NAMES simgrid_config.h
+ PATHS ${SimGrid_PATH}/include /opt/simgrid/include
+ )
+endif()
find_library(SimGrid_LIBRARY
NAMES simgrid
PATHS ${SimGrid_PATH}/lib /opt/simgrid/lib
if (SimGrid_INCLUDE_DIR)
set(SimGrid_VERSION_REGEX "^#define SIMGRID_VERSION_(MAJOR|MINOR|PATCH) ([0-9]+)$")
- file(STRINGS "${SimGrid_INCLUDE_DIR}/simgrid_config.h" SimGrid_VERSION_STRING REGEX ${SimGrid_VERSION_REGEX})
+ if (EXISTS "${SimGrid_INCLUDE_DIR}/simgrid/version.h")
+ file(STRINGS "${SimGrid_INCLUDE_DIR}/simgrid/version.h" SimGrid_VERSION_STRING REGEX ${SimGrid_VERSION_REGEX})
+ elseif (EXISTS "${SimGrid_INCLUDE_DIR}/simgrid/config.h")
+ file(STRINGS "${SimGrid_INCLUDE_DIR}/simgrid/config.h" SimGrid_VERSION_STRING REGEX ${SimGrid_VERSION_REGEX})
+ else()
+ file(STRINGS "${SimGrid_INCLUDE_DIR}/simgrid_config.h" SimGrid_VERSION_STRING REGEX ${SimGrid_VERSION_REGEX})
+ endif()
set(SimGrid_VERSION "")
# Concat the matches to MAJOR.MINOR.PATCH assuming they appear in this order