From a86b0be5aea37e0b6894f8a33a5bdc8855845ef3 Mon Sep 17 00:00:00 2001 From: Frank Gaede Date: Wed, 17 Apr 2024 15:22:12 +0200 Subject: [PATCH 1/2] add correct rpath settings (for macos) - see (LCIO PR#121) --- .../ilcsoft_default_rpath_settings.cmake | 56 ++++++++----------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/cmakemodules/ilcsoft_default_rpath_settings.cmake b/cmakemodules/ilcsoft_default_rpath_settings.cmake index fc1bc73..87054c3 100644 --- a/cmakemodules/ilcsoft_default_rpath_settings.cmake +++ b/cmakemodules/ilcsoft_default_rpath_settings.cmake @@ -1,35 +1,27 @@ - - # rpath treatment for macos: always use rpath: - # ( maybe we should also use this on other platforms ?) - if (APPLE) - # use, i.e. don't skip the full RPATH for the build tree - SET(CMAKE_SKIP_BUILD_RPATH FALSE) - - # when building, don't use the install RPATH already - # (but later on when installing) - SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) - - SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") - - # add the automatically determined parts of the RPATH - # which point to directories outside the build tree to the install RPATH - SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - - # the RPATH to be used when installing, but only if it's not a system directory - LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) - IF("${isSystemDir}" STREQUAL "-1") - SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") - ENDIF("${isSystemDir}" STREQUAL "-1") - +#---RPATH options------------------------------------------------------------------------------- +# When building, don't use the install RPATH already (but later on when installing) +set(CMAKE_SKIP_BUILD_RPATH FALSE) # don't skip the full RPATH for the build tree +set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) # use always the build RPATH for the build tree +set(CMAKE_MACOSX_RPATH TRUE) # use RPATH for MacOSX +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # point to directories outside the build tree to the install RPATH + +# Check whether to add RPATH to the installation (the build tree always has the RPATH enabled) +if(APPLE) + set(CMAKE_INSTALL_NAME_DIR "@rpath") + set(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR}") # self relative LIBDIR + # the RPATH to be used when installing, but only if it's not a system directory + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" isSystemDir) + if("${isSystemDir}" STREQUAL "-1") + set(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR}") + endif("${isSystemDir}" STREQUAL "-1") +elseif(LCIO_SET_RPATH) + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") # install LIBDIR + # the RPATH to be used when installing, but only if it's not a system directory + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" isSystemDir) + if("${isSystemDir}" STREQUAL "-1") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + endif("${isSystemDir}" STREQUAL "-1") else() - - # add library install path to the rpath list - SET( CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" ) - MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH ) - - # append link pathes to rpath list - SET( CMAKE_INSTALL_RPATH_USE_LINK_PATH 1 ) - MARK_AS_ADVANCED( CMAKE_INSTALL_RPATH_USE_LINK_PATH ) - + set(CMAKE_SKIP_INSTALL_RPATH TRUE) # skip the full RPATH for the install tree endif() From bdf3d4cf13fd4f7395a325f7fb3a8fdba0a51863 Mon Sep 17 00:00:00 2001 From: tmadlener Date: Mon, 29 Apr 2024 14:53:59 +0200 Subject: [PATCH 2/2] Remove LCIO specific part (leftover from copying) --- cmakemodules/ilcsoft_default_rpath_settings.cmake | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cmakemodules/ilcsoft_default_rpath_settings.cmake b/cmakemodules/ilcsoft_default_rpath_settings.cmake index 87054c3..171880d 100644 --- a/cmakemodules/ilcsoft_default_rpath_settings.cmake +++ b/cmakemodules/ilcsoft_default_rpath_settings.cmake @@ -14,13 +14,6 @@ if(APPLE) if("${isSystemDir}" STREQUAL "-1") set(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR}") endif("${isSystemDir}" STREQUAL "-1") -elseif(LCIO_SET_RPATH) - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") # install LIBDIR - # the RPATH to be used when installing, but only if it's not a system directory - list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" isSystemDir) - if("${isSystemDir}" STREQUAL "-1") - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") - endif("${isSystemDir}" STREQUAL "-1") else() set(CMAKE_SKIP_INSTALL_RPATH TRUE) # skip the full RPATH for the install tree endif()