From 22031be01d9f9567b45111d4697ec2e96f498f81 Mon Sep 17 00:00:00 2001 From: "Ethan J. Musser" Date: Mon, 27 Apr 2026 12:54:40 -0400 Subject: [PATCH] cmake: Specify rel. RPATH for install-time prefix --- CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f31514c7..6afea221 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,11 +130,19 @@ else() endif() # -# Use full RPATH +# Specify a relative RPATH to support both configure-time and install-time prefixes. # set (CMAKE_SKIP_BUILD_RPATH FALSE) set (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -set (CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) +if(APPLE) + set(CMAKE_INSTALL_RPATH "@loader_path/../lib") +elseif(UNIX) + # [[ ]] keeps $ORIGIN literal for the linker instead of letting CMake expand it. + set(CMAKE_INSTALL_RPATH [[$ORIGIN/../lib]]) +else() + # RPATH is not supported for non-ELF platforms. Keep the configure-time default. + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +endif() set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) #