1 | name: Presubmit
|
---|
2 | on: [push, pull_request]
|
---|
3 |
|
---|
4 | permissions:
|
---|
5 | contents: read
|
---|
6 |
|
---|
7 | jobs:
|
---|
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@v4
|
---|
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@v4
|
---|
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@v4
|
---|
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@v4
|
---|
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@v4
|
---|
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@v4
|
---|
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@v4
|
---|
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/
|
---|