155 lines
8.5 KiB
Diff
155 lines
8.5 KiB
Diff
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
|
|
index 616fbc96..d2811c8d 100644
|
|
--- a/cube/CMakeLists.txt
|
|
+++ b/cube/CMakeLists.txt
|
|
@@ -262,14 +262,7 @@ else()
|
|
endif()
|
|
|
|
if(APPLE)
|
|
- # Keep RPATH so fixup_bundle can use it to find libraries
|
|
- set_target_properties(vkcube PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
- install(TARGETS vkcube BUNDLE DESTINATION "cube")
|
|
- # Fix up the library references to be self-contained within the bundle.
|
|
- install(CODE "
|
|
- include(BundleUtilities)
|
|
- fixup_bundle(\${CMAKE_INSTALL_PREFIX}/cube/vkcube.app \"\" \"${Vulkan_LIBRARY_DIR}\")
|
|
- ")
|
|
+ install(TARGETS vkcube BUNDLE DESTINATION "Applications")
|
|
else()
|
|
install(TARGETS vkcube RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
@@ -309,14 +302,7 @@ else()
|
|
endif()
|
|
|
|
if(APPLE)
|
|
- # Keep RPATH so fixup_bundle can use it to find libraries
|
|
- set_target_properties(vkcubepp PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
- install(TARGETS vkcubepp BUNDLE DESTINATION "cube")
|
|
- # Fix up the library references to be self-contained within the bundle.
|
|
- install(CODE "
|
|
- include(BundleUtilities)
|
|
- fixup_bundle(\${CMAKE_INSTALL_PREFIX}/cube/vkcubepp.app \"\" \"${Vulkan_LIBRARY_DIR}\")
|
|
- ")
|
|
+ install(TARGETS vkcubepp BUNDLE DESTINATION "Applications")
|
|
else()
|
|
install(TARGETS vkcubepp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
diff --git a/cube/macOS/cube/cube.cmake b/cube/macOS/cube/cube.cmake
|
|
index 9b823f95..238c3e67 100644
|
|
--- a/cube/macOS/cube/cube.cmake
|
|
+++ b/cube/macOS/cube/cube.cmake
|
|
@@ -72,12 +69,14 @@ set_source_files_properties("${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json"
|
|
# Copy the MoltenVK lib into the bundle.
|
|
if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
|
|
add_custom_command(TARGET vkcube POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcube.app/Contents/Frameworks
|
|
+ COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
|
|
${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcube.app/Contents/Frameworks/libMoltenVK.dylib
|
|
DEPENDS vulkan)
|
|
else()
|
|
add_custom_command(TARGET vkcube POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/vkcube.app/Contents/Frameworks
|
|
+ COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
|
|
${CMAKE_CURRENT_BINARY_DIR}/vkcube.app/Contents/Frameworks/libMoltenVK.dylib
|
|
DEPENDS vulkan)
|
|
endif()
|
|
diff --git a/cube/macOS/cubepp/cubepp.cmake b/cube/macOS/cubepp/cubepp.cmake
|
|
index eae4de3c..0acd18f9 100644
|
|
--- a/cube/macOS/cubepp/cubepp.cmake
|
|
+++ b/cube/macOS/cubepp/cubepp.cmake
|
|
@@ -74,12 +71,14 @@ set_source_files_properties("${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json"
|
|
# Copy the MoltenVK lib into the bundle.
|
|
if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
|
|
add_custom_command(TARGET vkcubepp POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcubepp.app/Contents/Frameworks
|
|
+ COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
|
|
${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib
|
|
DEPENDS vulkan)
|
|
else()
|
|
add_custom_command(TARGET vkcubepp POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/vkcubepp.app/Contents/Frameworks
|
|
+ COMMAND ${CMAKE_COMMAND} -E create_symlink "${MOLTENVK_DIR}/lib/libMoltenVK.dylib"
|
|
${CMAKE_CURRENT_BINARY_DIR}/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib
|
|
DEPENDS vulkan)
|
|
endif()
|
|
diff --git a/mac_common.cmake b/mac_common.cmake
|
|
index bad3c414..b498906d 100644
|
|
--- a/mac_common.cmake
|
|
+++ b/mac_common.cmake
|
|
@@ -23,9 +23,8 @@ set(MOLTENVK_DIR ${MOLTENVK_REPO_ROOT})
|
|
# MoltenVK JSON File
|
|
|
|
execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json)
|
|
-execute_process(COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$"
|
|
- ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json
|
|
- OUTPUT_FILE ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json)
|
|
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${MOLTENVK_DIR}/MoltenVK_icd.json
|
|
+ ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json)
|
|
|
|
# ~~~
|
|
# Modify the ICD JSON file to adjust the library path.
|
|
@@ -36,10 +35,9 @@ execute_process(COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*
|
|
# ~~~
|
|
add_custom_target(MoltenVK_icd-staging-json ALL
|
|
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/staging-json
|
|
- COMMAND sed -e "/\"library_path\":/s$:[[:space:]]*\"[[:space:]]*[\\.\\/]*$: \"..\\/..\\/..\\/Frameworks\\/$"
|
|
- ${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json > ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
|
|
- VERBATIM
|
|
- DEPENDS "${MOLTENVK_DIR}/MoltenVK/icd/MoltenVK_icd.json")
|
|
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${MOLTENVK_DIR}/MoltenVK_icd.json
|
|
+ ${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
|
|
+ DEPENDS "${MOLTENVK_DIR}/MoltenVK_icd.json")
|
|
set_source_files_properties(${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json PROPERTIES GENERATED TRUE)
|
|
|
|
find_library(COCOA NAMES Cocoa)
|
|
diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt
|
|
index fb236a5b..3c8270d4 100644
|
|
--- a/vulkaninfo/CMakeLists.txt
|
|
+++ b/vulkaninfo/CMakeLists.txt
|
|
@@ -139,9 +139,4 @@ elseif(APPLE)
|
|
add_definitions(-DVK_USE_PLATFORM_MACOS_MVK -DVK_USE_PLATFORM_METAL_EXT)
|
|
endif()
|
|
|
|
-if(APPLE)
|
|
- install(TARGETS vulkaninfo RUNTIME DESTINATION "vulkaninfo")
|
|
-else()
|
|
- install(TARGETS vulkaninfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
-endif()
|
|
-
|
|
+install(TARGETS vulkaninfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
diff --git a/vulkaninfo/macOS/vulkaninfo.cmake b/vulkaninfo/macOS/vulkaninfo.cmake
|
|
index 9614530e..56af3b89 100644
|
|
--- a/vulkaninfo/macOS/vulkaninfo.cmake
|
|
+++ b/vulkaninfo/macOS/vulkaninfo.cmake
|
|
@@ -48,26 +48,4 @@ set_source_files_properties(${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json
|
|
MACOSX_PACKAGE_LOCATION
|
|
"Resources/vulkan/icd.d")
|
|
|
|
-# Xcode projects need some extra help with what would be install steps.
|
|
-if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
|
|
- add_custom_command(TARGET vulkaninfo-bundle POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib
|
|
- DEPENDS vulkan)
|
|
-else()
|
|
- add_custom_command(TARGET vulkaninfo-bundle POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib"
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib
|
|
- DEPENDS vulkan)
|
|
-endif()
|
|
-
|
|
-# Keep RPATH so fixup_bundle can use it to find libraries
|
|
-set_target_properties(vulkaninfo-bundle PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
-install(TARGETS vulkaninfo-bundle BUNDLE DESTINATION "vulkaninfo")
|
|
-# Fix up the library search path in the executable to find (loader) libraries in the bundle. When fixup_bundle() is passed a bundle
|
|
-# in the first argument, it looks at the Info.plist file to determine the BundleExecutable. In this case, the executable is a
|
|
-# script, which can't be fixed up. Instead pass it the explicit name of the executable.
|
|
-install(CODE "
|
|
- include(BundleUtilities)
|
|
- fixup_bundle(\${CMAKE_INSTALL_PREFIX}/vulkaninfo/vulkaninfo.app/Contents/MacOS/vulkaninfo \"\" \"${Vulkan_LIBRARY_DIR}\")
|
|
- ")
|
|
+install(TARGETS vulkaninfo-bundle BUNDLE DESTINATION "Applications")
|