| name: Linux |
| |
| on: |
| push: |
| paths-ignore: |
| - '**/*.md' |
| pull_request: |
| paths-ignore: |
| - '**/*.md' |
| |
| jobs: |
| compatibility: |
| runs-on: ubuntu-20.04 |
| container: streamhpc/opencl-sdk-base:ubuntu-18.04-20220127 |
| strategy: |
| matrix: |
| # TODO: CMake 3.0.2 is Headers minimum (and ubuntu 18.04 canonical apt repo ver), not this repo's min |
| # Replace once backport to C++14 happened |
| include: |
| # Unix Makefiles |
| # One CMake version |
| # For all compilers |
| # For all configurations |
| # For all target architectures |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 64 |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 64 |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 32 |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 32 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 64 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 64 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 32 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 32 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 64 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 64 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 32 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 32 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 64 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 64 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Debug |
| BIN: 32 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.0.2 |
| GEN: Unix Makefiles |
| CONFIG: Release |
| BIN: 32 |
| # Multi-config generators |
| # One CMake version |
| # For all compilers |
| # For all architectures |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 64 |
| - C_COMPILER: gcc-7 |
| CXX_COMPILER: g++-7 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 32 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 64 |
| - C_COMPILER: gcc-11 |
| CXX_COMPILER: g++-11 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 32 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 64 |
| - C_COMPILER: clang-8 |
| CXX_COMPILER: clang++-8 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 32 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 64 |
| - C_COMPILER: clang-13 |
| CXX_COMPILER: clang++-13 |
| CMAKE: 3.22.1 |
| GEN: Ninja Multi-Config |
| BIN: 32 |
| env: |
| CMAKE_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/cmake |
| CTEST_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/ctest |
| |
| steps: |
| - name: Checkout OpenCL-Headers |
| uses: actions/checkout@v3 |
| |
| - name: Configure |
| shell: bash |
| run: $CMAKE_EXE |
| -G "${{matrix.GEN}}" |
| -D BUILD_TESTING=ON |
| `if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; then echo -D CMAKE_BUILD_TYPE=${{matrix.CONFIG}}; fi;` |
| -D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" |
| -D CMAKE_C_COMPILER=${{matrix.C_COMPILER}} |
| -D CMAKE_C_EXTENSIONS=OFF |
| -D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" |
| -D CMAKE_CXX_COMPILER=${{matrix.CXX_COMPILER}} |
| -D CMAKE_CXX_EXTENSIONS=OFF |
| -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install |
| -B$GITHUB_WORKSPACE/build |
| -H$GITHUB_WORKSPACE |
| |
| - name: Build |
| shell: bash |
| run: if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; |
| then |
| $CMAKE_EXE --build $GITHUB_WORKSPACE/build -- -j`nproc`; |
| else |
| $CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Debug -- -j`nproc`; |
| $CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release -- -j`nproc`; |
| fi; |
| |
| - name: Test |
| shell: bash |
| working-directory: ${{runner.workspace}}/OpenCL-Headers/build |
| run: if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; |
| then |
| $CTEST_EXE --output-on-failure --parallel `nproc`; |
| else |
| $CTEST_EXE --output-on-failure -C Debug --parallel `nproc`; |
| $CTEST_EXE --output-on-failure -C Release --parallel `nproc`; |
| fi; |
| |
| - name: Test install |
| shell: bash |
| run: if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; |
| then |
| $CMAKE_EXE --build $GITHUB_WORKSPACE/build --target install -- -j`nproc`; |
| else |
| $CMAKE_EXE --build $GITHUB_WORKSPACE/build --target install --config Release -- -j`nproc`; |
| fi; |
| |
| - name: Test pkg-config |
| shell: bash |
| run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/share/pkgconfig" pkg-config OpenCL-Headers --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" |