Skip to content

expose header parameters in clCompileProgram #331

expose header parameters in clCompileProgram

expose header parameters in clCompileProgram #331

Workflow file for this run

name: MacOS
on: [push, pull_request]
env:
OPENCL_PKGCONFIG_PATHS: ${{ github.workspace }}/install/share/pkgconfig:${{ github.workspace }}/external/OpenCL-Headers/install/share/pkgconfig:${{ github.workspace }}/external/OpenCL-ICD-Loader/install/lib/pkgconfig
jobs:
macos-gcc:
#runs-on: macos-latest
runs-on: macos-11 # temporary, macos-latest only supports gcc-12
strategy:
matrix:
VER: [9, 11]
EXT: [ON, OFF]
GEN: [Xcode, Ninja Multi-Config]
STD: [11, 17]
steps:
- name: Checkout OpenCL-CLHPP
uses: actions/checkout@v3
with:
submodules: recursive
- name: Checkout OpenCL-Headers
uses: actions/checkout@v3
with:
repository: KhronosGroup/OpenCL-Headers
path: external/OpenCL-Headers
- name: Checkout OpenCL-ICD-Loader
uses: actions/checkout@v3
with:
repository: KhronosGroup/OpenCL-ICD-Loader
path: external/OpenCL-ICD-Loader
- name: Install gcc if required
run: |
if [[ ! `which /usr/local/bin/gcc-${{matrix.VER}}` ]]; then brew install gcc@${{matrix.VER}}; fi;
- name: Create Build Environment
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.
- name: Build & install OpenCL-Headers
run: cmake
-G "${{matrix.GEN}}"
-D CMAKE_C_FLAGS="-w"
-D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}
-D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/external/OpenCL-Headers/install
-D BUILD_TESTING=OFF
-S $GITHUB_WORKSPACE/external/OpenCL-Headers
-B $GITHUB_WORKSPACE/external/OpenCL-Headers/build &&
cmake
--build $GITHUB_WORKSPACE/external/OpenCL-Headers/build
--target install
--config Release
--parallel `sysctl -n hw.logicalcpu` &&
ls -al $GITHUB_WORKSPACE/external/OpenCL-Headers/install &&
ls -al $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include &&
ls -al $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include/CL &&
ls -al $GITHUB_WORKSPACE/external/OpenCL-Headers/install/include/OpenCL
- name: Build & install OpenCL-ICD-Loader
run: cmake
-G "${{matrix.GEN}}"
-D CMAKE_C_FLAGS="-w -m64"
-D CMAKE_C_COMPILER=/usr/local/bin/gcc-${{matrix.VER}}
-D CMAKE_C_EXTENSIONS=${{matrix.EXT}}
-D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/external/OpenCL-Headers/install
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/install
-D BUILD_TESTING=OFF
-S $GITHUB_WORKSPACE/external/OpenCL-ICD-Loader
-B $GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/build &&
cmake
--build $GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/build
--target install
--config Release
--parallel `sysctl -n hw.logicalcpu`
- name: Configure CMake
# no -Werror during configuration because:
# warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
# warning: unused parameter [-Wunused-parameter]
shell: bash
run: cmake
-G "${{matrix.GEN}}"
-D BUILD_TESTING=ON
-D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Wno-format -m64"
-D CMAKE_CXX_COMPILER=/usr/local/bin/g++-${{matrix.VER}}
-D CMAKE_CXX_STANDARD=${{matrix.STD}}
-D CMAKE_CXX_EXTENSIONS=${{matrix.EXT}}
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install
-D CMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/external/OpenCL-Headers/install;$GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/install"
-S $GITHUB_WORKSPACE
-B $GITHUB_WORKSPACE/build
- name: Build (Xcode)
if: matrix.GEN == 'Xcode'
shell: bash
run: |
cmake --build $GITHUB_WORKSPACE/build --config Release --parallel `sysctl -n hw.logicalcpu`
cmake --build $GITHUB_WORKSPACE/build --config Debug --parallel `sysctl -n hw.logicalcpu`
- name: Build (Ninja)
if: matrix.GEN == 'Ninja Multi-Config'
shell: bash
run: |
cmake --build $GITHUB_WORKSPACE/build --config Release --parallel `sysctl -n hw.logicalcpu`
cmake --build $GITHUB_WORKSPACE/build --config Debug --parallel `sysctl -n hw.logicalcpu`
- name: Test
working-directory: ${{runner.workspace}}/OpenCL-CLHPP/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: Install (Xcode)
if: matrix.GEN == 'Xcode'
shell: bash
run: |
cmake --build $GITHUB_WORKSPACE/build --config Release --target install
- name: Install (Ninja)
if: matrix.GEN == 'Ninja Multi-Config'
shell: bash
run: |
cmake --build $GITHUB_WORKSPACE/build --config Release --target install
- name: "Consume (standalone): Configure/Build/Test"
shell: bash
run: cmake
-G "${{matrix.GEN}}"
-D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -m64"
-D CMAKE_CXX_COMPILER=/usr/local/bin/g++-${{matrix.VER}}
-D CMAKE_CXX_STANDARD=${{matrix.STD}}
-D CMAKE_CXX_EXTENSIONS=${{matrix.EXT}}
-D CMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/external/OpenCL-Headers/install;$GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/install;$GITHUB_WORKSPACE/install"
-B$GITHUB_WORKSPACE/build/downstream/bare
-H$GITHUB_WORKSPACE/tests/pkgconfig/bare ;
cmake --build $GITHUB_WORKSPACE/build/downstream/bare --config Release ;
cmake --build $GITHUB_WORKSPACE/build/downstream/bare --config Debug ;
cd $GITHUB_WORKSPACE/build/downstream/bare ;
ctest --output-on-failure -C Release ;
ctest --output-on-failure -C Debug
- name: "Consume (SDK): Configure/Build/Test"
shell: bash
run: cmake -E make_directory $GITHUB_WORKSPACE/install/share/cmake/OpenCL ;
echo -e 'include("/Users/runner/work/OpenCL-CLHPP/OpenCL-CLHPP/external/OpenCL-Headers/install/share/cmake/OpenCLHeaders/OpenCLHeadersTargets.cmake")\ninclude("/Users/runner/work/OpenCL-CLHPP/OpenCL-CLHPP/external/OpenCL-ICD-Loader/install/share/cmake/OpenCLICDLoader/OpenCLICDLoaderTargets.cmake")\ninclude("${CMAKE_CURRENT_LIST_DIR}/../OpenCLHeadersCpp/OpenCLHeadersCppTargets.cmake")' > $GITHUB_WORKSPACE/install/share/cmake/OpenCL/OpenCLConfig.cmake ;
cmake
-G "${{matrix.GEN}}"
-D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -m64"
-D CMAKE_CXX_COMPILER=/usr/local/bin/g++-${{matrix.VER}}
-D CMAKE_CXX_STANDARD=${{matrix.STD}}
-D CMAKE_CXX_EXTENSIONS=${{matrix.EXT}}
-D CMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/external/OpenCL-Headers/install;$GITHUB_WORKSPACE/external/OpenCL-ICD-Loader/install;$GITHUB_WORKSPACE/install"
-B$GITHUB_WORKSPACE/build/downstream/sdk
-H$GITHUB_WORKSPACE/tests/pkgconfig/sdk ;
cmake --build $GITHUB_WORKSPACE/build/downstream/sdk --config Release ;
cmake --build $GITHUB_WORKSPACE/build/downstream/sdk --config Debug ;
cd $GITHUB_WORKSPACE/build/downstream/sdk ;
ctest --output-on-failure -C Release ;
ctest --output-on-failure -C Debug
- name: Test pkg-config
shell: bash
run: |
if [[ ! `which pkg-config` ]]; then brew install pkg-config; fi;
PKG_CONFIG_PATH="$OPENCL_PKGCONFIG_PATHS" pkg-config OpenCL-CLHPP --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include"
- name: Test pkg-config dependency
shell: bash
run: PKG_CONFIG_PATH="$OPENCL_PKGCONFIG_PATHS" pkg-config OpenCL-CLHPP --cflags | grep -q "\-I$GITHUB_WORKSPACE/external/OpenCL-Headers/install/include"