aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2024-08-30Fix MSVC identification for modules supportv1.3.295Mike Schuchardt
Can't use `MSVC` var because it is also true for clang-cl. Fixes #500.
2024-07-16cmake: Disable modules if clang-scan-deps is missingvulkan-sdk-1.3.290.0v1.3.290vulkan-sdk-1.3.290Charles Giessen
clang ships the clang-scan-deps tool separately from the compiler, making it possible that the clang compiler supports modules but cannot be used by CMake for VulkanHppModule. The straightforward solution is to, when using clang, check that the scan deps tools was located. This prevents people who are using clang but not the modules from being unable to use Vulkan-Headers when the clang-scan-deps tools is missing.
2024-07-12Disable VulkanHppModule support in clang-clCharles Giessen
The current released versions of clang-cl does not work with CMakes module implementation. Rather than break downstream users, just disable the module support for the time being.
2024-07-10build: Require MSVC 17.11 for module supportCharles Giessen
17.10 and before has a bug that prevents the vulkan.cppm module from compiling. The module support wont be enabled unless the MSVC version contains the fix.
2024-06-18cmake: Workaround MSVC module support compiler bugCharles Giessen
Adds the VULKAN_HEADERS_ENABLE_MODULE option to control whether to build the Vulkan-Hpp module. This is necessary to allow CI to pass while waiting for the MSVC version 17.11, which fixes an internal compiler bug, to be added to github actions runners.
2024-06-18cmake: Remove explicit install of Vulkan-ModuleCharles Giessen
Installing a C++ module in CMake isn't something which is well defined currently. Rather than add code which behaves poorly or flat out wrong, it is better to not try to install a binary module for the time being. The vulkan.cppm file is still included in the install so downstream users can still create a module from it.
2024-06-18Add `vulkan.cppm` as a separate library: `Vulkan::VulkanHppModule`Sharadh Rajaraman
- Guarded behind `if()` version and compiler test - Linked to `Vulkan-Headers` as a dependency - Also added `CXX` to the `LANGUAGES` property of the project
2024-06-14cmake: Allow external control of whether to test or installDavid Neto
This makes the project more composable: It can be built and tested as part of a larger set of projects, from source.
2023-11-20Use ctest for integration testingJuan Ramos
2023-08-28cmake: Document vlk_get_header_versionJuan Ramos
2023-07-14Add REUSE compliance checker to CIJuan Ramos
2023-07-10cmake: Use share instead of DATADIR for CMake config filesJuan Ramos
See the following discussion for context: https://discourse.cmake.org/t/what-should-the-destination-be-for-a-header-only-librarys-cmake-config-file/8473/3 TLDR: `DATADIR` can be `share` but it doesn't have to be. It can be changed by the user.
2023-07-05cmake: Remove VULKAN_HEADERS_INSTALLJuan Ramos
VULKAN_HEADERS_INSTALL was added since it was believed there was a valid use case for it. After looking into the use case that provoked this change there is no reason to keep VULKAN_HEADERS_INSTALL as an option. Here is the use case we do NOT want to support: https://github.com/KhronosGroup/Vulkan-Headers/pull/416#issuecomment-1622318949 Fundamentally this problem is caused add_subdirectory/find_package not being able to work together flawlessly. Which isn't the responsibility of Vulkan-Headers to fix. It's the responsibility of projects that consume Vulkan-Headers to account for either method. As described by the CMake maintainers: https://discourse.cmake.org/t/idiomatic-way-to-handle-packages-and-add-subdirectory/8400
2023-07-05cmake: Remove usage of configure_package_config_fileJuan Ramos
Fixes issue shown here: https://github.com/KhronosGroup/Vulkan-Headers/pull/415
2023-06-30cmake: Add VULKAN_HEADERS_INSTALL optionJuan Ramos
Allows add_subdirectory users to install vulkan-headers
2023-03-15cmake: Minor CMake cleanupsdk-1.3.243.0sdk-1.3.243Juan Ramos
- Fix project name to be less confusing - Better testing
2023-02-22cmake: Update min to 3.15Juan Ramos
- Removes conditional 3.15 logic - Guarantees usage of --install/--loglevel
2023-01-30cmake: Trim CMakeLists.txtJuan Ramos
2023-01-19cmake: Update minimum to 3.14Juan Ramos
2023-01-11cmake: Cleanup vlk_get_header_version functionJuan Ramos
2023-01-11cmake: Removes unused CMake macrosJuan Ramos
2023-01-10cmake: Cleanup vlk_get_header_versionJuan Ramos
2023-01-09cmake: Remove Vulkan::RegistryJuan Ramos
Vulkan::Registry behaves differently in `add_subdirectory` vs `find_package` builds. Which can result in build failures. Also Vulkan::Registry never made sense as a CMake target and was very brittle in numerous ways. Better to provide a `VULKAN_HEADERS_REGISTRY_DIRECTORY` to users instead and remove Vulkan::Registry completely. closes #351
2023-01-04docs: Update copyrightJuan Ramos
2022-12-20tests: Test Non-API headersJuan Ramos
Ensures the non-API headers compile correctly
2022-12-14cmake: Preserve permissions from registry filesJuan Ramos
2022-12-09cmake: Remove VULKAN_HEADERS_INSTALLJuan Ramos
Not needed and adds clutter to projects that use add_subdirectory
2022-12-09cmake: Cleanup CMake codeJuan Ramos
Remove version.cmake / install.cmake / cmake_uninstall.cmake Remove as much maintenace burden / custom code as possible
2022-11-10Fix duplicate quotes when targets are included by downstream projectsRyan Harrison
When trying to update the version of Vulkan-Headers used in Dawn/Tint, I encountered errors like this: Target "Vulkan-Headers" contains relative path in its INTERFACE_INCLUDE_DIRECTORIES: ""/home/foo/workspace/dawn/third_party/vulkan-deps/vulkan-headers/src/include"" This PR removes the offending quotes
2022-11-08cmake: Add VULKAN_HEADERS_INSTALL optionJuan Ramos
This allows projects which consume this repo with add_subdirectory to turn on/off the install logic, which can be undesirable.
2022-11-08cmake: Export CMake Targets FileJuan Ramos
Now as part of install 2 files are created: - VulkanHeadersConfig.cmake - VulkanHeadersConfigVersion.cmake This allows usage of find_package closes #157
2022-11-07cmake: Get Vulkan VersionJuan Ramos
Extract the vulkan header version for CMake usage
2022-11-04build: Fix CMake warningJuan Ramos
Currently GNUInstallDirs is complaining because no language has been enabled. This is fixed by enabling the C language.
2021-04-13Add vk_video headers to CMake install targetMike Schuchardt
2020-04-23Revert "Export versioned targets for CMake"Mike Weiblen
This reverts commit 382bf3de06fc8c8961055afc37957fe65846c33b. Revert PR #110 https://github.com/KhronosGroup/Vulkan-Headers/pull/110
2020-04-16Export versioned targets for CMakeRahul Sheth
Generate VulkanHeadersConfig.cmake and version file and install them. To get the version information the header file vulkan_core.h is parsed. In client code one can use `find_package(VulkanHeaders)` and get the targets `Vulkan::Headers` and `Vulkan::Registry`. The following additional files are generated and installed by CMake: - VulkanHeadersConfig.cmake: searched for by find_package(VulkanHeaders) - VulkanHeadersConfigVersion.cmake: provides version numbers - VulkanHeadersTargets.cmake: CMake target definitions used by config file
2019-07-16build: Update cmake_minimum_required(VERSION 3.10.2)Mike Weiblen
Change-Id: I28c30bb941691738944b13da75bc07e6153c89ef
2019-02-28build: Define library targets for nested builds-sdk-1.1.101.0Nuno Subtil
Adds alias interface libraries Vulkan::Headers and Vulkan::Registry that export include paths. These are meant to be used by dependent projects in a nested build configuration to obtain the path to the Vulkan headers and registry directories. Change-Id: I0801f4a23ef654064c1b0878543cd48965954756
2018-12-03build: Fix install target pathNuno Subtil
Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR when defining the path for the source files to be installed. CMAKE_SOURCE_DIR always points at the directory containing the root CMakeLists.txt, while CMAKE_CURRENT_SOURCE_DIR points at the directory containing the current project's CMakeLists.txt. These are normally identical, except when another CMake project includes this project via add_subdirectory() --- in that case, CMAKE_CURRENT_SOURCE_DIR is the right variable to use when composing paths to files within the current project tree. Change-Id: I4bdcc3bf538e96c43ae5f4ff6758cf45992442e0
2018-09-07build: CMakeLists.txt cleanupMike Weiblen
A cleanup of the CMake file in this repo, for consistency with similar effort in other Vulkan repos. clarify setting Windows install prefix if needed project() : NONE = this project has no language toolchain requirement. update .cmake-format.py 0.4.1 reformat using cmake-format 0.4.1 Change-Id: Ic64b335676eb6b8bd8ffd1b0d8c5468a4239287c
2018-06-27build: Beautify cmake filesMike Weiblen
Add the formatter config file (.cmake-format.py) and run: cmake-format -i CMakeLists.txt
2018-06-27build: Insert copyright in cmake filesMike Weiblen
2018-06-12cmake: Prevent redefinition of uninstall targetKarl Schultz
Allows for this repo to be included as a submodule of another repo that defines its own uninstall target. The uninstall target is best defined at the top-level repo.
2018-05-30build: Add CMake files for install targetKarl Schultz