$ENV{VULKAN_HEADERS_INSTALL_DIR};$ENV{VULKAN_LOADER_INSTALL_DIR})
message(STATUS "Using find_package to locate Vulkan")
find_package(Vulkan)
+find_package(VulkanHeaders)
# "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}")
message(STATUS "Vulkan Lib = ${Vulkan_LIBRARY}")
+message(STATUS "Vulkan Headers Include = ${VulkanHeaders_INCLUDE_DIR}")
+message(STATUS "Vulkan Headers Registry = ${VulkanRegistry_DIR}")
# Install-related settings
include(GNUInstallDirs)
--- /dev/null
+#.rst:
+# FindVulkanHeaders
+# -----------------
+#
+# Try to find Vulkan Headers and Registry.
+#
+# This module is intended to be used by projects that build Vulkan
+# "system" components such as the loader and layers.
+# Vulkan applications should instead use the FindVulkan (or similar)
+# find module that locates the headers and the loader library.
+#
+# When using this find module to locate the headers and registry
+# in a Vulkan-Headers repository, the Vulkan-Headers repository
+# should be built with 'install' target and the following environment
+# or CMake variable set to the location of the install directory.
+#
+# VULKAN_HEADERS_INSTALL_DIR
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines no IMPORTED targets
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables::
+#
+# VulkanHeaders_FOUND - True if VulkanHeaders was found
+# VulkanHeaders_INCLUDE_DIRS - include directories for VulkanHeaders
+#
+# VulkanRegistry_FOUND - True if VulkanRegistry was found
+# VulkanRegistry_DIRS - directories for VulkanRegistry
+#
+# The module will also define two cache variables::
+#
+# VulkanHeaders_INCLUDE_DIR - the VulkanHeaders include directory
+# VulkanRegistry_DIR - the VulkanRegistry directory
+#
+
+# Use HINTS instead of PATH to search these locations before
+# searching system environment variables like $PATH that may
+# contain SDK directories.
+find_path(VulkanHeaders_INCLUDE_DIR
+ NAMES vulkan/vulkan.h
+ HINTS
+ ${VULKAN_HEADERS_INSTALL_DIR}/include
+ "$ENV{VULKAN_HEADERS_INSTALL_DIR}/include"
+ "$ENV{VULKAN_SDK}/include")
+
+if(VulkanHeaders_INCLUDE_DIR)
+ get_filename_component(VULKAN_REGISTRY_PATH_HINT ${VulkanHeaders_INCLUDE_DIR} DIRECTORY)
+ find_path(VulkanRegistry_DIR
+ NAMES vk.xml
+ HINTS "${VULKAN_REGISTRY_PATH_HINT}/share/vulkan/registry")
+endif()
+
+set(VulkanHeaders_INCLUDE_DIRS ${VulkanHeaders_INCLUDE_DIR})
+set(VulkanRegistry_DIRS ${VulkanRegistry_DIR})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(VulkanHeaders
+ DEFAULT_MSG
+ VulkanHeaders_INCLUDE_DIR)
+find_package_handle_standard_args(VulkanRegistry
+ DEFAULT_MSG
+ VulkanRegistry_DIR)
+
+mark_as_advanced(VulkanHeaders_INCLUDE_DIR VulkanRegistry_DIR)
if (BUILD_WSI_XLIB_SUPPORT)
find_package(X11 REQUIRED)
endif()
-
+
if (VULKANINFO_WSI_SELECTION STREQUAL "XCB")
if (NOT BUILD_WSI_XCB_SUPPORT)
message( FATAL_ERROR "Selected XCB for vulkaninfo build but not building Xcb support" )
if(APPLE)
# 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})
+ target_include_directories(vulkaninfo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${VulkanHeaders_INCLUDE_DIR})
else()
target_link_libraries(vulkaninfo ${LIBVK})
endif()
)
# 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})
+target_include_directories(vulkaninfo-bundle PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${VulkanHeaders_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"