| name: Presubmit |
| on: [push, pull_request] |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| name: Build ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: [ubuntu-latest, macos-latest, windows-latest] |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Install Ubuntu packages |
| if: matrix.os == 'ubuntu-latest' |
| run: sudo apt install -y dos2unix |
| - name: Install macOS packages |
| if: matrix.os == 'macos-latest' |
| run: brew install dos2unix |
| - name: Build |
| run: | |
| mkdir build |
| cd build |
| cmake -DCMAKE_INSTALL_PREFIX=install .. |
| cmake --build . --target install |
| - name: Build spec tools |
| run: | |
| cd tools/buildHeaders |
| mkdir build |
| cd build |
| cmake .. |
| cmake --build . --target install |
| - name: Build headers |
| run: | |
| cd tools/buildHeaders |
| ./bin/makeHeaders |
| - name: Check generated headers |
| run: git diff --exit-code |
| |
| test_cmake_min_required: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.14.0 |
| - name: CMake build |
| run: | |
| cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ |
| cmake --build build --target install |
| |
| test_cmake_latest: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| - name: CMake build |
| run: | |
| cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" |
| cmake --install build/ --prefix build/install |
| |
| add_subdirectory: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.15.0 |
| - name: Build spirv-headers with testing enabled |
| run: | |
| cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja" |
| cmake --build build |
| |
| find_package: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.15.0 |
| - name: Install spirv-headers |
| run: | |
| cmake -S . -B build/ |
| cmake --install build/ --prefix build/install |
| - name: Check spirv-headers find_package support |
| run: | |
| cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install |
| cmake --build tests/find_package/build/ |
| |
| find_pkg_config: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.15.0 |
| - name: Install spirv-headers |
| run: | |
| cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ |
| cmake --install build/ |
| - name: Check spirv-headers pkg_config support |
| run: | |
| cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install |
| cmake --build tests/pkg_config/build/ |
| |
| # https://github.com/KhronosGroup/SPIRV-Headers/issues/282 |
| find_pkg_config_absolute: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.15.0 |
| - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute |
| run: | |
| cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ |
| cmake --install build/ |
| - name: Check spirv-headers pkg_config support |
| run: | |
| cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install |
| cmake --build tests/pkg_config/build/ |