From: Mark Lobodzinski Date: Wed, 13 Jun 2018 17:03:46 +0000 (-0600) Subject: cmake: Use FindVulkanHeaders to get vulkan includes X-Git-Tag: upstream/1.1.92~69 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e59e0f6c8412c1a927ac21d2b83a6aa8bb457bb6;p=platform%2Fupstream%2FVulkan-Tools.git cmake: Use FindVulkanHeaders to get vulkan includes --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f2a2981..e525687 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,11 +32,13 @@ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${VULKAN_HEADERS_INSTALL_DIR};${VULKA $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) diff --git a/cmake/FindVulkanHeaders.cmake b/cmake/FindVulkanHeaders.cmake new file mode 100644 index 0000000..a1458fd --- /dev/null +++ b/cmake/FindVulkanHeaders.cmake @@ -0,0 +1,69 @@ +#.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) diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt index a2c3aba..5574a8b 100644 --- a/cube/CMakeLists.txt +++ b/cube/CMakeLists.txt @@ -1,7 +1,7 @@ set(CUBE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/.. - ${Vulkan_INCLUDE_DIR} + ${VulkanHeaders_INCLUDE_DIR} ) find_package(PythonInterp 3 REQUIRED) diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt index a98b5cb..3c4d17a 100644 --- a/icd/CMakeLists.txt +++ b/icd/CMakeLists.txt @@ -160,7 +160,7 @@ endif() include_directories( ${CMAKE_CURRENT_SOURCE_DIR} - ${Vulkan_INCLUDE_DIR} + ${VulkanHeaders_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_BINARY_DIR} ${CMAKE_BINARY_DIR} diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt index 0b39992..6f0af14 100644 --- a/vulkaninfo/CMakeLists.txt +++ b/vulkaninfo/CMakeLists.txt @@ -24,7 +24,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 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" ) @@ -45,7 +45,7 @@ endif() 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() diff --git a/vulkaninfo/macOS/vulkaninfo.cmake b/vulkaninfo/macOS/vulkaninfo.cmake index cea7711..7ed812e 100644 --- a/vulkaninfo/macOS/vulkaninfo.cmake +++ b/vulkaninfo/macOS/vulkaninfo.cmake @@ -18,7 +18,7 @@ set_target_properties(vulkaninfo-bundle PROPERTIES ) # 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"