vulkaninfo: fix app bundle not finding loader
authorCharles Giessen <charles@lunarg.com>
Tue, 7 Apr 2020 19:18:18 +0000 (13:18 -0600)
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>
Tue, 7 Apr 2020 20:18:33 +0000 (14:18 -0600)
The change of vulkaninfo to dlopen the loader broke the app bundle.
This commit fixes it by manually setting up DYLD_LIBRARY_PATH before
starting vulkaninfo, ensuring that it can be found.

vulkaninfo/macOS/vulkaninfo.cmake
vulkaninfo/macOS/vulkaninfo.sh
vulkaninfo/macOS/vulkaninfo_run.command [new file with mode: 0755]

index 7625384..723473b 100644 (file)
@@ -25,6 +25,7 @@ add_executable(vulkaninfo-bundle
                vulkaninfo.cpp
                ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
                ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.sh
+               ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo_run.command
                ${CMAKE_CURRENT_SOURCE_DIR}/macOS/Resources/VulkanIcon.icns
                ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.mm
                ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.h)
@@ -38,6 +39,7 @@ target_link_libraries(vulkaninfo-bundle ${Vulkan_LIBRARY} "-framework AppKit -fr
 target_include_directories(vulkaninfo-bundle PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${CMAKE_CURRENT_SOURCE_DIR}/generated ${CMAKE_BINARY_DIR}/vulkaninfo ${VulkanHeaders_INCLUDE_DIR})
 add_dependencies(vulkaninfo-bundle MoltenVK_icd-staging-json)
 
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo_run.command PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS")
 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.sh PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS")
 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/Resources/VulkanIcon.icns
                             PROPERTIES
index 5769497..d22df4b 100755 (executable)
@@ -3,7 +3,8 @@ BASEDIR=`dirname $0`
 
 if [ -d /System/Applications/Utilities/Terminal.app ]
 then
-    open /System/Applications/Utilities/Terminal.app $BASEDIR/vulkaninfo
+    open /System/Applications/Utilities/Terminal.app ./$BASEDIR/vulkaninfo_run.command
 else
-    open /Applications/Utilities/Terminal.app $BASEDIR/vulkaninfo
+    open /Applications/Utilities/Terminal.app ./$BASEDIR/vulkaninfo_run.command
 fi
+
diff --git a/vulkaninfo/macOS/vulkaninfo_run.command b/vulkaninfo/macOS/vulkaninfo_run.command
new file mode 100755 (executable)
index 0000000..de730e8
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+BASEDIR=`dirname $0`
+export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$BASEDIR
+$BASEDIR/vulkaninfo