mirror of
https://github.com/google/cpu_features.git
synced 2025-07-02 05:33:17 +02:00
Test travis cross compilation
This commit is contained in:
47
scripts/run_integration.sh
Executable file
47
scripts/run_integration.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
export BUILD_DIR=cmake_build
|
||||
export CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON -H. -B${BUILD_DIR}"
|
||||
|
||||
SCRIPT_FOLDER=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
||||
PROJECT_FOLDER=${SCRIPT_FOLDER}/..
|
||||
cd ${PROJECT_FOLDER}
|
||||
|
||||
if [[ -n "${CROSS_COMPILE}" ]]; then
|
||||
# Cross compilation
|
||||
: "${TOOLCHAIN_NAME:?Need to set TOOLCHAIN_NAME non-empty}"
|
||||
: "${TARGET:?Need to set TARGET non-empty}"
|
||||
: "${QEMU_ARCH:?Need to set QEMU_ARCH non-empty}"
|
||||
${SCRIPT_FOLDER}/setup_qemu.sh
|
||||
${SCRIPT_FOLDER}/setup_toolchain.sh
|
||||
export TOOLCHAIN=${HOME}/${TOOLCHAIN_NAME}
|
||||
export PATH=${TOOLCHAIN}/bin:${HOME}/qemu/bin:${PATH}
|
||||
export CMAKE_TOOLCHAIN_FILE=cmake/${TARGET}.cmake
|
||||
if [[ ! -f ${CMAKE_TOOLCHAIN_FILE} ]]; then
|
||||
echo "Missing cmake toolchain file : $CMAKE_TOOLCHAIN_FILE"
|
||||
exit 1
|
||||
fi
|
||||
# Generate makefile
|
||||
cmake ${CMAKE_ARGS} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
# Compile
|
||||
cmake --build ${BUILD_DIR} --target all
|
||||
# Run tests
|
||||
export QEMU=qemu-${QEMU_ARCH}
|
||||
export QEMU_LD_PREFIX=${TOOLCHAIN}/${TARGET}/libc
|
||||
export LD_LIBRARY_PATH=${TOOLCHAIN}/${TARGET}/libc
|
||||
for test_binary in ${BUILD_DIR}/test/*_test; do
|
||||
${QEMU} ${test_binary}
|
||||
done
|
||||
# Run demo program
|
||||
${QEMU} ${BUILD_DIR}/list_cpu_features
|
||||
else
|
||||
# Native compilation
|
||||
# Generate makefile
|
||||
cmake ${CMAKE_ARGS}
|
||||
# Compile
|
||||
cmake --build ${BUILD_DIR} --target all
|
||||
# Run tests
|
||||
CTEST_OUTPUT_ON_FAILURE=1 cmake --build ${BUILD_DIR} --target test
|
||||
# Run demo program
|
||||
${BUILD_DIR}/list_cpu_features
|
||||
fi
|
Reference in New Issue
Block a user