Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to sanitize the lib rpath on Apple
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 31 May 2017 08:49:49 +0000 (10:49 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Wed, 31 May 2017 08:49:49 +0000 (10:49 +0200)
CMakeLists.txt
tools/cmake/MakeLib.cmake

index 8fede4c..58d7dbb 100644 (file)
@@ -156,10 +156,6 @@ if(NOT PYTHONINTERP_FOUND)
   message(FATAL_ERROR "Please install Python (version 3 or higher).")
 endif()
 
   message(FATAL_ERROR "Please install Python (version 3 or higher).")
 endif()
 
-if (APPLE)
-  set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
-  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-endif()
 SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
 
 ### Compute the include paths
 SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
 
 ### Compute the include paths
index d7c456a..6f4cf6b 100644 (file)
@@ -4,10 +4,13 @@
 # See https://cmake.org/Wiki/CMake_RPATH_handling and Java.cmake
 set(MACOSX_RPATH ON)
 if(APPLE)
 # See https://cmake.org/Wiki/CMake_RPATH_handling and Java.cmake
 set(MACOSX_RPATH ON)
 if(APPLE)
+  SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # When installed, use system path
+  set(CMAKE_SKIP_BUILD_RPATH FALSE)         # When executing from build tree, take the lib from the build path if exists
+  set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) # When executing from build tree, take the lib from the system path if exists
+  
   # add the current location of libsimgrid-java.dynlib as a location for libsimgrid.dynlib
   # (useful when unpacking the native libraries from the jarfile)
   # add the current location of libsimgrid-java.dynlib as a location for libsimgrid.dynlib
   # (useful when unpacking the native libraries from the jarfile)
-  set(CMAKE_INSTALL_RPATH "@loader_path/.")
-  SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+  set(CMAKE_INSTALL_RPATH "@loader_path/.;@rpath/.")
 endif()
 
 ###############################
 endif()
 
 ###############################