Use variableDescriptorCount to avoid the pipeline recreation. #149
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
env: | |
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" | |
on: | |
push: | |
paths: | |
- '**' | |
- '!README.md' | |
- '!LICENSE.txt' | |
- '!docs/**' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-24.04] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Vulkan SDK | |
uses: humbletim/[email protected] | |
with: | |
vulkan-query-version: 1.3.296.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools | |
vulkan-use-cache: true | |
- name: Install build dependencies (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: brew install llvm ninja autoconf automake libtool nasm | |
- name: Install build dependencies (ubuntu-24.04) | |
if: ${{ matrix.os == 'ubuntu-24.04' }} | |
run: sudo apt-get install ninja-build libc++-dev libc++abi-dev xorg-dev libtool libltdl-dev | |
- name: Setup vcpkg (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
git clone https://github.com/microsoft/vcpkg.git --depth 1 | |
cd vcpkg && ./bootstrap-vcpkg.sh | |
echo "VCPKG_ROOT=${{ github.workspace }}/vcpkg" >> $GITHUB_ENV | |
- name: Export GitHub Actions cache environment variables | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
- name: Enable Developer Command Prompt (Windows) | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Workaround for CMake bug that cannot find __CMAKE::CXX23 target when using homebrew libc++ (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: sed -i '' 's|libc++.modules.json|../../c++/libc++.modules.json|g' /opt/homebrew/opt/cmake/share/cmake/Modules/Compiler/Clang-CXX-CXXImportStd.cmake # https://gitlab.kitware.com/cmake/cmake/-/issues/25965#note_1523575 | |
- name: Configure | |
run: | | |
mv .github/workflows/scripts/* . | |
cmake --preset=${{ runner.os }} | |
- name: Build | |
run: cmake --build build --config release | |
- name: Upload Binary as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ runner.os }} | |
path: | | |
build/vk-gltf-viewer | |
build/vk-gltf-viewer.exe | |
build/*.dll |