From b54984063cd61636c57add80522bad23f70bb00a Mon Sep 17 00:00:00 2001 From: Niels Dekker Date: Tue, 3 Feb 2026 14:03:06 +0100 Subject: [PATCH] ENH: Add relative path to lib directory to RPATH on Linux and MacOS Addresses issue #1402, Avoid "error while loading shared libraries" on Linux --- Core/CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 3b70abf12..204782b29 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -277,8 +277,14 @@ set(ELASTIX_LIBRARIES elastix_lib transformix_lib PARENT_SCOPE) if(ELASTIX_BUILD_EXECUTABLE AND NOT WIN32) # Tell the executables where to find the required .so files. - set_target_properties(elastix_exe transformix_exe - PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:${ITK_DIR}") + # Supports having the executables in bin, and the .so files in the lib directory next to the bin. + if (APPLE) + set_target_properties(elastix_exe transformix_exe + PROPERTIES BUILD_RPATH "@executable_path/../lib" INSTALL_RPATH "@executable_path/../lib:${CMAKE_INSTALL_PREFIX}/lib:${ITK_DIR}") + else() + set_target_properties(elastix_exe transformix_exe + PROPERTIES BUILD_RPATH "\$ORIGIN/../lib" INSTALL_RPATH "\$ORIGIN/../lib:${CMAKE_INSTALL_PREFIX}/lib:${ITK_DIR}") + endif() endif() if(ELASTIX_BUILD_EXECUTABLE AND NOT ELASTIX_NO_INSTALL_EXECUTABLES)