Skip to content

Update build instructions #132

Update build instructions

Update build instructions #132

Workflow file for this run

name: build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
opencl-icd-loader-git-tag: "v2023.04.17"
opencl-headers-git-tag: "v2023.04.17"
jobs:
build:
strategy:
fail-fast: false
matrix:
name: [ubuntu, windows, macos]
include:
- name: ubuntu
os: ubuntu-latest
c-compiler: "gcc"
cxx-compiler: "g++"
cmake-build-type: "Release"
cmake-build-flag: ""
- name: windows
os: windows-latest
c-compiler: "cl.exe"
cxx-compiler: "cl.exe"
cmake-build-type: "Release"
cmake-build-flag: "-A x64"
- name: macos
os: macos-13
c-compiler: "clang"
cxx-compiler: "clang++"
cmake-build-type: "Release"
cmake-build-flag: ""
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Install ocl-icd-loader - windows
if: runner.os == 'Windows'
run: |
cd ..
git clone --branch ${{ env.opencl-icd-loader-git-tag }} https://github.com/KhronosGroup/OpenCL-ICD-Loader
git clone --branch ${{ env.opencl-headers-git-tag }} https://github.com/KhronosGroup/OpenCL-Headers
cmake -S "./OpenCL-Headers" -B "./OpenCL-Headers/build"
cmake --build "./OpenCL-Headers/build" --parallel 6 --target install
cmake -D CMAKE_PREFIX_PATH="./OpenCL-Headers" -D OPENCL_ICD_LOADER_HEADERS_DIR="./OpenCL-Headers/" -S "./OpenCL-ICD-Loader" -B "./OpenCL-ICD-Loader/build" -A x64
cmake --build "./OpenCL-ICD-Loader/build" --parallel 6 --target install --config Release
shell: bash -l {0}
- name: Increase swapfile on Ubuntu
if: runner.os == 'Linux'
run: |
sudo swapoff -a
sudo fallocate -l 15G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --show
- name: Install openCL on Ubuntu
if: runner.os == 'Linux'
run: sudo apt install ocl-icd-opencl-dev
- name: Build with Maven
run: mvn clean install -DskipTests
shell: bash
- name: Run Java class (only possible on MacOS)
if: contains(matrix.os, 'macos')
run: |
mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt
java -cp target/classes:$(cat classpath.txt) net.clesperanto.ClesperantoJ