Files
qc2-reader/vendor/libltkc/examples/build.sh
2026-03-09 09:01:17 -04:00

50 lines
1.7 KiB
Bash
Executable File

#!/bin/bash -eu
#
# Example build script for use with Impinj ETK
#
# The target libraries are contained inside the sysroot at
# "$ETK_ROOT/arm-buildroot-linux-gnueabihf/sysroot/lib". The host libraries
# are contained in "$ETK_ROOT/lib".
#
# For a host build, CMake must be configured to correctly search for host
# headers and libraries in the correct location inside the ETK.
#
# For a target build, CMake must be configured to use the correct cross
# compiler and informed about the sysroot location in the ETK.
#
# The script allows overriding some variables when building, e.g.:
#
# [user@machine]$ BUILD_TYPE=Release VERBOSE=ON ./build.sh
#
SCRIPT_PATH=$(dirname $(realpath $0))
OUTPUT_PATH=${SCRIPT_PATH}/output
# defaults when building with ETK; override on command line for custom setup
ETK_PATH=${ETK_PATH:-$(realpath ${SCRIPT_PATH}/../../arm-toolchain)}
BUILD_TYPE=${BUILD_TYPE:-Debug}
VERBOSE=${VERBOSE:-OFF}
# host build; override on command line for custom setup
INC=${INC:-${ETK_PATH}/include}
LIB=${LIB:-${ETK_PATH}/lib}
cmake ${SCRIPT_PATH} -B"${OUTPUT_PATH}/host" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${VERBOSE} \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DCMAKE_C_FLAGS="-isystem ${INC}" \
-DCMAKE_LIBRARY_PATH=${LIB}
cmake --build "${OUTPUT_PATH}/host"
# target build
CC=$(find ${ETK_PATH}/bin -name arm-*-linux-*-gcc)
CC=${CC%gcc}
SYSROOT_PATH="$(${CC}gcc -print-sysroot)"
cmake ${SCRIPT_PATH} -B"${OUTPUT_PATH}/target" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${VERBOSE} \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DCMAKE_C_COMPILER=${CC}gcc \
-DCMAKE_CXX_COMPILER=${CC}g++ \
-DCMAKE_FIND_ROOT_PATH=${SYSROOT_PATH}
cmake --build "${OUTPUT_PATH}/target"