You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.5 KiB
108 lines
3.5 KiB
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
export TOP=$(pwd)
|
|
|
|
TOOLCHAIN_URL_arm="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz"
|
|
TOOLCHAIN_URL_aarch64="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"
|
|
|
|
TOOLCHAIN_PREFIX_arm=arm-linux-gnueabihf
|
|
TOOLCHAIN_PREFIX_aarch64=aarch64-linux-gnu
|
|
|
|
TOOLCHAIN_FILE=${TOP}/toolchain.cmake
|
|
touch ${TOOLCHAIN_FILE}
|
|
BUILD_OPENGL_TEST="OFF"
|
|
|
|
cmake --version
|
|
echo
|
|
|
|
# Prepare toolchain if needed
|
|
if [[ ${JOB_ARCHITECTURE} != "" && ${RUNNER_OS} != "Windows" ]]; then
|
|
TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE}
|
|
TOOLCHAIN_URL=${!TOOLCHAIN_URL_VAR}
|
|
wget ${TOOLCHAIN_URL}
|
|
TOOLCHAIN_ARCHIVE=${TOOLCHAIN_URL##*/}
|
|
tar xf ${TOOLCHAIN_ARCHIVE}
|
|
TOOLCHAIN_DIR=${TOP}/${TOOLCHAIN_ARCHIVE%.tar.xz}
|
|
export PATH=${TOOLCHAIN_DIR}/bin:${PATH}
|
|
|
|
TOOLCHAIN_PREFIX_VAR=TOOLCHAIN_PREFIX_${JOB_ARCHITECTURE}
|
|
TOOLCHAIN_PREFIX=${!TOOLCHAIN_PREFIX_VAR}
|
|
|
|
echo "SET(CMAKE_SYSTEM_NAME Linux)" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_SYSTEM_PROCESSOR ${JOB_ARCHITECTURE})" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> ${TOOLCHAIN_FILE}
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> ${TOOLCHAIN_FILE}
|
|
fi
|
|
|
|
if [[ ( ${JOB_ARCHITECTURE} == "" && ${JOB_ENABLE_GL} == "1" ) ]]; then
|
|
BUILD_OPENGL_TEST="ON"
|
|
fi
|
|
|
|
if [[ ${JOB_ENABLE_DEBUG} == 1 ]]; then
|
|
BUILD_CONFIG="Debug"
|
|
else
|
|
BUILD_CONFIG="Release"
|
|
fi
|
|
|
|
#Vulkan Headers
|
|
git clone https://github.com/KhronosGroup/Vulkan-Headers.git
|
|
|
|
# Get and build loader
|
|
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
|
cd ${TOP}/OpenCL-ICD-Loader
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
|
-DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/
|
|
cmake --build . -j2
|
|
|
|
#Vulkan Loader
|
|
cd ${TOP}
|
|
git clone https://github.com/KhronosGroup/Vulkan-Loader.git
|
|
cd Vulkan-Loader
|
|
mkdir build
|
|
cd build
|
|
python3 ../scripts/update_deps.py
|
|
cmake .. -G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
|
-DBUILD_WSI_XLIB_SUPPORT=OFF \
|
|
-DBUILD_WSI_XCB_SUPPORT=OFF \
|
|
-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
|
|
-DUSE_GAS=OFF \
|
|
-C helper.cmake ..
|
|
cmake --build . -j2
|
|
|
|
# Build CTS
|
|
cd ${TOP}
|
|
ls -l
|
|
mkdir build
|
|
cd build
|
|
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 \
|
|
-DCMAKE_BUILD_TYPE="${BUILD_CONFIG}" \
|
|
${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="${CMAKE_OPENCL_LIBRARIES_OPTION}" \
|
|
-DUSE_CL_EXPERIMENTAL=ON \
|
|
-DGL_IS_SUPPORTED=${BUILD_OPENGL_TEST} \
|
|
-DVULKAN_INCLUDE_DIR=${TOP}/Vulkan-Headers/include/ \
|
|
-DVULKAN_LIB_DIR=${TOP}/Vulkan-Loader/build/loader/
|
|
cmake --build . -j3
|