Skip to content

Commit

Permalink
cmake: Use new VulkanHeaders cmake support
Browse files Browse the repository at this point in the history
  • Loading branch information
juan-lunarg committed Nov 10, 2022
1 parent 3a729c0 commit c4839af
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 100 deletions.
5 changes: 2 additions & 3 deletions CMakeLists.txt
Expand Up @@ -85,13 +85,11 @@ if(APPLE)
endif()
message(STATUS "Using find_package to locate Vulkan")
find_package(Vulkan)
find_package(VulkanHeaders)
find_package(VulkanHeaders REQUIRED CONFIG)
get_filename_component(Vulkan_LIBRARY_DIR ${Vulkan_LIBRARY} DIRECTORY)
message(STATUS "Vulkan FOUND = ${Vulkan_FOUND}")
message(STATUS "Vulkan Lib Dir = ${Vulkan_LIBRARY_DIR}")
message(STATUS "Vulkan Lib = ${Vulkan_LIBRARY}")
message(STATUS "Vulkan Headers Include = ${VulkanHeaders_INCLUDE_DIR}")
message(STATUS "Vulkan Headers Registry = ${VulkanRegistry_DIR}")

include(GNUInstallDirs)

Expand Down Expand Up @@ -160,6 +158,7 @@ endif()

# Optional codegen target
if(PYTHONINTERP_FOUND)
get_target_property(VulkanRegistry_DIR Vulkan::Registry INTERFACE_INCLUDE_DIRECTORIES)
add_custom_target(VulkanTools_generated_source
COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/generate_source.py
${VulkanRegistry_DIR} --incremental
Expand Down
90 changes: 0 additions & 90 deletions cmake/FindVulkanHeaders.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion cube/CMakeLists.txt
Expand Up @@ -15,7 +15,7 @@
# limitations under the License.
# ~~~

set(CUBE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/.. ${VulkanHeaders_INCLUDE_DIR})
set(CUBE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/..)

set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/scripts")

Expand Down
4 changes: 3 additions & 1 deletion icd/CMakeLists.txt
Expand Up @@ -110,13 +110,15 @@ if(WIN32)
VERBATIM)
set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${TOOLS_HELPER_FOLDER})
add_library(VkICD_${target} SHARED ${ARGN} VkICD_${target}.def)
target_link_libraries(VkICD_${target} PRIVATE Vulkan::Headers)
if(INSTALL_ICD)
install(TARGETS VkICD_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endmacro()
elseif(APPLE)
macro(add_vk_icd target)
add_library(VkICD_${target} SHARED ${ARGN})
target_link_libraries(VkICD_${target} PRIVATE Vulkan::Headers)
set_target_properties(VkICD_${target} PROPERTIES LINK_FLAGS "-Wl")
if(INSTALL_ICD)
install(TARGETS VkICD_${target} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
Expand All @@ -125,6 +127,7 @@ elseif(APPLE)
else()
macro(add_vk_icd target)
add_library(VkICD_${target} SHARED ${ARGN})
target_link_libraries(VkICD_${target} PRIVATE Vulkan::Headers)
set_target_properties(VkICD_${target} PROPERTIES LINK_FLAGS "-Wl,-export-dynamic,-Bsymbolic,--exclude-libs,ALL")
if((UNIX AND NOT APPLE) AND INSTALL_ICD) # i.e. Linux
install(TARGETS VkICD_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
Expand All @@ -133,7 +136,6 @@ else()
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${VulkanHeaders_INCLUDE_DIR}
${WAYLAND_CLIENT_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${PROJECT_BINARY_DIR}
Expand Down
6 changes: 3 additions & 3 deletions vulkaninfo/CMakeLists.txt
Expand Up @@ -99,11 +99,11 @@ 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 ${VulkanHeaders_INCLUDE_DIR})
else()
target_include_directories(vulkaninfo PRIVATE ${VulkanHeaders_INCLUDE_DIR})
target_include_directories(vulkaninfo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo)
endif()

target_link_libraries(vulkaninfo Vulkan::Headers)

# Create vulkaninfo application bundle for MacOS
if(APPLE)
include(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.cmake)
Expand Down
4 changes: 2 additions & 2 deletions vulkaninfo/macOS/vulkaninfo.cmake
Expand Up @@ -34,8 +34,8 @@ set_target_properties(vulkaninfo-bundle
MACOSX_BUNDLE_INFO_PLIST
${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist)
# 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} ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${CMAKE_CURRENT_SOURCE_DIR}/generated ${CMAKE_BINARY_DIR}/vulkaninfo ${VulkanHeaders_INCLUDE_DIR})
target_link_libraries(vulkaninfo-bundle ${Vulkan_LIBRARY} "-framework AppKit -framework QuartzCore" Vulkan::Headers)
target_include_directories(vulkaninfo-bundle PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo ${CMAKE_CURRENT_SOURCE_DIR}/generated ${CMAKE_BINARY_DIR}/vulkaninfo)
add_dependencies(vulkaninfo-bundle MoltenVK_icd-staging-json)

set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.sh PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS")
Expand Down

0 comments on commit c4839af

Please sign in to comment.