Tidyup the Apple RPATH usage

Use @rpath for build and install to reference dynamic libraries
Set RPATH to "@executable_path/../lib" when linking
This commit is contained in:
Jake Turner
2021-03-13 06:22:14 +00:00
committed by Baldur Karlsson
parent 67e277717c
commit 9c787bd05d
3 changed files with 14 additions and 6 deletions
+4 -1
View File
@@ -36,6 +36,7 @@ endif() # if(ENABLE_QRENDERDOC)
set(QMAKE_CONFIG "debug")
set(QMAKE_LDFLAGS "")
set(QMAKE_CXXFLAGS "")
set(QMAKE_RPATHDIR "")
set(SWIG_FLAGS "")
if(RELEASE_MODE)
@@ -83,8 +84,9 @@ if(ENABLE_VULKAN)
endif()
if(APPLE)
set(QMAKE_RPATHDIR "@executable_path/../lib ")
add_custom_command(OUTPUT RenderDoc.icns
COMMAND echo Creating OS X Icon
COMMAND echo Creating OS X Icon
COMMAND mkdir -p RenderDoc.iconset
COMMAND qlmanage -t -s 1024 -o . ${CMAKE_CURRENT_SOURCE_DIR}/Resources/logo.svg
COMMAND sips -z 16 16 logo.svg.png --out RenderDoc.iconset/icon_16x16.png
@@ -167,6 +169,7 @@ file(WRITE
"QMAKE_CXXFLAGS+=${warning_flags}\n"
"QMAKE_CXXFLAGS+=${QMAKE_CXXFLAGS}\n"
"QMAKE_LFLAGS+=${QMAKE_LDFLAGS}\n"
"QMAKE_RPATHDIR+=${QMAKE_RPATHDIR}\n"
"\n"
"LIB_SUFFIX=${LIB_SUFFIX}\n"
"LIB_SUBFOLDER_TRAIL_SLASH=${LIB_SUBFOLDER_TRAIL_SLASH}\n"
+4 -4
View File
@@ -595,11 +595,11 @@ endif()
# On macOS set the rpath so that linked libraries are relative to the executable, not absolute
if(APPLE)
set_target_properties(renderdoc PROPERTIES MACOSX_RPATH 1)
set_target_properties(renderdoc PROPERTIES MACOSX_RPATH TRUE)
set_target_properties(renderdoc PROPERTIES SKIP_BUILD_RPATH TRUE)
set_target_properties(renderdoc PROPERTIES INSTALL_RPATH "@executable_path/../lib")
set_target_properties(renderdoc PROPERTIES INSTALL_NAME_DIR "@executable_path/../lib")
set_target_properties(renderdoc PROPERTIES BUILD_WITH_INSTALL_RPATH 1)
set_target_properties(renderdoc PROPERTIES BUILD_WITH_INSTALL_NAME_DIR 1)
set_target_properties(renderdoc PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
set_target_properties(renderdoc PROPERTIES BUILD_WITH_INSTALL_NAME_DIR TRUE)
endif()
if(ANDROID)
+6 -1
View File
@@ -49,7 +49,12 @@ if(ANDROID)
else()
set(CMAKE_SKIP_BUILD_RPATH TRUE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "$ORIGIN/:$ORIGIN/../lib${LIB_SUFFIX}/${LIB_SUBFOLDER_TRAIL_SLASH}")
if(APPLE)
set(CMAKE_MACOSX_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
else()
set(CMAKE_INSTALL_RPATH "$ORIGIN/:$ORIGIN/../lib${LIB_SUFFIX}/${LIB_SUBFOLDER_TRAIL_SLASH}")
endif()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
add_executable(renderdoccmd ${sources})