Skip to content

Commit bca4562

Browse files
committed
macos: Fix executable RPATHs
1 parent 5b382a7 commit bca4562

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

CMakeLists.txt

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,25 +287,35 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
287287
RUNTIME DESTINATION ./install/bin COMPONENT Runtime
288288
)
289289

290-
set(DEP_DIR "${CMAKE_BINARY_DIR}") # where to look for dependencies when fixing up
290+
set(BUNDLE_PATH "${CMAKE_BINARY_DIR}/iris.app") # where to look for dependencies when fixing up
291291
file(GLOB VULKAN_DYLIBS $ENV{VULKAN_SDK}/lib/libvulkan.*.dylib)
292292
set(VULKAN_DYLIBS ${VULKAN_DYLIBS} $ENV{VULKAN_SDK}/lib/libMoltenVK.dylib)
293293
install(CODE "
294-
execute_process(COMMAND echo \"Fixing up bundle dependencies...\")
295-
execute_process(COMMAND echo \"Dependency dir: ${DEP_DIR}\")
294+
execute_process(COMMAND echo \"Preparing to bundle iris...\")
295+
execute_process(COMMAND echo \"Bundle path: ${BUNDLE_PATH}\")
296296
execute_process(COMMAND echo \"Vulkan dylibs: ${VULKAN_DYLIBS}\")
297-
make_directory(${DEP_DIR}/iris.app/Contents/Resources/vulkan/icd.d)
298-
make_directory(${DEP_DIR}/iris.app/Contents/Frameworks)
297+
execute_process(COMMAND echo \"Adding local RPATH...\")
298+
execute_process(
299+
COMMAND install_name_tool -add_rpath
300+
\"@executable_path/../Frameworks\"
301+
\"${BUNDLE_PATH}/Contents/MacOS/iris\"
302+
)
303+
execute_process(COMMAND echo \"Creating ICD JSON directory...\")
304+
make_directory(${BUNDLE_PATH}/Contents/Resources/vulkan/icd.d)
305+
execute_process(COMMAND echo \"Creating Frameworks directory...\")
306+
make_directory(${BUNDLE_PATH}/Contents/Frameworks)
307+
execute_process(COMMAND echo \"Copying files...\")
299308
file(COPY
300309
${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK_icd.json
301-
DESTINATION ${DEP_DIR}/iris.app/Contents/Resources/vulkan/icd.d/
310+
DESTINATION ${BUNDLE_PATH}/Contents/Resources/vulkan/icd.d/
302311
)
303312
file(COPY
304313
${VULKAN_DYLIBS}
305-
DESTINATION ${DEP_DIR}/iris.app/Contents/Frameworks/
314+
DESTINATION ${BUNDLE_PATH}/Contents/Frameworks/
306315
)
316+
execute_process(COMMAND echo \"Signing app bundle...\")
307317
execute_process(COMMAND
308-
codesign --force --deep --sign - ${DEP_DIR}/iris.app
318+
codesign --force --deep --sign - ${BUNDLE_PATH}
309319
RESULT_VARIABLE codesign_result
310320
OUTPUT_VARIABLE codesign_output
311321
)
@@ -321,11 +331,11 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
321331
install(CODE
322332
"include(${CMAKE_CURRENT_SOURCE_DIR}/AppImage.cmake)
323333
make_appimage(
324-
EXE \"${DEP_DIR}/iris\"
334+
EXE \"${CMAKE_CURRENT_SOURCE_DIR}/build/iris\"
325335
NAME \"Iris\"
326336
ICON \"${CMAKE_CURRENT_SOURCE_DIR}/res/iris.png\"
327337
DIR_ICON \"${CMAKE_CURRENT_SOURCE_DIR}/res/iris.png\"
328-
OUTPUT_NAME \"${DEP_DIR}/Iris-${GIT_VERSION_STRING}.AppImage\"
338+
OUTPUT_NAME \"${CMAKE_CURRENT_SOURCE_DIR}/build/Iris-${GIT_VERSION_STRING}.AppImage\"
329339
)
330340
"
331341
COMPONENT Runtime

0 commit comments

Comments
 (0)