mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 09:18:09 +00:00
63 lines
1.2 KiB
Bash
Executable File
63 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
cd "$(dirname "$0")"
|
|
|
|
target_values=(raddbg raddbg_non_graphical radlink radbin torture)
|
|
cc_values=(clang gcc)
|
|
mode_values=(debug release)
|
|
run_torture=1
|
|
torture_args=()
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--)
|
|
shift
|
|
torture_args=("$@")
|
|
break
|
|
;;
|
|
clang|clang-*)
|
|
cc_values=("$1")
|
|
shift
|
|
;;
|
|
gcc|gcc-*)
|
|
cc_values=("$1")
|
|
shift
|
|
;;
|
|
debug|release)
|
|
mode_values=("$1")
|
|
shift
|
|
;;
|
|
no_torture)
|
|
run_torture=0
|
|
shift
|
|
;;
|
|
*)
|
|
echo "usage: $0 [clang|clang-*|gcc|gcc-*] [debug|release] [no_torture] [-- <torture args>]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
for m in "${mode_values[@]}"; do
|
|
for c in "${cc_values[@]}"; do
|
|
build_cc=clang
|
|
if [[ "$c" == gcc* ]]; then build_cc=gcc; fi
|
|
|
|
# nuke artifacts from last run
|
|
rm -rf build/torture_artifacts
|
|
rm -f build/metagen
|
|
for t in "${target_values[@]}"; do
|
|
rm -f "build/$t"
|
|
done
|
|
|
|
# build targets
|
|
CC="$c" ./build.sh meta "$build_cc" "$m" "${target_values[@]}"
|
|
|
|
# run torture from build folder
|
|
if [[ "$run_torture" == "1" ]]; then
|
|
(cd build && ./torture "${torture_args[@]}")
|
|
fi
|
|
|
|
done
|
|
done
|