set(SIMGRID_VERSION_MAJOR "3")
set(SIMGRID_VERSION_MINOR "13")
-set(SIMGRID_VERSION_PATCH "0")
-set(SIMGRID_VERSION_EXTRA "-devel") # Extra words to add to version string (e.g. -rc1)
+set(SIMGRID_VERSION_PATCH "90")
+set(SIMGRID_VERSION_EXTRA "-prealpha") # Extra words to add to version string (e.g. -rc1)
set(SIMGRID_VERSION_DATE "2016") # Year for copyright information
if(WIN32)
set(Boost_USE_STATIC_LIBS 1)
endif()
+set(HAVE_PAPI 0)
+if(enable_smpi_papi)
+ include(FindPAPI)
+ if (NOT HAVE_PAPI)
+ message(FATAL_ERROR "Cannot find PAPI. Please install it (apt-get install papi-tools libpapi-dev) or disable PAPI bindings.")
+ endif()
+endif()
find_package(Boost 1.48)
if(Boost_FOUND)
endif()
endif()
-# Try again to see if we have libboost-context
-find_package(Boost 1.42 COMPONENTS context)
-set(Boost_FOUND 1) # We don't care of whether this component is missing
+#Boost context 1.61 will break compatibility with our implementation.
+#Warn users about that
+find_package(Boost 1.61 COMPONENTS context)
if(Boost_FOUND AND Boost_CONTEXT_FOUND)
- # We should use feature detection for this instead:
- if (Boost_VERSION LESS 105600)
- message("Found Boost.Context API v1")
- set(HAVE_BOOST_CONTEXTS 1)
+ message("WARNING : our implementation of Boost context factory is not compatible with Boost >=1.61 yet.")
+
+ set(Boost_FOUND 1)
+ set(HAVE_BOOST_CONTEXTS 0)
+else()
+# Try again to see if we have libboost-context
+ find_package(Boost 1.42 COMPONENTS context)
+ set(Boost_FOUND 1) # We don't care of whether this component is missing
+
+ if(Boost_FOUND AND Boost_CONTEXT_FOUND)
+ # We should use feature detection for this instead:
+ if (Boost_VERSION LESS 105600)
+ message("Found Boost.Context API v1")
+ set(HAVE_BOOST_CONTEXTS 1)
+ else()
+ message("Found Boost.Context API v2")
+ set(HAVE_BOOST_CONTEXTS 2)
+ endif()
else()
- message("Found Boost.Context API v2")
- set(HAVE_BOOST_CONTEXTS 2)
+ message (" boost : found.")
+ message (" boost-context: missing. Install libboost-context-dev for this optional feature.")
+ set(HAVE_BOOST_CONTEXTS 0)
endif()
-else()
- message (" boost : found.")
- message (" boost-context: missing. Install libboost-context-dev for this optional feature.")
- set(HAVE_BOOST_CONTEXTS 0)
endif()
-# Try again to see if we have libboost-context
-find_package(Boost 1.42 COMPONENTS context)
-set(Boost_FOUND 1) # We don't care of whether this component is missing
-
-if(Boost_FOUND AND Boost_GRAPH_FOUND)
- set(HAVE_BOOST_GRAPH 1)
-else()
- message (" boost : found.")
- message (" boost-graph : missing. Install libboost-graph-dev for this optional feature.")
- set(HAVE_BOOST_GRAPH 0)
-endif()
+# Try again to see if we have libboost-graph
+#find_package(Boost 1.42 COMPONENTS graph)
+#set(Boost_FOUND 1) # We don't care of whether this component is missing
+#
+#if(Boost_FOUND AND Boost_GRAPH_FOUND)
+# set(HAVE_BOOST_GRAPH 1)
+#else()
+# message (" boost : found.")
+# message (" boost-graph : missing. Install libboost-graph-dev for this optional feature.")
+# set(HAVE_BOOST_GRAPH 0)
+#endif()
# Checks for header libraries functions.
-CHECK_LIBRARY_EXISTS(execinfo backtrace "" HAVE_BACKTRACE_IN_LIBEXECINFO)
CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_POSIX_GETTIME)
CHECK_LIBRARY_EXISTS(pthread pthread_create "" HAVE_PTHREAD)
CHECK_INCLUDE_FILE("ucontext.h" HAVE_UCONTEXT_H)
CHECK_INCLUDE_FILE("linux/futex.h" HAVE_FUTEX_H)
+CHECK_FUNCTION_EXISTS(backtrace HAVE_BACKTRACE)
CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
CHECK_FUNCTION_EXISTS(getdtablesize HAVE_GETDTABLESIZE)
SET(HAVE_MMALLOC 0)
endif()
+if (enable_model-checking AND enable_ns3)
+ message(FATAL_ERROR "Cannot activate both model-checking and NS3 bindings: NS3 pull too much dependencies for the MC to work")
+endif()
+
if(enable_smpi)
include(FindGFortran)
SET(HAVE_SMPI 1)
# So we include only where needed, and compile with -Wundef to notice the missing includes.
# But cmake sometimes defines to the empty definition (#define HAVE_VALGRIND_H).
# So we have to make sure that everything got a decent value before generating the files.
-foreach(var HAVE_EXECINFO_H HAVE_FUTEX_H HAVE_GETDTABLESIZE HAVE_GETTIMEOFDAY HAVE_MMAP HAVE_NANOSLEEP HAVE_POPEN
+foreach(var HAVE_BACKTRACE HAVE_EXECINFO_H HAVE_FUTEX_H HAVE_GETDTABLESIZE HAVE_GETTIMEOFDAY HAVE_MMAP HAVE_NANOSLEEP HAVE_POPEN
HAVE_POSIX_GETTIME HAVE_PROCESS_VM_READV HAVE_SIGNAL_H HAVE_SYS_PARAM_H HAVE_SYS_SYSCTL_H HAVE_SYSCONF
HAVE_UCONTEXT_H HAVE_UNISTD_H HAVE_VALGRIND_H HAVE_VASPRINTF)
if(${var})
message(" Smpi fortran ..............: ${SMPI_FORTRAN}")
message(" MPICH3 testsuite ..........: ${enable_smpi_MPICH3_testsuite}")
message(" Privatization .............: ${HAVE_PRIVATIZATION}")
+message(" PAPI support...............: ${HAVE_PAPI}")
message(" Compile Boost.Context support: ${HAVE_BOOST_CONTEXTS}")
message("")
message(" Maintainer mode .............: ${enable_maintainer_mode}")