zephyr/tests/bsim/compile.source
Aleksandr Khromykh 2cdacb3fa8 tests: Bluetooth: Mesh: add cfg mesh with mbedtls PSA to bsim CI
Commit adds configuration for mesh with mbedtls PSA
to CI BabbleSim tests as well as emulation of
the Internal Trustable Storage(ITS) based on Zephyr's
settings to run in parallel environment.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-08-17 15:14:19 +02:00

71 lines
2.2 KiB
Plaintext

# Copyright 2018 Oticon A/S
# SPDX-License-Identifier: Apache-2.0
source ${ZEPHYR_BASE}/tests/bsim/sh_common.source
function print_error_info(){
echo -e "\033[0;31mFailure building ${app} ${conf_file} for ${BOARD}\033[0m\n\
You can rebuild it with\n\
${cmake_cmd[@]} && ninja ${ninja_args}"
}
function _compile(){
: "${app:?app must be defined}"
local app_root="${app_root:-${ZEPHYR_BASE}}"
local conf_file="${conf_file:-prj.conf}"
local conf_overlay="${conf_overlay:-""}"
local cmake_args="${cmake_args:-"-DCONFIG_COVERAGE=y \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"}"
local ninja_args="${ninja_args:-""}"
local cc_flags="${cc_flags:-"-Werror"}"
if [ "${conf_overlay}" ]; then
overlays="${conf_overlay//;/_}"
local exe_basename="${exe_name:-bs_${BOARD}_${app}_${conf_file}_${overlays}}"
else
local exe_basename="${exe_name:-bs_${BOARD}_${app}_${conf_file}}"
fi
local exe_basename=$(echo ${exe_basename} | tr \"/\\.\; _ )
local exe_name=${BSIM_OUT_PATH}/bin/$exe_basename
local map_file_name=${exe_name}.Tsymbols
local this_dir=${WORK_DIR}/${app}/${exe_basename}
local modules_arg="${ZEPHYR_MODULES:+-DZEPHYR_MODULES=${ZEPHYR_MODULES}}"
echo "Building $exe_name"
local ret=0
local cmake_cmd=(cmake -GNinja -DBOARD_ROOT=${BOARD_ROOT} -DBOARD=${BOARD})
if [ $conf_file != "prj.conf" ]; then
local cmake_cmd+=( -DCONF_FILE=${conf_file})
fi
local cmake_cmd+=( -DOVERLAY_CONFIG="${conf_overlay}" \
${modules_arg} \
${cmake_args} -DCMAKE_C_FLAGS=\"${cc_flags}\" ${app_root}/${app})
# Set INCR_BUILD when calling to only do an incremental build
if [ ! -v INCR_BUILD ] || [ ! -d "${this_dir}" ]; then
[ -d "${this_dir}" ] && rm ${this_dir} -rf
mkdir -p ${this_dir} && cd ${this_dir}
${cmake_cmd[@]} &> cmake.out || \
{ ret="$?"; print_error_info ; cat cmake.out && return $ret; }
else
cd ${this_dir}
fi
ninja ${ninja_args} &> ninja.out || \
{ ret="$?"; print_error_info ; cat ninja.out && return $ret; }
cp ${this_dir}/zephyr/zephyr.exe ${exe_name}
nm ${exe_name} | grep -v " [U|w] " | sort | cut -d" " -f1,3 > ${map_file_name}
sed -i "1i $(wc -l ${map_file_name} | cut -d" " -f1)" ${map_file_name}
}
function compile(){
run_in_background _compile
}