1#!/usr/bin/env bash 2set -e 3set -u 4 5# this is to support running Renode from an external directory and via a symlink 6ROOT_PATH="$(cd $(dirname $(readlink -f $0 2>/dev/null || echo $0)); echo $PWD)" 7 8. "$ROOT_PATH/tools/common.sh" 9 10OUTPUT_PATH="$ROOT_PATH/output/bin" 11 12TARGET="Release" 13QUIET=false 14TRACE=false 15NET=false 16 17PARAMS=() 18while [[ "$#" -gt 0 ]] 19do 20 case $1 in 21 -d|--debug) 22 TARGET="Debug" 23 if $ON_LINUX 24 then 25 LAUNCHER="$LAUNCHER --debug" 26 fi 27 ;; 28 -q|--quiet) 29 QUIET=true 30 ;; 31 --net) 32 echo "'--net' flag is required only for building and is not used by launcher" 33 ;; 34 --trace) 35 TRACE=true 36 TRACE_FORMAT=${2:-} 37 case $TRACE_FORMAT in 38 Chromium|chromium) 39 TRACE_FORMAT="Chromium" 40 shift 41 ;; 42 Speedscope|speedscope) 43 TRACE_FORMAT="Speedscope" 44 shift 45 ;; 46 Nettrace|nettrace) 47 TRACE_FORMAT="Nettrace" 48 shift 49 ;; 50 *) 51 # No format specified - use default, don't shift argument list 52 TRACE_FORMAT="Nettrace" 53 ;; 54 esac 55 ;; 56 *) 57 PARAMS+=("$1") 58 ;; 59 esac 60 shift 61done 62 63BUILD_TYPE_FILE="$OUTPUT_PATH/$TARGET/build_type" 64 65if [[ -f "$BUILD_TYPE_FILE" ]] 66then 67 if [[ "$(cat "$BUILD_TYPE_FILE")" == "dotnet" ]] 68 then 69 NET=true 70 fi 71fi 72 73if ! $NET && $TRACE 74then 75 echo "Tracing is available only on the dotnet target" 76 exit 1 77fi 78 79if ! $ON_WINDOWS && ! $NET 80then 81 verify_mono_version 82fi 83 84if ${REMOTE:-false} && ! $NET 85then 86 LAUNCHER="$LAUNCHER --debugger-agent=transport=dt_socket,address=0.0.0.0:${REMOTE_PORT:=9876},server=y" 87 echo "Waiting for a debugger at port $REMOTE_PORT..." 88fi 89 90if ${QUIET:-false} 91then 92 exec 2>/dev/null 93fi 94 95if $NET 96then 97 export DOTNET_CLI_TELEMETRY_OPTOUT=1 98 if ! $TRACE 99 then 100 TRACE_COMMAND="" 101 else 102 TRACE_COMMAND="dotnet-trace collect --format ${TRACE_FORMAT} --" 103 fi 104 105 ${TRACE_COMMAND} dotnet "${OUTPUT_PATH}/${TARGET}/Renode.dll" "${PARAMS[@]:-}" 106else 107 if $ON_WINDOWS 108 then 109 "${OUTPUT_PATH}/${TARGET}/Renode.exe" "${PARAMS[@]:-}" 110 else 111 $LAUNCHER "${OUTPUT_PATH}/${TARGET}/Renode.exe" "${PARAMS[@]:-}" 112 fi 113fi 114