Introduce extension Macros #10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |