Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
disable dlopen when under sanitizers
[simgrid.git] / CMakeLists.txt
index e22357c..b16aeab 100644 (file)
@@ -90,7 +90,7 @@ if ((NOT DEFINED enable_smpi) OR enable_smpi)
     elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
       set(SMPI_Fortran_FLAGS "\"-fPIC\" \"-nofor-main\"")
       set(SMPI_Fortran_LIBS "\"-lifcore\"")
-    elseif(CMAKE_Fortran_COMPILER_ID MATCHES "PGI") # flang
+    elseif(CMAKE_Fortran_COMPILER_ID MATCHES "PGI|Flang") # flang
       set(SMPI_Fortran_FLAGS "\"-fPIC\"")
       set(SMPI_Fortran_LIBS "")
     endif()
@@ -234,6 +234,9 @@ if(enable_ns3)
   include(FindNS3)
   if (SIMGRID_HAVE_NS3)
     set(SIMGRID_HAVE_NS3 1)
+    foreach(lib core csma point-to-point internet network applications)
+      set(SIMGRID_DEP "${SIMGRID_DEP} -lns${NS3_VERSION}-${lib}${NS3_SUFFIX}")
+    endforeach()
   else()
     message(FATAL_ERROR "Cannot find NS3. Please install it (apt-get install ns3 libns3-dev) or disable that cmake option")
   endif()
@@ -378,17 +381,8 @@ else()
 endif()
 
 include(FindLibunwind)
-if(LIBUNWIND_FOUND)
-  if(NOT APPLE)
-    foreach(lib ${LIBUNWIND_LIBRARIES})
-      SET(SIMGRID_DEP "${SIMGRID_DEP} ${lib}")
-    endforeach()
-    unset(lib)
-  else()
-    # Apple forbids to link directly against its libunwind implementation
-    # So let's comply and link against the System framework
-    SET(SIMGRID_DEP "${SIMGRID_DEP} -lSystem")
-  endif()
+if(HAVE_LIBUNWIND)
+  SET(SIMGRID_DEP "${SIMGRID_DEP} ${LIBUNWIND_LIBRARIES}")
 else()
   if(enable_model-checking)
     message(FATAL_ERROR "Please install libunwind-dev libdw-dev libelf-dev libevent-dev if you want to compile the SimGrid model checker.")
@@ -410,6 +404,8 @@ else()
   SET(SIMGRID_HAVE_MC 0)  
   set(HAVE_MMALLOC 0)
 endif()
+mark_as_advanced(PATH_LIBDW_H)
+mark_as_advanced(PATH_LIBDW_LIB)
 
 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")
@@ -622,6 +618,10 @@ endif()
 file(REMOVE test_stackgrowth)
 #--------------------------------------------------------------------------------------------------
 
+if(enable_address_sanitizer OR enable_thread_sanitizer OR enable_undefined_sanitizer)
+  set(HAVE_SANITIZER 1)
+endif()
+
 ### check for addr2line
 find_path(ADDR2LINE NAMES addr2line    PATHS NO_DEFAULT_PATHS)
 if(ADDR2LINE)