Update CI #44
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: Presubmit | |
on: [push, pull_request] | |
jobs: | |
get-branch: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get working branch | |
id: get-branch | |
run: | | |
if [[ ${{ github.event_name }} == "push" ]]; then | |
echo "branch=main" >> $GITHUB_OUTPUT | |
else | |
echo "branch=${{ github.base_ref }}" >> $GITHUB_OUTPUT | |
fi ; | |
echo $GITHUB_OUTPUT | |
outputs: | |
branch: ${{ steps.get-branch.outputs.branch }} | |
format: | |
name: Code formatting | |
runs-on: ubuntu-latest | |
needs: get-branch | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
# repository: ${{ github.repository }} (default) | |
fetch-depth: 0 | |
- name: Install clang-format | |
run: sudo apt-get install clang-format | |
- name: Check format | |
run: $GITHUB_WORKSPACE/scripts/check-format.sh origin/${{ needs.get-branch.outputs.branch }} --binary clang-format | |
linux: | |
runs-on: ubuntu-latest | |
needs: format | |
strategy: | |
matrix: | |
CMAKE: [3.26.4] | |
C_COMPILER: | |
- gcc-11 | |
- gcc-13 | |
- clang-14 | |
- clang-16 | |
BIN: [64] | |
STD: [99, 11, 17] | |
CONF: | |
- GEN: Unix Makefiles | |
CONFIG: Debug | |
- GEN: Unix Makefiles | |
CONFIG: Release | |
- GEN: Ninja Multi-Config | |
CONFIG: Release | |
IMAGE: | |
- streamhpc/opencl-sdk-intelcpu:ubuntu-22.04-20230717 | |
include: | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-9 | |
BIN: 64 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Debug | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717 | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-9 | |
BIN: 64 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Release | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717 | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-9 | |
BIN: 32 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Debug | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717 | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-9 | |
BIN: 32 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Release | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717 | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-11 | |
BIN: 64 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Debug | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-22.04-20230717 | |
- CMAKE: 3.0.2 | |
C_COMPILER: gcc-11 | |
BIN: 64 | |
STD: 99 | |
CONF: | |
GEN: Unix Makefiles | |
CONFIG: Release | |
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-22.04-20230717 | |
container: ${{matrix.IMAGE}} | |
env: | |
CMAKE_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/cmake | |
CPACK_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/cpack | |
CTEST_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/ctest | |
CC: ${{matrix.C_COMPILER}} | |
steps: | |
- name: Checkout OpenCL-Headers | |
uses: actions/checkout@v3 | |
- name: Configure | |
shell: bash | |
run: mkdir $GITHUB_WORKSPACE/build && cd $GITHUB_WORKSPACE/build && | |
$CMAKE_EXE | |
-G "${{matrix.CONF.GEN}}" | |
-D BUILD_TESTING=ON | |
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}} | |
-D CMAKE_C_STANDARD=${{matrix.STD}} | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" | |
-D CMAKE_C_EXTENSIONS=OFF | |
-D CMAKE_INSTALL_PREFIX=`if [[ "${{matrix.CMAKE}}" != "3.0.2" ]]; then echo "$GITHUB_WORKSPACE/install"; else echo "/usr"; fi` | |
`if [[ "${{matrix.CMAKE}}" != "3.0.2" ]]; then echo "-D CPACK_PACKAGING_INSTALL_PREFIX=/usr"; fi` | |
$GITHUB_WORKSPACE | |
- name: Build | |
shell: bash | |
run: if [[ "${{matrix.CONF.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.CONF.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: Package DEB | |
shell: bash | |
run: $CPACK_EXE | |
--config "$GITHUB_WORKSPACE/build/CPackConfig.cmake" | |
-G DEB | |
-C Release | |
-B "$GITHUB_WORKSPACE/package-deb" | |
- name: Consume (DEB) | |
shell: bash | |
run: dpkg -i $GITHUB_WORKSPACE/package-deb/*.deb && | |
mkdir $GITHUB_WORKSPACE/build_package && cd $GITHUB_WORKSPACE/build_package && | |
$CMAKE_EXE | |
-G "${{matrix.CONF.GEN}}" | |
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}} | |
-D CMAKE_C_STANDARD=${{matrix.STD}} | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" | |
-D CMAKE_C_EXTENSIONS=OFF | |
$GITHUB_WORKSPACE/tests/pkgconfig/bare && | |
if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]]; | |
then | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package -- -j`nproc`; | |
else | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Debug -- -j`nproc`; | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Release -- -j`nproc`; | |
fi; | |
- name: Test pkg-config (DEB) | |
shell: bash | |
# /usr/include is already on the include search path, | |
# we don't expect any output | |
run: if [[ $(pkg-config OpenCL --cflags) ]]; | |
then | |
exit 1; | |
fi; | |
- name: Uninstall (DEB) | |
shell: bash | |
run: apt-get remove -y opencl-c-headers | |
- name: Re-configure for install | |
if: matrix.CMAKE == '3.0.2' | |
shell: bash | |
run: cd $GITHUB_WORKSPACE/build && | |
$CMAKE_EXE -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install $GITHUB_WORKSPACE | |
- name: Test install | |
shell: bash | |
run: $CMAKE_EXE --build $GITHUB_WORKSPACE/build --target install --config ${{matrix.CONF.CONFIG}} -- -j`nproc`; | |
- name: Consume (install) | |
shell: bash | |
run: mkdir $GITHUB_WORKSPACE/build_install && cd $GITHUB_WORKSPACE/build_install && | |
$CMAKE_EXE | |
-G "${{matrix.CONF.GEN}}" | |
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}} | |
-D CMAKE_C_STANDARD=${{matrix.STD}} | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" | |
-D CMAKE_C_EXTENSIONS=OFF | |
-D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install | |
$GITHUB_WORKSPACE/tests/pkgconfig/bare && | |
if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]]; | |
then | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install -- -j`nproc`; | |
else | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Debug -- -j`nproc`; | |
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Release -- -j`nproc`; | |
fi; | |
- name: Test pkg-config (install) | |
shell: bash | |
run: PKG_CONFIG_PATH=$GITHUB_WORKSPACE/install/share/pkgconfig | |
pkg-config OpenCL-Headers --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" | |
windows: | |
runs-on: windows-latest | |
needs: format | |
strategy: | |
matrix: | |
VER: [v141, v142, v143, clangcl] | |
GEN: [Visual Studio 17 2022, Ninja Multi-Config] | |
BIN: [x64] | |
STD: [99, 11, 17] | |
exclude: | |
- VER: clangcl | |
GEN: Ninja Multi-Config | |
include: | |
- VER: v142 | |
GEN: Visual Studio 17 2022 | |
BIN: x86 | |
STD: 99 | |
env: | |
NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip | |
NINJA_ROOT: C:\Tools\Ninja | |
VS_ROOT: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' | |
UseMultiToolTask: true # Better parallel MSBuild execution | |
EnforceProcessCountAcrossBuilds: 'true' # -=- | |
MultiProcMaxCount: '3' # -=- | |
steps: | |
- name: Cache Ninja install | |
if: matrix.GEN == 'Ninja Multi-Config' | |
id: ninja-install | |
uses: actions/cache@v3 | |
with: | |
path: | | |
C:\Tools\Ninja | |
key: ${{runner.os}}-ninja-${{env.NINJA_URL}} | |
- name: Install Ninja | |
if: matrix.GEN == 'Ninja Multi-Config' && steps.ninja-install.outputs.cache-hit != 'true' | |
shell: pwsh | |
run: | | |
Invoke-WebRequest ${env:NINJA_URL} -OutFile ~\Downloads\ninja-win.zip | |
Expand-Archive ~\Downloads\ninja-win.zip -DestinationPath ${env:NINJA_ROOT}\ | |
Remove-Item ~\Downloads\* | |
- name: Checkout OpenCL-Headers | |
uses: actions/checkout@v3 | |
- name: Configure (MSBuild) | |
if: matrix.GEN == 'Visual Studio 17 2022' | |
shell: pwsh | |
run: | | |
$BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-A ${BIN} ` | |
-T ${{matrix.VER}} ` | |
-D BUILD_TESTING=ON ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-S "${env:GITHUB_WORKSPACE}" ` | |
-B "${env:GITHUB_WORKSPACE}\build" | |
- name: Configure (Ninja Multi-Config) | |
if: matrix.GEN == 'Ninja Multi-Config' | |
shell: pwsh | |
run: | | |
$VER = switch ('${{matrix.VER}}') { ` | |
'v141' {'14.1'} ` | |
'v142' {'14.2'} ` | |
'v143' {'14.3'} } | |
Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` | |
-D BUILD_TESTING=ON ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` | |
-S "${env:GITHUB_WORKSPACE}" ` | |
-B "${env:GITHUB_WORKSPACE}\build" | |
- name: Build (MSBuild) | |
if: matrix.GEN == 'Visual Studio 17 2022' | |
shell: pwsh | |
run: | | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\build" ` | |
--config ${Config} ` | |
-- ` | |
/verbosity:minimal ` | |
/maxCpuCount ` | |
/noLogo | |
} | |
- name: Build (Ninja Multi-Config) | |
if: matrix.GEN == 'Ninja Multi-Config' | |
shell: pwsh | |
run: | | |
$VER = switch ('${{matrix.VER}}') { ` | |
'v141' {'14.1'} ` | |
'v142' {'14.2'} ` | |
'v143' {'14.3'} } | |
Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\build" ` | |
--config ${Config} ` | |
-- ` | |
-j ${env:NUMBER_OF_PROCESSORS} | |
} | |
- name: Test | |
shell: pwsh | |
run: | | |
foreach ($Config in 'Release','Debug') { ` | |
& ctest ` | |
--test-dir "${env:GITHUB_WORKSPACE}\build" ` | |
--build-config ${Config} ` | |
--output-on-failure ` | |
--parallel ${env:NUMBER_OF_PROCESSORS} | |
} | |
- name: Install | |
shell: pwsh | |
run: | | |
& cmake ` | |
--install "${env:GITHUB_WORKSPACE}\build" ` | |
--prefix "${env:GITHUB_WORKSPACE}\install" ` | |
--config Release | |
- name: "Consume (MSBuild standalone): Configure/Build/Test" | |
if: matrix.GEN == 'Visual Studio 17 2022' | |
shell: pwsh | |
run: | | |
$BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-A ${BIN} ` | |
-T ${{matrix.VER}} ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` | |
-S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\bare" ` | |
-B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" ` | |
--config ${Config} ` | |
-- ` | |
/verbosity:minimal ` | |
/maxCpuCount ` | |
/noLogo ` | |
} | |
- name: "Consume (Ninja Multi-Config standalone): Configure/Build/Test" | |
if: matrix.GEN == 'Ninja Multi-Config' | |
shell: pwsh | |
run: | | |
$VER = switch ('${{matrix.VER}}') { ` | |
'v141' {'14.1'} ` | |
'v142' {'14.2'} ` | |
'v143' {'14.3'} } | |
Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` | |
-D BUILD_TESTING=ON ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` | |
-D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` | |
-S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\bare" ` | |
-B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\bare" ` | |
--config ${Config} ` | |
-- ` | |
-j ${env:NUMBER_OF_PROCESSORS} ` | |
} | |
- name: Consume (Emulate SDK presence) | |
shell: pwsh | |
run: | | |
New-Item -Type Directory -Path ${env:GITHUB_WORKSPACE}\install\share\cmake\OpenCL | |
New-Item -Type File -Path ${env:GITHUB_WORKSPACE}\install\share\cmake\OpenCL\OpenCLConfig.cmake -Value 'include("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeaders/OpenCLHeadersTargets.cmake")' | |
- name: "Consume (MSBuild SDK): Configure/Build/Test" | |
if: matrix.GEN == 'Visual Studio 17 2022' | |
shell: pwsh | |
run: | | |
$BIN = if('${{matrix.BIN}}' -eq 'x86') {'Win32'} else {'x64'} | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-A ${BIN} ` | |
-T ${{matrix.VER}} ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` | |
-S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\sdk" ` | |
-B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" ` | |
--config ${Config} ` | |
-- ` | |
/verbosity:minimal ` | |
/maxCpuCount ` | |
/noLogo ` | |
} | |
- name: "Consume (Ninja-Multi-Config SDK): Configure/Build/Test" | |
if: matrix.GEN == 'Ninja Multi-Config' | |
shell: pwsh | |
run: | | |
$VER = switch ('${{matrix.VER}}') { ` | |
'v141' {'14.1'} ` | |
'v142' {'14.2'} ` | |
'v143' {'14.3'} } | |
Import-Module "${env:VS_ROOT}\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
Enter-VsDevShell -VsInstallPath ${env:VS_ROOT} -SkipAutomaticLocation -DevCmdArguments "-host_arch=x64 -arch=${{matrix.BIN}} -vcvars_ver=${VER}" | |
$C_FLAGS = '/W4 /WX' | |
& cmake ` | |
-G '${{matrix.GEN}}' ` | |
-D CMAKE_MAKE_PROGRAM="${env:NINJA_ROOT}\ninja.exe" ` | |
-D BUILD_TESTING=ON ` | |
-D CMAKE_C_STANDARD=${{matrix.STD}} ` | |
-D CMAKE_C_FLAGS="${C_FLAGS}" ` | |
-D CMAKE_C_EXTENSIONS=OFF ` | |
-D CMAKE_C_STANDARD_REQUIRED=ON ` | |
-D CMAKE_EXE_LINKER_FLAGS='/INCREMENTAL' ` | |
-D CMAKE_PREFIX_PATH="${env:GITHUB_WORKSPACE}\install" ` | |
-S "${env:GITHUB_WORKSPACE}\tests\pkgconfig\sdk" ` | |
-B "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" | |
foreach ($Config in 'Release','Debug') { ` | |
& cmake ` | |
--build "${env:GITHUB_WORKSPACE}\downstream\pkgconfig\sdk" ` | |
--config ${Config} ` | |
-- ` | |
-j ${env:NUMBER_OF_PROCESSORS} ` | |
} | |
macos: | |
runs-on: macos-latest | |
needs: format | |
strategy: | |
matrix: | |
C_COMPILER: | |
- /usr/bin/gcc # Actually Clang 14 | |
- /usr/local/bin/gcc-11 | |
- /usr/local/bin/gcc-13 | |
GEN: | |
- Xcode | |
- Ninja Multi-Config | |
STD: [99, 11, 17] | |
exclude: | |
- C_COMPILER: /usr/bin/gcc | |
GEN: Ninja Multi-Config | |
- C_COMPILER: /usr/local/bin/gcc-11 | |
GEN: Xcode | |
- C_COMPILER: /usr/local/bin/gcc-13 | |
GEN: Xcode | |
steps: | |
- name: Checkout OpenCL-Headers | |
uses: actions/checkout@v3 | |
- name: Create Build Environment | |
shell: bash | |
run: | | |
cmake -E make_directory $GITHUB_WORKSPACE/build; | |
cmake -E make_directory $GITHUB_WORKSPACE/install; | |
if [[ "${{matrix.GEN}}" == "Ninja Multi-Config" && ! `which ninja` ]]; then brew install ninja; fi; | |
# Install Ninja only if it's the selected generator and it's not available. | |
cmake --version | |
- name: Configure | |
shell: bash | |
run: cmake | |
-G "${{matrix.GEN}}" | |
-D BUILD_TESTING=ON | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror" | |
-D CMAKE_C_COMPILER=${{matrix.C_COMPILER}} | |
-D CMAKE_C_STANDARD=${{matrix.STD}} | |
-D CMAKE_C_EXTENSIONS=OFF | |
-D CMAKE_C_STANDARD_REQUIRED=ON | |
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install | |
-S $GITHUB_WORKSPACE | |
-B $GITHUB_WORKSPACE/build | |
- name: Build | |
shell: bash | |
run: | | |
cmake --build $GITHUB_WORKSPACE/build --config Release --parallel `sysctl -n hw.logicalcpu` `if [[ "${{matrix.GEN}}" == "Xcode" ]]; then echo "-- -quiet"; fi;` | |
cmake --build $GITHUB_WORKSPACE/build --config Debug --parallel `sysctl -n hw.logicalcpu` `if [[ "${{matrix.GEN}}" == "Xcode" ]]; then echo "-- -quiet"; fi;` | |
- name: Test | |
working-directory: ${{runner.workspace}}/OpenCL-Headers/build | |
shell: bash | |
run: | | |
ctest -C Release --output-on-failure --parallel `sysctl -n hw.logicalcpu` | |
ctest -C Debug --output-on-failure --parallel `sysctl -n hw.logicalcpu` | |
- name: Test install | |
shell: bash | |
run: cmake --build $GITHUB_WORKSPACE/build --target install --config Release | |
- name: Consume (install) | |
shell: bash | |
run: cmake | |
-G "${{matrix.GEN}}" | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror" | |
-D CMAKE_C_COMPILER=${{matrix.C_COMPILER}} | |
-D CMAKE_C_STANDARD=${{matrix.STD}} | |
-D CMAKE_C_EXTENSIONS=OFF | |
-D CMAKE_C_STANDARD_REQUIRED=ON | |
-D CMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/install" | |
-S $GITHUB_WORKSPACE/tests/pkgconfig/bare | |
-B $GITHUB_WORKSPACE/build_install && | |
cmake --build $GITHUB_WORKSPACE/build_install --config Release --parallel `sysctl -n hw.logicalcpu` `if [[ "${{matrix.GEN}}" == "Xcode" ]]; then echo "-- -quiet"; fi;` && | |
cmake --build $GITHUB_WORKSPACE/build_install --config Debug --parallel `sysctl -n hw.logicalcpu` `if [[ "${{matrix.GEN}}" == "Xcode" ]]; then echo "-- -quiet"; fi;` | |
- name: Test pkg-config | |
shell: bash | |
run: | | |
if [[ ! `which pkg-config` ]]; then brew install pkg-config; fi && | |
export PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/share/pkgconfig" && | |
pkg-config OpenCL-Headers --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include" | |
android: | |
runs-on: ubuntu-latest | |
needs: format | |
strategy: | |
matrix: | |
ABI: | |
- arm64-v8a | |
- x86_64 | |
API_LEVEL: | |
- android-19 | |
- android-33 | |
CONFIG: | |
- Debug | |
- Release | |
steps: | |
- name: Checkout OpenCL-Headers | |
uses: actions/checkout@v3 | |
- name: Configure | |
shell: bash | |
run: cmake | |
-G "Unix Makefiles" | |
-D BUILD_TESTING=ON | |
-D CMAKE_BUILD_TYPE=${{matrix.CONFIG}} | |
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror" | |
-D CMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake | |
-D ANDROID_ABI=${{matrix.ABI}} | |
-D ANDROID_PLATFORM=${{matrix.API_LEVEL}} | |
-S $GITHUB_WORKSPACE | |
-B $GITHUB_WORKSPACE/build | |
- name: Build | |
shell: bash | |
run: cmake --build $GITHUB_WORKSPACE/build -j `nproc` |