Fixed CMake files for macOS to include the vulkan dylib loader
file in the bundles instead of the vulkan framework file.
Change-Id: Ib59873fc392c8894d8a85b5a10bc0f17aa29061a
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${VULKAN_HEADERS_INSTALL_DIR};${VULKAN_LOADER_INSTALL_DIR};$ENV{VULKAN_HEADERS_INSTALL_DIR};$ENV{VULKAN_LOADER_INSTALL_DIR})
message(STATUS "Using find_package to locate Vulkan")
find_package(Vulkan)
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${VULKAN_HEADERS_INSTALL_DIR};${VULKAN_LOADER_INSTALL_DIR};$ENV{VULKAN_HEADERS_INSTALL_DIR};$ENV{VULKAN_LOADER_INSTALL_DIR})
message(STATUS "Using find_package to locate Vulkan")
find_package(Vulkan)
+# "Vulkan::Vulkan" on macOS causes the framework to be linked to the app instead of an individual library
set(LIBVK "Vulkan::Vulkan")
message(STATUS "Vulkan FOUND = ${Vulkan_FOUND}")
message(STATUS "Vulkan Include = ${Vulkan_INCLUDE_DIR}")
set(LIBVK "Vulkan::Vulkan")
message(STATUS "Vulkan FOUND = ${Vulkan_FOUND}")
message(STATUS "Vulkan Include = ${Vulkan_INCLUDE_DIR}")
${MOLTENVK_DIR}/MoltenVK/include
)
${MOLTENVK_DIR}/MoltenVK/include
)
-target_link_libraries(cube ${LIBVK} "-framework Cocoa -framework QuartzCore")
+# We do this so vulkaninfo is linked to an individual library and NOT a framework.
+target_link_libraries(cube ${Vulkan_LIBRARY} "-framework Cocoa -framework QuartzCore")
set_target_properties(cube PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/cube/Info.plist
set_target_properties(cube PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/cube/Info.plist
${MOLTENVK_DIR}/MoltenVK/include
)
${MOLTENVK_DIR}/MoltenVK/include
)
-target_link_libraries(cubepp ${LIBVK} "-framework Cocoa -framework QuartzCore")
+# We do this so vulkaninfo is linked to an individual library and NOT a framework.
+target_link_libraries(cubepp ${Vulkan_LIBRARY} "-framework Cocoa -framework QuartzCore")
set_target_properties(cubepp PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/cubepp/Info.plist
set_target_properties(cubepp PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/cubepp/Info.plist
- target_link_libraries(vulkaninfo ${LIBVK} "-framework AppKit -framework QuartzCore")
- target_include_directories(vulkaninfo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo)
+ # We do this so vulkaninfo is linked to an individual library and NOT a framework.
+ target_link_libraries(vulkaninfo ${Vulkan_LIBRARY} "-framework AppKit -framework QuartzCore")
+ target_include_directories(vulkaninfo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${Vulkan_INCLUDE_DIR})
else()
target_link_libraries(vulkaninfo ${LIBVK})
endif()
else()
target_link_libraries(vulkaninfo ${LIBVK})
endif()
OUTPUT_NAME vulkaninfo
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist
)
OUTPUT_NAME vulkaninfo
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist
)
-target_link_libraries(vulkaninfo-bundle ${LIBVK} "-framework AppKit -framework QuartzCore")
-target_include_directories(vulkaninfo-bundle PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo)
+# We do this so vulkaninfo is linked to an individual library and NOT a framework.
+target_link_libraries(vulkaninfo-bundle ${Vulkan_LIBRARY} "-framework AppKit -framework QuartzCore")
+target_include_directories(vulkaninfo-bundle PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${Vulkan_INCLUDE_DIR})
add_dependencies(vulkaninfo-bundle MoltenVK_icd-staging-json)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.sh PROPERTIES
MACOSX_PACKAGE_LOCATION "MacOS"
add_dependencies(vulkaninfo-bundle MoltenVK_icd-staging-json)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.sh PROPERTIES
MACOSX_PACKAGE_LOCATION "MacOS"