Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions .github/workflows/build-latest-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,8 @@ jobs:

- name: Generate Vulkan-Hpp and Build Samples/Tests
run: |
cmake -B build -G Ninja \
-D VULKAN_HPP_GENERATOR_BUILD=ON \
-D VULKAN_HPP_RUN_GENERATOR=ON \
-D VULKAN_HPP_SAMPLES_BUILD=ON \
-D VULKAN_HPP_TESTS_BUILD=ON \
-D VULKAN_HPP_TESTS_CTEST=ON \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
-D VULKAN_HPP_PRECOMPILE=ON \
-D CMAKE_C_COMPILER=gcc \
-D CMAKE_CXX_COMPILER=g++ \
-D CMAKE_CXX_STANDARD=23 \
cmake -B build -G Ninja --preset generator-tests \
-D CMAKE_CXX_STANDARD=23 \
-D CMAKE_BUILD_TYPE=Release
cmake --build build --parallel
ctest -j --output-on-failure --test-dir build
58 changes: 19 additions & 39 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ jobs:
{ os: windows-2025, cxx: cl, c: cl , arch: x64, gen: Ninja, modules: true, cxx_max: 23, cxx_flags: '//EHsc' },
]

env:
VAR_CMAKE_FLAGS: |
${{ matrix.env.c && format('-D CMAKE_C_COMPILER={0}', matrix.env.c) }} \
${{ matrix.env.cxx && format('-D CMAKE_CXX_COMPILER={0}', matrix.env.cxx) }} \
${{ matrix.env.cxx_flags && format('-D CMAKE_CXX_FLAGS''={0}''', matrix.env.cxx_flags) }} \
${{ matrix.env.linker_flags && format('-D CMAKE_EXE_LINKER_FLAGS=''{0}''', matrix.env.linker_flags) }} \

steps:
- name: Checkout
uses: actions/checkout@v5.0.0
Expand Down Expand Up @@ -93,15 +100,9 @@ jobs:
- name: Generate Headers with C++20
run: |
for BUILD_TYPE in Debug Release; do
[ $BUILD_TYPE = Release ] && RUN_GENERATOR="ON" || RUN_GENERATOR="OFF"
cmake -B build -G '${{matrix.env.gen}}' --fresh \
${{matrix.env.c && format('-D CMAKE_C_COMPILER={0}', matrix.env.c)}} \
${{matrix.env.cxx && format('-D CMAKE_CXX_COMPILER={0}', matrix.env.cxx)}} \
${{matrix.env.cxx_flags && format('-D CMAKE_CXX_FLAGS''={0}''', matrix.env.cxx_flags)}} \
${{matrix.env.linker_flags && format('-D CMAKE_EXE_LINKER_FLAGS=''{0}''', matrix.env.linker_flags)}} \
-D VULKAN_HPP_GENERATOR_BUILD=ON \
-D VULKAN_HPP_RUN_GENERATOR=$RUN_GENERATOR \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
[ $BUILD_TYPE = Release ] && PRESET="generator-run" || PRESET="generator-build"
cmake -B build -G '${{matrix.env.gen}}' --fresh --preset $PRESET \
${{ env.VAR_CMAKE_FLAGS }} \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE
cmake --build build --parallel --config $BUILD_TYPE --clean-first
done
Expand All @@ -111,20 +112,9 @@ jobs:
if: (!matrix.env.modules) # Exclude module runners.
run: |
for BUILD_TYPE in Debug Release; do
cmake -B build -G '${{matrix.env.gen}}' --fresh \
${{matrix.env.c && format('-D CMAKE_C_COMPILER={0}', matrix.env.c)}} \
${{matrix.env.cxx && format('-D CMAKE_CXX_COMPILER={0}', matrix.env.cxx)}} \
${{matrix.env.cxx_flags && format('-D CMAKE_CXX_FLAGS''={0}''', matrix.env.cxx_flags)}} \
${{matrix.env.linker_flags && format('-D CMAKE_EXE_LINKER_FLAGS=''{0}''', matrix.env.linker_flags)}} \
-D VULKAN_HPP_GENERATOR_BUILD=OFF \
-D VULKAN_HPP_RUN_GENERATOR=OFF \
-D VULKAN_HPP_SAMPLES_BUILD=ON \
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_TESTS_CTEST=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
-D VULKAN_HPP_PRECOMPILE=ON \
-D CMAKE_CXX_STANDARD=${{matrix.env.cxx_max}} \
cmake -B build -G '${{matrix.env.gen}}' --fresh --preset samples \
${{ env.VAR_CMAKE_FLAGS }} \
-D CMAKE_CXX_STANDARD=${{matrix.env.cxx_max}} \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE
cmake --build build --parallel --config $BUILD_TYPE --clean-first
done
Expand All @@ -150,22 +140,12 @@ jobs:
echo "Building C++$CXX_STANDARD in $BUILD_TYPE"
echo "================================================================================="

