diff options
-rw-r--r-- | CMakeLists.txt | 95 | ||||
-rw-r--r-- | cmake/Config.cmake.in | 25 |
2 files changed, 11 insertions, 109 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ab25eb..fc96c5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,26 +22,6 @@ cmake_minimum_required(VERSION 3.10.2) # NONE = this project has no language toolchain requirement. project(Vulkan-Headers NONE) -file(READ "include/vulkan/vulkan_core.h" ver) -string(REGEX MATCH "#define[ ]+VK_HEADER_VERSION_COMPLETE[ ]+VK_MAKE_VERSION\\([ ]*([0-9]+),[ ]*([0-9]+),[ ]*VK_HEADER_VERSION[ ]*\\)" _ ${ver}) -set(VK_VERSION_MAJOR "${CMAKE_MATCH_1}") -set(VK_VERSION_MINOR "${CMAKE_MATCH_2}") -string(REGEX MATCH "#define[ ]+VK_HEADER_VERSION[ ]+([0-9]+)" _ ${ver}) -set(VK_HEADER_VERSION "${CMAKE_MATCH_1}") -# check if version parsing was successful -if(VK_VERSION_MAJOR STREQUAL "") - message(FATAL_ERROR "Error reading major version from 'include/vulkan/vulkan_core.h'") -endif() -if(VK_VERSION_MINOR STREQUAL "") - message(FATAL_ERROR "Error reading minor version from 'include/vulkan/vulkan_core.h'") -endif() -if(VK_HEADER_VERSION STREQUAL "") - message(FATAL_ERROR "Error reading header version from 'include/vulkan/vulkan_core.h'") -endif() -set(VK_VERSION_STRING "${VK_VERSION_MAJOR}.${VK_VERSION_MINOR}.${VK_HEADER_VERSION}") -message(STATUS "Found Vulkan-Headers VK_VERSION_STRING '${VK_VERSION_STRING}'") - -option(VULKAN_HEADERS_SKIP_INSTALL "Skip install" OFF) # User-interface declarations ---------------------------------------------------------------------------------------------------- # This section contains variables that affect development GUIs (e.g. CMake GUI and IDEs), such as option(), folders, and variables @@ -58,74 +38,21 @@ endif() # define exported targets for nested project builds to consume add_library(Vulkan-Headers INTERFACE) -target_include_directories(Vulkan-Headers INTERFACE - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> - $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> -) +target_include_directories(Vulkan-Headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") add_library(Vulkan::Headers ALIAS Vulkan-Headers) add_library(Vulkan-Registry INTERFACE) -target_include_directories(Vulkan-Registry INTERFACE - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/registry> - $<INSTALL_INTERFACE:${CMAKE_INSTALL_DATADIR}/vulkan> -) +target_include_directories(Vulkan-Registry INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/registry") add_library(Vulkan::Registry ALIAS Vulkan-Registry) -# Installation -# This adds the following files to the install target -# - Vulkan Header files -# - Vulkan Registry files -# - CMake config files generated by CMake -# - VulkanHeadersConfig.cmake: searched for by find_package(VulkanHeaders) -# - VulkanHeadersConfigVersion.cmake: provides version numbers -# - VulkanHeadersTargets.cmake: CMake target definitions used by config file -if(NOT VULKAN_HEADERS_SKIP_INSTALL) - set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/VulkanHeaders") - set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") - set(version_config "${generated_dir}/VulkanHeadersConfigVersion.cmake") - set(project_config "${generated_dir}/VulkanHeadersConfig.cmake") - set(TARGETS_EXPORT_NAME "VulkanHeadersTargets") - set(namespace "Vulkan::") - - include(CMakePackageConfigHelpers) - write_basic_package_version_file( - "${version_config}" - VERSION ${VK_VERSION_STRING} - COMPATIBILITY AnyNewerVersion - ) - configure_package_config_file( - "cmake/Config.cmake.in" - "${project_config}" - INSTALL_DESTINATION "${config_install_dir}" - ) - install( - TARGETS Vulkan-Headers Vulkan-Registry - EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ) - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" - DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan - ) - install(FILES "${project_config}" "${version_config}" - DESTINATION "${config_install_dir}" - ) - install( - EXPORT "${TARGETS_EXPORT_NAME}" - NAMESPACE "${namespace}" - DESTINATION "${config_install_dir}") +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan) - # uninstall target - if(NOT TARGET uninstall) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE - @ONLY) - add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) - endif() +# uninstall target +if(NOT TARGET uninstall) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE + @ONLY) + add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in deleted file mode 100644 index 4bf6cd5..0000000 --- a/cmake/Config.cmake.in +++ /dev/null @@ -1,25 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]") -check_required_components("@PROJECT_NAME@") - -# ALIAS for imported target requires CMake >= 3.11: -# - https://cmake.org/cmake/help/latest/release/3.11.html#other -if(NOT CMAKE_VERSION VERSION_LESS 3.11) - if(NOT TARGET Vulkan::Headers) - set_target_properties( - Vulkan::Vulkan-Headers - PROPERTIES - IMPORTED_GLOBAL True - ) - add_library(Vulkan::Headers ALIAS Vulkan::Vulkan-Headers) - endif() - if(NOT TARGET Vulkan::Registry) - set_target_properties( - Vulkan::Vulkan-Registry - PROPERTIES - IMPORTED_GLOBAL True - ) - add_library(Vulkan::Registry ALIAS Vulkan::Vulkan-Registry) - endif() -endif() |