• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: Presubmit
2on: [push, pull_request]
3
4permissions:
5  contents: read
6
7jobs:
8  build:
9    name: Build ${{ matrix.os }}
10    runs-on: ${{ matrix.os }}
11    strategy:
12      matrix:
13        os: [ubuntu-latest, macos-latest, windows-latest]
14    steps:
15      - uses: actions/checkout@v3
16      - name: Install Ubuntu packages
17        if: matrix.os == 'ubuntu-latest'
18        run: sudo apt install -y dos2unix
19      - name: Install macOS packages
20        if: matrix.os == 'macos-latest'
21        run: brew install dos2unix
22      - name: Build
23        run: |
24          mkdir build
25          cd build
26          cmake -DCMAKE_INSTALL_PREFIX=install ..
27          cmake --build . --target install
28      - name: Build spec tools
29        run: |
30          cd tools/buildHeaders
31          mkdir build
32          cd build
33          cmake ..
34          cmake --build . --target install
35      - name: Build headers
36        run: |
37          cd tools/buildHeaders
38          ./bin/makeHeaders
39      - name: Check generated headers
40        run: git diff --exit-code
41
42  test_cmake_min_required:
43    runs-on: ubuntu-latest
44    steps:
45      - uses: actions/checkout@v3
46      - uses: lukka/get-cmake@latest
47        with:
48          cmakeVersion: 3.14.0
49      - name: CMake build
50        run: |
51          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
52          cmake --build build --target install
53
54  test_cmake_latest:
55    runs-on: ubuntu-latest
56    steps:
57      - uses: actions/checkout@v3
58      - uses: lukka/get-cmake@latest
59      - name: CMake build
60        run: |
61          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
62          cmake --install build/ --prefix build/install
63
64  add_subdirectory:
65    runs-on: ubuntu-latest
66    steps:
67      - uses: actions/checkout@v3
68      - uses: lukka/get-cmake@latest
69        with:
70          cmakeVersion: 3.15.0
71      - name: Build spirv-headers with testing enabled
72        run: |
73          cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
74          cmake --build build
75
76  find_package:
77    runs-on: ubuntu-latest
78    steps:
79      - uses: actions/checkout@v3
80      - uses: lukka/get-cmake@latest
81        with:
82          cmakeVersion: 3.15.0
83      - name: Install spirv-headers
84        run: |
85          cmake -S . -B build/
86          cmake --install build/ --prefix build/install
87      - name: Check spirv-headers find_package support
88        run: |
89          cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
90          cmake --build tests/find_package/build/
91
92  find_pkg_config:
93    runs-on: ubuntu-latest
94    steps:
95      - uses: actions/checkout@v3
96      - uses: lukka/get-cmake@latest
97        with:
98          cmakeVersion: 3.15.0
99      - name: Install spirv-headers
100        run: |
101          cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
102          cmake --install build/
103      - name: Check spirv-headers pkg_config support
104        run: |
105          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
106          cmake --build tests/pkg_config/build/
107
108  # https://github.com/KhronosGroup/SPIRV-Headers/issues/282
109  find_pkg_config_absolute:
110    runs-on: ubuntu-latest
111    steps:
112      - uses: actions/checkout@v3
113      - uses: lukka/get-cmake@latest
114        with:
115          cmakeVersion: 3.15.0
116      - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute
117        run: |
118          cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
119          cmake --install build/
120      - name: Check spirv-headers pkg_config support
121        run: |
122          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
123          cmake --build tests/pkg_config/build/
124