summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCharles Giessen <[email protected]>2024-06-18 14:32:15 -0500
committerCharles Giessen <[email protected]>2024-06-18 14:25:22 -0600
commite3c37e6e184a232e10b01dff5a065ce48c047f88 (patch)
tree4095340272c65027815048c9336b5a7ae7e7c6a1
parentcde27c9456aed7117385e7469c4fc5ea3e1baa7f (diff)
downloadVulkan-Headers-e3c37e6e184a232e10b01dff5a065ce48c047f88.tar.gz
Vulkan-Headers-e3c37e6e184a232e10b01dff5a065ce48c047f88.zip
cmake: Workaround MSVC module support compiler bug
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.
-rw-r--r--.github/workflows/ci.yml27
-rw-r--r--CMakeLists.txt3
-rw-r--r--tests/CMakeLists.txt2
3 files changed, 25 insertions, 7 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4f4cd8a..5ba23a2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -17,11 +17,11 @@ permissions:
contents: read
jobs:
- cmake:
+ cmake-unix:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-latest, windows-latest, macos-latest ]
+ os: [ ubuntu-latest, macos-latest ]
cmake-version: [ '3.15', 'latest']
steps:
- uses: actions/checkout@v4
@@ -30,9 +30,26 @@ jobs:
cmakeVersion: ${{ matrix.cmake-version }}
- uses: ilammy/msvc-dev-cmd@v1
- run: cmake -S . -B build -D VULKAN_HEADERS_ENABLE_TESTS=ON -D VULKAN_HEADERS_ENABLE_INSTALL=ON -G Ninja
- - run: cmake --build ./build --verbose
- - run: cmake --install build/ --prefix build/install --verbose
- - run: ctest --output-on-failure --verbose
+ - run: cmake --build ./build
+ - run: cmake --install build/ --prefix build/install
+ - run: ctest --output-on-failure
+ working-directory: build
+
+ cmake-windows:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ cmake-version: [ '3.15', 'latest']
+ steps:
+ - uses: actions/checkout@v4
+ - uses: lukka/get-cmake@latest
+ with:
+ cmakeVersion: ${{ matrix.cmake-version }}
+ - uses: ilammy/msvc-dev-cmd@v1
+ - run: cmake -S . -B build -D VULKAN_HEADERS_ENABLE_TESTS=ON -D VULKAN_HEADERS_ENABLE_INSTALL=ON -G Ninja -DVULKAN_HEADERS_ENABLE_MODULE=OFF # workaround for compiler bug in 17.10 and before
+ - run: cmake --build ./build
+ - run: cmake --install build/ --prefix build/install
+ - run: ctest --output-on-failure
working-directory: build
reuse:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e6d7f1..8df7850 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,8 +48,9 @@ if (MSVC AND (MSVC_VERSION GREATER_EQUAL "1934") OR
set(COMPILER_SUPPORTS_CXX_MODULES TRUE)
endif()
+option(VULKAN_HEADERS_ENABLE_MODULE "Enables building of the Vulkan C++ module. Default is true if supported by the CMake version and compilers" ${COMPILER_SUPPORTS_CXX_MODULES})
-if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.28" AND COMPILER_SUPPORTS_CXX_MODULES)
+if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.28" AND VULKAN_HEADERS_ENABLE_MODULE)
add_library(Vulkan-Module)
add_library(Vulkan::VulkanHppModule ALIAS Vulkan-Module)
target_sources(Vulkan-Module
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5a5984b..81823ab 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -12,7 +12,7 @@ add_test(NAME integration.add_subdirectory
--build-and-test ${CMAKE_CURRENT_LIST_DIR}/integration
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory
--build-generator ${CMAKE_GENERATOR}
- --build-options -DFIND_PACKAGE_TESTING=OFF
+ --build-options -DFIND_PACKAGE_TESTING=OFF -DVULKAN_HEADERS_ENABLE_MODULE=OFF
)
set(test_install_dir "${CMAKE_CURRENT_BINARY_DIR}/install")