set(SIMGRID_VERSION_MAJOR "3")
set(SIMGRID_VERSION_MINOR "23")
-set(SIMGRID_VERSION_PATCH "0") # odd => git branch; even => stable release or released snapshot
+set(SIMGRID_VERSION_PATCH "3") # odd => git branch; even => stable release or released snapshot
set(SIMGRID_VERSION_DATE "2019") # Year for copyright information
endif()
# But we do need the core of Boost
-find_package(Boost 1.48)
-if(Boost_FOUND)
- include_directories(${Boost_INCLUDE_DIRS})
-else()
- if(APPLE)
- message(FATAL_ERROR "Boost libraries not found. Try to install them with 'sudo fink install boost1.53.nopython' (check the exact name with 'fink list boost') or 'sudo brew install boost'")
- else()
- message(FATAL_ERROR "Boost libraries not found. Install libboost-dev (>= 1.48.0).")
- endif()
-endif()
-
# cmake before 3.13.1 does not know about stacktrace components. Fix it.
# Usable components: https://www.boost.org/doc/libs/1_65_1/doc/html/stacktrace/configuration_and_build.html
set(_Boost_STACKTRACE_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp")
-if(minimal-bindings) # When we want a minimal jarfile, don't even search for boost optional components
- message(STATUS "Don't even look for boost optional components, as we build minimal binding libraries.")
-else()
- find_package(Boost 1.59 COMPONENTS context stacktrace_backtrace stacktrace_addr2line)
- set(Boost_FOUND 1) # These components are optionals
- message(STATUS "Mandatory components found. SimGrid is compilable.")
- message(STATUS "Looking for optional Boost components:")
-
- if (Boost_STACKTRACE_BACKTRACE_FOUND)
- message (STATUS " stacktrace: found the fast 'backtrace' implementation. Activating human-readable stack traces.")
- set(HAVE_BOOST_STACKTRACE_BACKTRACE 1)
- set(SIMGRID_DEP "${SIMGRID_DEP} -lboost_stacktrace_backtrace")
+ if(minimal-bindings) # When we want a minimal jarfile, don't even search for boost optional components
+ message(STATUS "Don't even look for boost optional components, as we build minimal binding libraries.")
+ find_package(Boost 1.48)
else()
- set(HAVE_BOOST_STACKTRACE_BACKTRACE 0)
-
- if (Boost_STACKTRACE_ADDR2LINE_FOUND)
- message (STATUS " stacktrace: found the slow 'addr2line' implementation. Activating human-readable stack traces.")
- set(HAVE_BOOST_STACKTRACE_ADDR2LINE 1)
- set(SIMGRID_DEP "${SIMGRID_DEP} -lboost_stacktrace_addr2line")
- else()
- message (STATUS " stacktrace: MISSING. Install libboost-stacktrace-dev to display the stacktraces.")
- set(HAVE_BOOST_STACKTRACE_ADDR2LINE 0)
- endif()
+ find_package(Boost 1.59 OPTIONAL_COMPONENTS context stacktrace_backtrace stacktrace_addr2line)
endif()
+ if(Boost_FOUND)
+ include_directories(${Boost_INCLUDE_DIRS})
+ message(STATUS "Mandatory components found. SimGrid is compilable.")
+ if (NOT minimal-bindings)
+ message(STATUS "Looking for optional Boost components:")
+ set(Boost_FOUND 1) # These components are optionals
+ CHECK_INCLUDE_FILE("backtrace.h" HAVE_BACKTRACE_H) # check that backtrace is actually possible
+ if (Boost_STACKTRACE_BACKTRACE_FOUND AND HAVE_BACKTRACE_H)
+ message (STATUS " stacktrace: found the fast 'backtrace' implementation. Activating human-readable stack traces.")
+ set(HAVE_BOOST_STACKTRACE_BACKTRACE 1)
+ else()
+ set(HAVE_BOOST_STACKTRACE_BACKTRACE 0)
+ if (Boost_STACKTRACE_ADDR2LINE_FOUND)
+ message (STATUS " stacktrace: found the slow 'addr2line' implementation. Activating human-readable stack traces.")
+ set(HAVE_BOOST_STACKTRACE_ADDR2LINE 1)
+ else()
+ message (STATUS " stacktrace: MISSING. Install libboost-stacktrace-dev to display the stacktraces.")
+ set(HAVE_BOOST_STACKTRACE_ADDR2LINE 0)
+ endif()
+ endif()
- if(Boost_CONTEXT_FOUND)
- message (STATUS " context: found. Activating Boost contexts.")
- set(HAVE_BOOST_CONTEXTS 1)
+ if(Boost_CONTEXT_FOUND)
+ message (STATUS " context: found. Activating Boost contexts.")
+ set(HAVE_BOOST_CONTEXTS 1)
+ else()
+ message (STATUS " context: MISSING. Install libboost-context-dev for this optional feature.")
+ set(HAVE_BOOST_CONTEXTS 0)
+ endif()
+ endif()
else()
- message (STATUS " context: MISSING. Install libboost-context-dev for this optional feature.")
- set(HAVE_BOOST_CONTEXTS 0)
- endif()
-endif()
-
+ if(APPLE)
+ message(FATAL_ERROR "Boost libraries not found. Try to install them with 'sudo fink install boost1.53.nopython' (check the exact name with 'fink list boost') or 'sudo brew install boost'")
+ else()
+ find_package(Boost 1.48) #try without optional libraries
+ if(NOT Boost_FOUND)
+ message(FATAL_ERROR "Boost libraries not found. Install libboost-dev (>= 1.48.0).")
+ else()
+ include_directories(${Boost_INCLUDE_DIRS})
+ message(STATUS "Mandatory components found. SimGrid is compilable.")
+ endif()
+ endif()
+ endif()
# Checks for header libraries functions.
CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_POSIX_GETTIME)
if(NS3_LIBRARY_PATH)
set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:${NS3_LIBRARY_PATH}")
endif()
-set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
+set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
set(SMPIMAIN ${libdir}/simgrid/smpimain)
set(SMPIREPLAYMAIN ${libdir}/simgrid/smpireplaymain)
if(NS3_LIBRARY_PATH)
set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:${NS3_LIBRARY_PATH}")
endif()
-set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
+set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
set(SMPIMAIN ${CMAKE_BINARY_DIR}/lib/simgrid/smpimain)
set(SMPIREPLAYMAIN ${CMAKE_BINARY_DIR}/lib/simgrid/smpireplaymain)