cmake -B build -G '${{matrix.env.gen}}' --fresh \
-D VULKAN_HPP_BUILD_CXX_MODULE=${{matrix.env.modules && 'ON' || 'OFF'}} \
${{matrix.env.cxx && format('-D CMAKE_CXX_COMPILER={0}', matrix.env.cxx)}} \
${{matrix.env.cxx_flags && format('-D CMAKE_CXX_FLAGS''={0}''', matrix.env.cxx_flags)}} \
${{matrix.env.linker_flags && format('-D CMAKE_EXE_LINKER_FLAGS=''{0}''', matrix.env.linker_flags)}} \
${{matrix.env.modules && '-DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=d0edc3af-4c50-42ea-a356-e2862fe7a444' || ''}} \
-D VULKAN_HPP_GENERATOR_BUILD=OFF \
-D VULKAN_HPP_RUN_GENERATOR=OFF \
-D VULKAN_HPP_SAMPLES_BUILD=OFF \
-D VULKAN_HPP_TESTS_BUILD=ON \
-D VULKAN_HPP_TESTS_CTEST=ON \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
-D VULKAN_HPP_PRECOMPILE=ON \
-D CMAKE_CXX_STANDARD=$CXX_STANDARD \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE
cmake -B build -G '${{matrix.env.gen}}' --fresh --preset tests \
-D VULKAN_HPP_BUILD_CXX_MODULE=${{matrix.env.modules && 'ON' || 'OFF'}} \
${{ env.VAR_CMAKE_FLAGS }} \
-D CMAKE_CXX_STANDARD=$CXX_STANDARD \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE \
${{matrix.env.modules && '-DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=d0edc3af-4c50-42ea-a356-e2862fe7a444' || ''}}
cmake --build build --parallel --config $BUILD_TYPE --clean-first
ctest -j --output-on-failure --test-dir build -C $BUILD_TYPE
done
Expand Down
76 changes: 76 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 22
},
"configurePresets": [
{
"name": "base", "hidden": true,
"cacheVariables": { "VULKAN_HPP_DISPATCH_LOADER_DYNAMIC": "ON", "VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP": "ON" }
},
{
"name": "base-generator-disabled", "hidden": true,
"cacheVariables": { "VULKAN_HPP_GENERATOR_BUILD": "OFF", "VULKAN_HPP_RUN_GENERATOR": "OFF" }
},
{
"name": "base-generator-build", "hidden": true,
"cacheVariables": { "VULKAN_HPP_GENERATOR_BUILD": "ON", "VULKAN_HPP_RUN_GENERATOR": "OFF" }
},
{
"name": "base-generator-run", "hidden": true,
"cacheVariables": { "VULKAN_HPP_GENERATOR_BUILD": "ON", "VULKAN_HPP_RUN_GENERATOR": "ON" }
},
{
"name": "base-samples", "hidden": true,
"cacheVariables": { "VULKAN_HPP_SAMPLES_BUILD": "ON", "VULKAN_HPP_PRECOMPILE": "ON" }
},
{
"name": "base-samples-disabled", "hidden": true,
"cacheVariables": { "VULKAN_HPP_SAMPLES_BUILD": "OFF", "VULKAN_HPP_PRECOMPILE": "OFF" }
},
{
"name": "base-tests", "hidden": true,
"cacheVariables": { "VULKAN_HPP_TESTS_BUILD": "ON", "VULKAN_HPP_TESTS_CTEST": "ON" }
},
{
"name": "base-tests-disabled", "hidden": true,
"cacheVariables": { "VULKAN_HPP_TESTS_BUILD": "OFF", "VULKAN_HPP_TESTS_CTEST": "OFF" }
},

{
"name": "generator-build", "displayName": "Standalone: Build Generator",
"inherits": [ "base", "base-generator-build", "base-samples-disabled", "base-tests-disabled" ]
},
{
"name": "generator-run", "displayName": "Standalone: Build and Run Generator",
"inherits": [ "base", "base-generator-run", "base-samples-disabled", "base-tests-disabled" ]
},

{
"name": "samples", "displayName": "Validation: Samples",
"inherits": [ "base", "base-generator-disabled", "base-samples", "base-tests-disabled" ]
},
{
"name": "tests", "displayName": "Validation: Tests",
"inherits": [ "base", "base-generator-disabled", "base-samples-disabled", "base-tests" ]
},
{
"name": "samples-tests", "displayName": "Validation: Samples and Tests",
"inherits": [ "base", "base-generator-disabled", "base-samples", "base-tests" ]
},

{
"name": "generator-samples", "displayName": "Fresh Validation: Generator + Samples",
"inherits": [ "base", "base-generator-run", "base-samples", "base-tests-disabled" ]
},
{
"name": "generator-tests", "displayName": "Fresh Validation: Generator + Tests",
"inherits": [ "base", "base-generator-run", "base-samples-disabled", "base-tests" ]
},
{
"name": "generator-samples-tests", "displayName": "Fresh Validation: Generator + Samples and Tests",
"inherits": [ "base", "base-generator-run", "base-samples", "base-tests" ]
}
]
}