aboutsummaryrefslogtreecommitdiff
path: root/cube
diff options
context:
space:
mode:
authorMike Schuchardt <mikes@lunarg.com>2018-06-27 15:58:49 -0600
committerMike Schuchardt <mikes@lunarg.com>2018-07-10 10:30:49 -0600
commitb7c389c9d3efe5cea722eb7395fb70529dd27566 (patch)
tree0b1ccfb7b8fd9cb8519b3ea7c6ef1c3bd043e477 /cube
parent1baead7983902e276078686c88b3bb7772a10a9d (diff)
downloadusermoji-b7c389c9d3efe5cea722eb7395fb70529dd27566.tar.xz
cmake: Clean up macOS install target
- Stop hardcoding CMAKE_INSTALL_PREFIX to CMAKE_BINARY_DIR so install products are in a predictable location - Use install/fixup_bundle to create stand-alone app bundles for cube, cubepp, vulkaninfo-bundle at CMAKE_INSTALL_PREFIX - Set INSTALL_RPATH_USE_LINK_PATH for bundle targets so fixup_bundle can find libraries when run from the install tree - Remove rpath from install copy of vulkaninfo - Remove extraneous copy of libMoltenVK.dylib from CMAKE_INSTALL_PREFIX/demos - Update BUILD.md
Diffstat (limited to 'cube')
-rw-r--r--cube/CMakeLists.txt26
-rw-r--r--cube/macOS/cube/cube.cmake16
-rw-r--r--cube/macOS/cubepp/cubepp.cmake20
3 files changed, 22 insertions, 40 deletions
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index 7f3dc2d8..3204214f 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -200,8 +200,17 @@ else()
endif()
if(APPLE)
- set_target_properties(cube PROPERTIES INSTALL_RPATH "@loader_path/../lib")
- install(TARGETS cube DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ # Keep RPATH so fixup_bundle can use it to find libraries
+ set_target_properties(cube PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
+ install(TARGETS cube 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/cube.app \"\" \"\")
+ "
+ )
else()
install(TARGETS cube RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
@@ -230,8 +239,17 @@ else()
endif()
if(APPLE)
- set_target_properties(cubepp PROPERTIES INSTALL_RPATH "@loader_path/../lib")
- install(TARGETS cubepp DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ # Keep RPATH so fixup_bundle can use it to find libraries
+ set_target_properties(cubepp PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
+ install(TARGETS cubepp 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/cubepp.app \"\" \"\")
+ "
+ )
else()
install(TARGETS cubepp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
diff --git a/cube/macOS/cube/cube.cmake b/cube/macOS/cube/cube.cmake
index 948a4650..69952eeb 100644
--- a/cube/macOS/cube/cube.cmake
+++ b/cube/macOS/cube/cube.cmake
@@ -78,19 +78,3 @@ else()
${CMAKE_CURRENT_BINARY_DIR}/cube.app/Contents/Frameworks/libMoltenVK.dylib
DEPENDS vulkan)
endif()
-
-# Fix up the library search path in the executable to find (loader) libraries in the bundle.
-install(CODE "
- include(BundleUtilities)
- fixup_bundle(${CMAKE_INSTALL_PREFIX}/cube/cube.app \"\" \"\")
- "
- COMPONENT Runtime)
-
-# ~~~
-# Not sure this is needed. When activated, it makes a symlink from
-# libvulkan.dylib to libvulkan.1.dylib (which in turn symlinks to libvulkan.1.0.xx.dylib.)
-# install(FILES
-# "${CMAKE_BINARY_DIR}/loader/libvulkan.dylib"
-# DESTINATION "demos/cube.app/Contents/MacOS"
-# COMPONENT Runtime)
-# ~~~
diff --git a/cube/macOS/cubepp/cubepp.cmake b/cube/macOS/cubepp/cubepp.cmake
index 31ff0125..7e27e9c6 100644
--- a/cube/macOS/cubepp/cubepp.cmake
+++ b/cube/macOS/cubepp/cubepp.cmake
@@ -67,10 +67,6 @@ set_source_files_properties("${CMAKE_BINARY_DIR}/staging-json/MoltenVK_icd.json"
MACOSX_PACKAGE_LOCATION
"Resources/vulkan/icd.d")
-# Direct the MoltenVK library to the right place.
-install(FILES "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" DESTINATION "demos/cubepp.app/Contents/Frameworks"
- COMPONENT Runtime)
-
# Copy the MoltenVK lib into the bundle.
if(${CMAKE_GENERATOR} MATCHES "^Xcode.*")
add_custom_command(TARGET cubepp POST_BUILD
@@ -83,19 +79,3 @@ else()
${CMAKE_CURRENT_BINARY_DIR}/cubepp.app/Contents/Frameworks/libMoltenVK.dylib
DEPENDS vulkan)
endif()
-
-# Fix up the library search path in the executable to find (loader) libraries in the bundle.
-install(CODE "
- include(BundleUtilities)
- fixup_bundle(${CMAKE_INSTALL_PREFIX}/cube/cubepp.app \"\" \"\")
- "
- COMPONENT Runtime)
-
-# ~~~
-# Not sure this is needed. When activated, it makes a symlink from
-# libvulkan.dylib to libvulkan.1.dylib (which in turn symlinks to libvulkan.1.0.xx.dylib.)
-# install(FILES
-# "${CMAKE_BINARY_DIR}/loader/libvulkan.dylib"
-# DESTINATION "demos/cubepp.app/Contents/MacOS"
-# COMPONENT Runtime)
-# ~~~