Skip to content

cmake: add target_link_directories (#11) #53

cmake: add target_link_directories (#11)

cmake: add target_link_directories (#11) #53

Workflow file for this run

name: Presubmit
on:
push:
branches:
- main
pull_request:
jobs:
format:
name: Check code formatting
runs-on: ubuntu-22.04
steps:
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format clang-format-15
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check format
run: |
git-clang-format --binary clang-format-15 --diff origin/main --extensions cpp,hpp,c,cl > output.txt
cat output.txt
grep -E "(no modified files to format|clang-format did not modify any files)" output.txt
build:
name: Builds & Tests
needs: format
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build clang-15
- name: Build Perfetto
run: |
git clone --depth 1 --branch v45.0 https://android.googlesource.com/platform/external/perfetto third_party/perfetto
$(pwd)/third_party/perfetto/tools/install-build-deps
$(pwd)/third_party/perfetto/tools/setup_all_configs.py
$(pwd)/third_party/perfetto/tools/ninja -C $(pwd)/third_party/perfetto/out/linux_clang_release trace_processor_shell
- name: Build OpenCL-ICD-Loader
run: |
git clone --depth 1 --branch v2024.05.08 https://github.com/KhronosGroup/OpenCL-Headers.git third_party/opencl-headers
git clone --depth 1 --branch v2024.05.08 https://github.com/KhronosGroup/OpenCL-ICD-Loader.git third_party/opencl-icd-loader
cmake -B third_party/opencl-icd-loader/build -S third_party/opencl-icd-loader -G Ninja \
-DOPENCL_ICD_LOADER_HEADERS_DIR=$(pwd)/third_party/opencl-headers \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER="$(which clang++)" \
-DCMAKE_C_COMPILER="$(which clang)"
cmake --build third_party/opencl-icd-loader/build
- name: Install pocl dependencies
run: |
sudo apt-get install -y python3-dev libpython3-dev build-essential ocl-icd-libopencl1 cmake git pkg-config libclang-15-dev clang-15 llvm-15 make ninja-build ocl-icd-libopencl1 ocl-icd-dev ocl-icd-opencl-dev libhwloc-dev zlib1g zlib1g-dev clinfo dialog apt-utils libxml2-dev libclang-cpp15-dev libclang-cpp15 llvm-15-dev
- name: Build pocl
run: |
git clone --depth 1 --branch v6.0 https://github.com/pocl/pocl.git third_party/pocl
cmake -B third_party/pocl/build -S third_party/pocl -G Ninja \
-DCMAKE_INSTALL_PREFIX=$(pwd)/third_party/pocl/install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER="$(which clang++)" \
-DCMAKE_C_COMPILER="$(which clang)"
cmake --build third_party/pocl/build --target install
- name: Build debug
run: |
cmake -B build_debug -S . -G Ninja \
-DPERFETTO_SDK_PATH="$(pwd)/third_party/perfetto/sdk" \
-DOPENCL_HEADER_PATH="$(pwd)/third_party/opencl-headers" \
-DCMAKE_CXX_COMPILER="$(which clang++)" \
-DCMAKE_BUILD_TYPE=Debug
cmake --build build_debug
- name: Build release
run: |
cmake -B build_release -S . -G Ninja \
-DPERFETTO_SDK_PATH="$(pwd)/third_party/perfetto/sdk" \
-DOPENCL_HEADER_PATH="$(pwd)/third_party/opencl-headers" \
-DCMAKE_CXX_COMPILER="$(which clang++)" \
-DCMAKE_C_COMPILER="$(which clang)" \
-DCLKP_BUILD_TESTS=1 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build_release
- name: Tests
run: |
mkdir -p $(pwd)/kernels
OCL_ICD_ENABLE_TRACE=1 \
OPENCL_LAYERS=$(pwd)/build_release/libopencl-kernel-profiler.so \
OCL_ICD_FILENAMES=$(pwd)/third_party/pocl/install/lib/libpocl.so \
LD_LIBRARY_PATH=$(pwd)/third_party/opencl-icd-loader/build:$LD_LIBRARY_PATH \
CLKP_TRACE_DEST=$(pwd)/trace \
CLKP_KERNEL_DIR=$(pwd)/kernels \
$(pwd)/build_release/tests/opencl-kernel-profiler-test $(pwd)/tests/gpu.cl
TRACE_PROCESSOR_SHELL=$(pwd)/third_party/perfetto/out/linux_clang_release/trace_processor_shell \
$(pwd)/tests/test.sh "$(pwd)/trace" "$(pwd)/kernels"