mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Update Github Actions CI and add Windows (#1413)
- Add one Windows build to Github Actions - Remove Appveyor config - Move a few build steps out of the script - Use Ninja as the generator (makes for more readable logs) - Add build cache (except on Windows where it seems to break) Change-Id: Ida90ee1842af98aff86e5144ab7b9766480378c9 Signed-off-by: Kevin Petit <kevin.petit@arm.com>
This commit is contained in:
@@ -1,54 +0,0 @@
|
||||
os:
|
||||
- Visual Studio 2017
|
||||
|
||||
shallow_clone: true
|
||||
|
||||
platform:
|
||||
- Win32
|
||||
- x64
|
||||
|
||||
configuration:
|
||||
- Release
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- SETARCH: i686
|
||||
- SETARCH: x86_64
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- platform: Win32
|
||||
SETARCH: x86_64
|
||||
- platform: x64
|
||||
SETARCH: i686
|
||||
|
||||
before_build:
|
||||
# Setup environment:
|
||||
- ps: $env:TOP = $env:APPVEYOR_BUILD_FOLDER
|
||||
- ps: $env:TOP
|
||||
- echo %TOP%
|
||||
# Get the OpenCL Headers:
|
||||
- git clone --depth=1 https://github.com/KhronosGroup/OpenCL-Headers OpenCL-Headers
|
||||
# Get and build the OpenCL ICD Loader:
|
||||
- git clone --depth=1 https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
||||
- ps: cd OpenCL-ICD-Loader
|
||||
- ps: mkdir build
|
||||
- ps: cd build
|
||||
- cmake -A%PLATFORM% -DENABLE_OPENCL30_PROVISIONAL=1 -DOPENCL_ICD_LOADER_HEADERS_DIR=%TOP%/OpenCL-Headers/ ..
|
||||
- cmake --build . --config %CONFIGURATION%
|
||||
- ps: cd $env:TOP
|
||||
# Get the libclcxx standard library:
|
||||
- git clone --depth=1 https://github.com/KhronosGroup/libclcxx.git libclcxx
|
||||
# Generate the CTS solution file:
|
||||
- cmake -DCL_INCLUDE_DIR=%TOP%/OpenCL-Headers
|
||||
-DCL_LIB_DIR=%TOP%/OpenCL-ICD-Loader/build
|
||||
-DCL_LIBCLCXX_DIR=%TOP%/libclcxx
|
||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin
|
||||
-DOPENCL_LIBRARIES="OpenCL"
|
||||
-H. -Bbuild_win -A%PLATFORM%
|
||||
-DD3D10_IS_SUPPORTED=ON -DD3D11_IS_SUPPORTED=ON -DARCH=%SETARCH%
|
||||
|
||||
build:
|
||||
project: build_win\CLConform.sln
|
||||
parallel: true
|
||||
verbosity: normal
|
||||
29
.github/workflows/presubmit.yml
vendored
29
.github/workflows/presubmit.yml
vendored
@@ -3,30 +3,51 @@ on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build ${{ matrix.os }} ${{ matrix.name }}
|
||||
name: Build ${{ matrix.os }} ${{ matrix.arch }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
JOB_ARCHITECTURE: ${{ matrix.arch }}
|
||||
JOB_ENABLE_GL: ${{ matrix.gl }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
mainmatrix: [true]
|
||||
os: [ubuntu-20.04, macos-latest]
|
||||
os: [ubuntu-20.04, macos-latest, windows-latest]
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
mainmatrix: true
|
||||
gl: 1
|
||||
- os: ubuntu-20.04
|
||||
mainmatrix: false
|
||||
name: Arm
|
||||
arch: arm
|
||||
- os: ubuntu-20.04
|
||||
mainmatrix: false
|
||||
name: AArch64
|
||||
arch: aarch64
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
- name: Setup OpenGL build dependencies
|
||||
if: ${{ matrix.gl }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev
|
||||
- name: Setup MSVC with Ninja
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
with:
|
||||
variant: sccache
|
||||
key: ${{ matrix.os }}-${{ matrix.arch }}
|
||||
- name: Fetch OpenCL Headers
|
||||
shell: bash
|
||||
run: |
|
||||
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
||||
cd OpenCL-Headers
|
||||
ln -s CL OpenCL # For OSX builds
|
||||
cd ..
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: ./presubmit.sh
|
||||
formatcheck:
|
||||
name: Check code format
|
||||
|
||||
31
presubmit.sh
31
presubmit.sh
@@ -15,7 +15,7 @@ touch ${TOOLCHAIN_FILE}
|
||||
BUILD_OPENGL_TEST="OFF"
|
||||
|
||||
# Prepare toolchain if needed
|
||||
if [[ ${JOB_ARCHITECTURE} != "" ]]; then
|
||||
if [[ ${JOB_ARCHITECTURE} != "" && ${RUNNER_OS} != "Windows" ]]; then
|
||||
TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE}
|
||||
TOOLCHAIN_URL=${!TOOLCHAIN_URL_VAR}
|
||||
wget ${TOOLCHAIN_URL}
|
||||
@@ -38,35 +38,36 @@ fi
|
||||
|
||||
if [[ ( ${JOB_ARCHITECTURE} == "" && ${JOB_ENABLE_GL} == "1" ) ]]; then
|
||||
BUILD_OPENGL_TEST="ON"
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev
|
||||
fi
|
||||
# Prepare headers
|
||||
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
||||
cd OpenCL-Headers
|
||||
ln -s CL OpenCL # For OSX builds
|
||||
cd ..
|
||||
|
||||
# Get and build loader
|
||||
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
||||
cd ${TOP}/OpenCL-ICD-Loader
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ ..
|
||||
make
|
||||
cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/
|
||||
cmake --build . -j2 --config Release
|
||||
|
||||
# Build CTS
|
||||
cd ${TOP}
|
||||
ls -l
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \
|
||||
if [[ ${RUNNER_OS} == "Windows" ]]; then
|
||||
CMAKE_OPENCL_LIBRARIES_OPTION="OpenCL"
|
||||
CMAKE_CACHE_OPTIONS=""
|
||||
else
|
||||
CMAKE_OPENCL_LIBRARIES_OPTION="-lOpenCL -lpthread"
|
||||
CMAKE_CACHE_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
||||
fi
|
||||
cmake .. -G Ninja \
|
||||
${CMAKE_CACHE_OPTIONS} \
|
||||
-DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \
|
||||
-DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin \
|
||||
-DOPENCL_LIBRARIES="-lOpenCL -lpthread" \
|
||||
-DOPENCL_LIBRARIES="${CMAKE_OPENCL_LIBRARIES_OPTION}" \
|
||||
-DUSE_CL_EXPERIMENTAL=ON \
|
||||
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST} \
|
||||
..
|
||||
make -j2
|
||||
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST}
|
||||
cmake --build . -j3 --config Release
|
||||
|
||||
|
||||
Reference in New Issue
Block a user