• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: Build
2
3on: [push, pull_request]
4
5jobs:
6  linux-gcc:
7    runs-on: ubuntu-latest
8    strategy:
9      matrix:
10        VER: [7, 8, 9]
11        EXT: [ON, OFF]
12        GEN: [Unix Makefiles, Ninja]
13        VAR: [Debug, Release]
14        STD: [99, 11] # 90 results in errors
15        BIN: [32, 64]
16
17    steps:
18    - uses: actions/checkout@v2
19
20    - name: Create Build Environment
21      run: cmake -E make_directory $GITHUB_WORKSPACE/build;
22        cmake -E make_directory $GITHUB_WORKSPACE/install;
23        cmake -E make_directory $GITHUB_WORKSPACE/downstream/pkgconfig/bare;
24        cmake -E make_directory $GITHUB_WORKSPACE/downstream/pkgconfig/sdk;
25        if [[ "${{matrix.GEN}}" == "Ninja" && ! `which ninja` ]]; then sudo apt install -y ninja-build; fi;
26        if [[ "${{matrix.BIN}}" == "32" ]]; then sudo apt install -y gcc-multilib gcc-8-multilib gcc-9-multilib; fi
27      # Install Ninja only if it's the selected generator and it's not available.
28
29    - name: Configure CMake
30      shell: bash
31      run: cmake
32        -G "${{matrix.GEN}}"
33        -D BUILD_TESTING=ON
34        -D CMAKE_BUILD_TYPE=${{matrix.VAR}}
35        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -m${{matrix.BIN}}"
36        -D CMAKE_C_COMPILER=gcc-${{matrix.VER}}
37        -D CMAKE_C_STANDARD=${{matrix.STD}}
38        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
39        -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install
40        -S $GITHUB_WORKSPACE
41        -B $GITHUB_WORKSPACE/build
42
43    - name: Build
44      shell: bash
45      run: cmake
46        --build $GITHUB_WORKSPACE/build
47        --
48        -j`nproc`
49
50    - name: Test
51      working-directory: ${{runner.workspace}}/OpenCL-Headers/build
52      shell: bash
53      run: ctest --parallel `nproc`
54
55    - name: Install
56      shell: bash
57      run: cmake
58        --build $GITHUB_WORKSPACE/build
59        --target install
60        --
61        -j`nproc`
62
63    - name: Consume (Configure PkgConfig - bare)
64      shell: bash
65      run: cmake
66        -G "${{matrix.GEN}}"
67        -D BUILD_TESTING=ON
68        -D CMAKE_BUILD_TYPE=${{matrix.VAR}}
69        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -m${{matrix.BIN}}"
70        -D CMAKE_C_COMPILER=gcc-${{matrix.VER}}
71        -D CMAKE_C_STANDARD=${{matrix.STD}}
72        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
73        -D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install
74        -S $GITHUB_WORKSPACE/tests/pkgconfig/bare
75        -B $GITHUB_WORKSPACE/downstream/pkgconfig/bare
76
77    - name: Consume (Build PkgConfig - bare)
78      shell: bash
79      run: cmake
80        --build $GITHUB_WORKSPACE/downstream/pkgconfig/bare
81        --
82        -j`nproc`
83
84    - name: Consume (Emulate SDK presence)
85      shell: bash
86      run: cmake -E make_directory $GITHUB_WORKSPACE/install/share/cmake/OpenCL;
87        echo 'include("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeaders/OpenCLHeadersTargets.cmake")' > $GITHUB_WORKSPACE/install/share/cmake/OpenCL/OpenCLConfig.cmake
88
89    - name: Consume (Configure PkgConfig - SDK)
90      shell: bash
91      run: cmake
92        -G "${{matrix.GEN}}"
93        -D BUILD_TESTING=ON
94        -D CMAKE_BUILD_TYPE=${{matrix.VAR}}
95        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -m${{matrix.BIN}}"
96        -D CMAKE_C_COMPILER=gcc-${{matrix.VER}}
97        -D CMAKE_C_STANDARD=${{matrix.STD}}
98        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
99        -D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install
100        -S $GITHUB_WORKSPACE/tests/pkgconfig/sdk
101        -B $GITHUB_WORKSPACE/downstream/pkgconfig/sdk
102
103    - name: Consume (Build PkgConfig - SDK)
104      shell: bash
105      run: cmake
106        --build $GITHUB_WORKSPACE/downstream/pkgconfig/sdk
107        --
108        -j`nproc`
109
110  windows-msvc:
111    runs-on: windows-latest
112    strategy:
113      matrix:
114        VER: [v140, v141, v142]
115        EXT: [ON, OFF]
116        GEN: [Visual Studio 16 2019, Ninja Multi-Config]
117        BIN: [x64, x86]
118        #STD Proper 11, 17 incoming: https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/
119
120    steps:
121    - uses: actions/checkout@v2
122
123    - name: Create Build Environment
124      shell: cmd
125      run: |
126        cmake -E make_directory $GITHUB_WORKSPACE/build;
127        cmake -E make_directory $GITHUB_WORKSPACE/install;
128
129    - name: Configure (MSBuild)
130      if: matrix.GEN == 'Visual Studio 16 2019'
131      shell: cmd
132      run: |
133        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
134        if /I "${{matrix.BIN}}"=="x86" (set BIN=Win32) else (set BIN=x64)
135        cmake -G "${{matrix.GEN}}" -A %BIN% -T ${{matrix.VER}} -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_INSTALL_PREFIX=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE% -B %GITHUB_WORKSPACE%/build
136
137    - name: Configure (Ninja)
138      if: matrix.GEN == 'Ninja Multi-Config'
139      shell: cmd
140      run: |
141        if /I "${{matrix.VER}}"=="v140" (set VER=14.0)
142        if /I "${{matrix.VER}}"=="v141" (set VER=14.1)
143        if /I "${{matrix.VER}}"=="v142" (set VER=14.2)
144        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
145        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
146        cmake -G "${{matrix.GEN}}" -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_EXE_LINKER_FLAGS=/INCREMENTAL -D CMAKE_INSTALL_PREFIX=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE% -B %GITHUB_WORKSPACE%/build
147
148    - name: Build (MSBuild)
149      if: matrix.GEN == 'Visual Studio 16 2019'
150      shell: cmd
151      run: |
152        cmake --build %GITHUB_WORKSPACE%\build --config Release -- /verbosity:minimal /maxCpuCount /noLogo
153        cmake --build %GITHUB_WORKSPACE%\build --config Debug -- /verbosity:minimal /maxCpuCount /noLogo
154
155    - name: Build (Ninja)
156      if: matrix.GEN == 'Ninja Multi-Config'
157      shell: cmd
158      run: |
159        if /I "${{matrix.VER}}"=="v140" set VER=14.0
160        if /I "${{matrix.VER}}"=="v141" set VER=14.1
161        if /I "${{matrix.VER}}"=="v142" set VER=14.2
162        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
163        cmake --build %GITHUB_WORKSPACE%\build --config Release
164        cmake --build %GITHUB_WORKSPACE%\build --config Debug
165
166    - name: Test
167      working-directory: ${{runner.workspace}}/OpenCL-Headers/build
168      shell: cmd
169      run: |
170        ctest -C Release --parallel %NUMBER_OF_PROCESSORS%
171
172    - name: Install
173      shell: cmd
174      run: |
175        cmake --build %GITHUB_WORKSPACE%/build --config Release --target install
176
177    - name: Consume (Configure PkgConfig - bare MSBuild)
178      if: matrix.GEN == 'Visual Studio 16 2019'
179      shell: cmd
180      run: |
181        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
182        if /I "${{matrix.BIN}}"=="x86" (set BIN=Win32) else (set BIN=x64)
183        cmake -G "${{matrix.GEN}}" -A %BIN% -T ${{matrix.VER}} -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE%\tests\pkgconfig\bare -B %GITHUB_WORKSPACE%\downstream\pkgconfig\bare
184
185    - name: Consume (Configure PkgConfig - bare Ninja)
186      if: matrix.GEN == 'Ninja Multi-Config'
187      shell: cmd
188      run: |
189        if /I "${{matrix.VER}}"=="v140" (set VER=14.0)
190        if /I "${{matrix.VER}}"=="v141" (set VER=14.1)
191        if /I "${{matrix.VER}}"=="v142" (set VER=14.2)
192        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
193        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
194        cmake -G "${{matrix.GEN}}" -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_EXE_LINKER_FLAGS=/INCREMENTAL -D CMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE%\tests\pkgconfig\bare -B %GITHUB_WORKSPACE%\downstream\pkgconfig\bare
195
196    - name: Consume (Build PkgConfig - bare MSBuild)
197      if: matrix.GEN == 'Visual Studio 16 2019'
198      shell: cmd
199      run: |
200        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\bare --config Release -- /verbosity:minimal /maxCpuCount /noLogo
201        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\bare --config Debug -- /verbosity:minimal /maxCpuCount /noLogo
202
203    - name: Consume (Build PkgConfig - bare Ninja)
204      if: matrix.GEN == 'Ninja Multi-Config'
205      shell: cmd
206      run: |
207        if /I "${{matrix.VER}}"=="v140" set VER=14.0
208        if /I "${{matrix.VER}}"=="v141" set VER=14.1
209        if /I "${{matrix.VER}}"=="v142" set VER=14.2
210        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
211        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\bare --config Release
212        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\bare --config Debug
213
214    - name: Consume (Emulate SDK presence)
215      shell: bash
216      run: cmake -E make_directory $GITHUB_WORKSPACE/install/share/cmake/OpenCL;
217        echo 'include("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeaders/OpenCLHeadersTargets.cmake")' > $GITHUB_WORKSPACE/install/share/cmake/OpenCL/OpenCLConfig.cmake
218
219    - name: Consume (Configure PkgConfig - SDK MSBuild)
220      if: matrix.GEN == 'Visual Studio 16 2019'
221      shell: cmd
222      run: |
223        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
224        if /I "${{matrix.BIN}}"=="x86" (set BIN=Win32) else (set BIN=x64)
225        cmake -G "${{matrix.GEN}}" -A %BIN% -T ${{matrix.VER}} -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE%\tests\pkgconfig\sdk -B %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk
226
227    - name: Consume (Configure PkgConfig - SDK Ninja)
228      if: matrix.GEN == 'Ninja Multi-Config'
229      shell: cmd
230      run: |
231        if /I "${{matrix.VER}}"=="v140" (set VER=14.0)
232        if /I "${{matrix.VER}}"=="v141" (set VER=14.1)
233        if /I "${{matrix.VER}}"=="v142" (set VER=14.2)
234        if /I "${{matrix.EXT}}"=="ON" (set C_FLAGS="/W4 /WX") else (set C_FLAGS="/W4 /WX /Za /wd4001")
235        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
236        cmake -G "${{matrix.GEN}}" -D BUILD_TESTING=ON -D CMAKE_C_FLAGS=%C_FLAGS% -D CMAKE_C_EXTENSIONS=${{matrix.EXT}} -D CMAKE_EXE_LINKER_FLAGS=/INCREMENTAL -D CMAKE_PREFIX_PATH=%GITHUB_WORKSPACE%/install -S %GITHUB_WORKSPACE%\tests\pkgconfig\sdk -B %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk
237
238    - name: Consume (Build PkgConfig - SDK MSBuild)
239      if: matrix.GEN == 'Visual Studio 16 2019'
240      shell: cmd
241      run: |
242        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk --config Release -- /verbosity:minimal /maxCpuCount /noLogo
243        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk --config Debug -- /verbosity:minimal /maxCpuCount /noLogo
244
245    - name: Consume (Build PkgConfig - SDK Ninja)
246      if: matrix.GEN == 'Ninja Multi-Config'
247      shell: cmd
248      run: |
249        if /I "${{matrix.VER}}"=="v140" set VER=14.0
250        if /I "${{matrix.VER}}"=="v141" set VER=14.1
251        if /I "${{matrix.VER}}"=="v142" set VER=14.2
252        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.BIN}} /vcvars_ver=%VER%
253        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk --config Release
254        cmake --build %GITHUB_WORKSPACE%\downstream\pkgconfig\sdk --config Debug
255
256  macos-gcc:
257    runs-on: macos-latest
258    strategy:
259      matrix:
260        VER: [8, 9]
261        EXT: [ON, OFF]
262        GEN: [Xcode, Ninja Multi-Config]
263        STD: [99, 11] # 90 results in errors
264
265    steps:
266    - uses: actions/checkout@v2
267
268    - name: Create Build Environment
269      run: |
270        cmake -E make_directory $GITHUB_WORKSPACE/build;
271        cmake -E make_directory $GITHUB_WORKSPACE/install;
272        if [[ "${{matrix.GEN}}" == "Ninja Multi-Config" && ! `which ninja` ]]; then brew install ninja; fi;
273        # Install Ninja only if it's the selected generator and it's not available.
274
275    - name: Configure CMake
276      shell: bash
277      run: cmake
278        -G "${{matrix.GEN}}"
279        -D BUILD_TESTING=ON
280        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -Wno-format"
281        -D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}
282        -D CMAKE_C_STANDARD=${{matrix.STD}}
283        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
284        -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install
285        -S $GITHUB_WORKSPACE
286        -B $GITHUB_WORKSPACE/build
287
288    - name: Build (Xcode)
289      if: matrix.GEN == 'Xcode'
290      shell: bash
291      run: |
292        cmake --build $GITHUB_WORKSPACE/build --config Release
293        cmake --build $GITHUB_WORKSPACE/build --config Debug
294
295    - name: Build (Ninja)
296      if: matrix.GEN == 'Ninja Multi-Config'
297      shell: bash
298      run: |
299        cmake --build $GITHUB_WORKSPACE/build --config Release
300        cmake --build $GITHUB_WORKSPACE/build --config Debug
301
302    - name: Test
303      working-directory: ${{runner.workspace}}/OpenCL-Headers/build
304      shell: bash
305      run: ctest -C Release --parallel `sysctl -n hw.logicalcpu`
306
307    - name: Install (Xcode)
308      if: matrix.GEN == 'Xcode'
309      shell: bash
310      run: |
311        cmake --build $GITHUB_WORKSPACE/build --config Release --target install
312
313    - name: Install (Ninja)
314      if: matrix.GEN == 'Ninja Multi-Config'
315      shell: bash
316      run: |
317        cmake --build $GITHUB_WORKSPACE/build --config Release --target install
318
319    - name: Consume (Configure PkgConfig - bare)
320      shell: bash
321      run: cmake
322        -G "${{matrix.GEN}}"
323        -D BUILD_TESTING=ON
324        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -Wno-format"
325        -D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}
326        -D CMAKE_C_STANDARD=${{matrix.STD}}
327        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
328        -D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install
329        -S $GITHUB_WORKSPACE/tests/pkgconfig/bare
330        -B $GITHUB_WORKSPACE/downstream/pkgconfig/bare
331
332    - name: Consume (Build PkgConfig - bare)
333      shell: bash
334      run: |
335        cmake --build $GITHUB_WORKSPACE/downstream/pkgconfig/bare --config Release
336        cmake --build $GITHUB_WORKSPACE/downstream/pkgconfig/bare --config Debug
337
338    - name: Consume (Emulate SDK presence)
339      shell: bash
340      run: cmake -E make_directory $GITHUB_WORKSPACE/install/share/cmake/OpenCL;
341        echo 'include("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeaders/OpenCLHeadersTargets.cmake")' > $GITHUB_WORKSPACE/install/share/cmake/OpenCL/OpenCLConfig.cmake
342
343    - name: Consume (Configure PkgConfig - SDK)
344      shell: bash
345      run: cmake
346        -G "${{matrix.GEN}}"
347        -D BUILD_TESTING=ON
348        -D CMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic -Wno-format"
349        -D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}
350        -D CMAKE_C_STANDARD=${{matrix.STD}}
351        -D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
352        -D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install
353        -S $GITHUB_WORKSPACE/tests/pkgconfig/sdk
354        -B $GITHUB_WORKSPACE/downstream/pkgconfig/sdk
355
356    - name: Consume (Build PkgConfig - SDK)
357      shell: bash
358      run: |
359        cmake --build $GITHUB_WORKSPACE/downstream/pkgconfig/sdk --config Release
360        cmake --build $GITHUB_WORKSPACE/downstream/pkgconfig/sdk --config Debug