From b883e09a18428eff353f6dd6a811afaaaaa74d57 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Tue, 17 Jul 2018 23:16:42 -0500 Subject: [PATCH] Detect errors returned by the C compiler or the resource compiler and make them visible in Xcode. --- .DS_Store | Bin 6148 -> 6148 bytes make/.DS_Store | Bin 6148 -> 6148 bytes make/orca-cc | 31 +++++++++++++++++++++++++------ make/orca-rez | 27 +++++++++++++++++++++------ 4 files changed, 46 insertions(+), 12 deletions(-) diff --git a/.DS_Store b/.DS_Store index 1b896d3b62987ca40a5ebd3e6ac6073d0b5acaf2..dd42e4a0d1e13800643274dac661d93106e37231 100644 GIT binary patch delta 39 vcmZoMXfc@J&&a+pU^g=(`(_>%4MxtC;^ds9{QMk-%^Iwym^QO>{N)D#=j{vF delta 32 ocmZoMXfc@J&&akhU^g=(+h!gX4aUu$toxWIHi&L!=lIJH0G~bywg3PC diff --git a/make/.DS_Store b/make/.DS_Store index a0d8d64e1752c6a4ed2d931e8ef8b58bbf1abf00..dfd30371f50cc43a2ffce0762ab999d36aa9cf3d 100644 GIT binary patch delta 82 zcmZoMXfc=|#>CJ*u~2NHo}wrd0|Nsi1A_nqgC0XJL$+s5esWUI#6tDS1|lq*uQD02 mZgyaHW7^El!OsEIwAqmPJM(0I5kp3X$u>OFn`1;)FarQ85EKOf delta 284 zcmZoMXfc=|#>B)qu~2NHo}wr#0|Nsi1A_nqLn?zaLq0<;5GHQ?xSX*bBqPM&$WQ=; zImogMc?>B)ei4HnLl#3KLy>1resWSyeiBeU&=`goAeIMW_W%EZBm)CKLo!fpDo|w! zkaS_lWGH6HX7B{r!;sF9imIED52&N&KM;68wF?0)%Li&P2Eur-5xHOoL5$M_$^wl; zH3aO0n?Qp&L1t|1F=gG%&cV+C^z_D$-(3z0A-6#6TLvWY`=avV|D{%}YC~ diff --git a/make/orca-cc b/make/orca-cc index 6e7df1e..280ce05 100755 --- a/make/orca-cc +++ b/make/orca-cc @@ -1,6 +1,7 @@ #!/bin/bash -TMPFILE=/tmp/orca-cc.$$ +STDOUTPUT=/tmp/orca-cc-std.$$ +ERROUTPUT=/tmp/orca-cc-errs.$$ FILENAME="$1" shift @@ -28,14 +29,31 @@ DEPSNAME="${BASENAME}.d" OBJSNAME="${BASENAME}.a" ROOTNAME="${BASENAME}.root" -$ORCA --trace-gsos compile $COMPILEARGS "$FILENAME" keep="${BASENAME}" $CCARGS 2> $TMPFILE +$ORCA --trace-gsos compile $COMPILEARGS "$FILENAME" keep="${BASENAME}" $CCARGS > $STDOUTPUT 2> $ERROUTPUT RESULT=$? -sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2 +awk ' + { + print $0 + } + + $1 ~ /^[0-9][0-9]*$/ { + LINENO=$1 + } + + /^ *\^/ { + sub(/^ *\^/, "", $0) + printf("%s/%s:%d:0:%s\n", PWD, FILE, LINENO, $0) + } +' "PWD=`pwd`" "FILE=$FILENAME" $STDOUTPUT + + +sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $ERROUTPUT >&2 if [ "$RESULT" -ne 0 ] then - rm -f $TMPFILE + rm -f $ERROUTPUT + rm -f $STDOUTPUT rm -f $OBJSNAME rm -f $ROOTNAME exit $RESULT @@ -45,7 +63,7 @@ DEPS=`awk ' /^FastFileLoad/ { sub(/^FastFileLoad\(/, ""); sub(/\)$/, ""); - print}' $TMPFILE | sort -u | while read FILE + print}' $ERROUTPUT | sort -u | while read FILE do if [ -f "$FILE" ] then @@ -53,7 +71,8 @@ DEPS=`awk ' fi done | tr '\012' ' '` -rm -f $TMPFILE +rm -f $ERROUTPUT +rm -f $STDOUTPUT # We add a dependency for both the .o and the .root file. If this is the # main.c file being compiled, we need the dependency on the .root file. diff --git a/make/orca-rez b/make/orca-rez index da6c137..ca06346 100755 --- a/make/orca-rez +++ b/make/orca-rez @@ -1,6 +1,6 @@ #!/bin/bash -TMPFILE=/tmp/orca-rez.$$ +ERROUTPUT=/tmp/orca-rez-err.$$ FILENAME="$1" shift @@ -15,14 +15,29 @@ BASENAME=`echo $FILENAME | sed 's/\.rez$//'` DEPSNAME="${BASENAME}.rez.d" OBJSNAME="${BASENAME}.r" -$ORCA --trace-gsos compile $* keep="${OBJSNAME}" "$FILENAME" 2> $TMPFILE +$ORCA --trace-gsos compile $* keep="${OBJSNAME}" "$FILENAME" 2> $ERROUTPUT RESULT=$? -sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2 +awk ' + /^[A-Za-z][A-Za-z]*\(.*\)$/ { + next + } + + { + print + } + + /^File [^ ]*; Line [0-9][0-9]*;/ { + sub(/;/,"",$4) + LINENO=$4 + sub(/^File [^ ]*; Line [0-9][0-9]*/, "", $0) + printf("%s/%s:%d:0:%s\n", PWD, FILE, LINENO, $0) + } +' "PWD=`pwd`" "FILE=$FILENAME" $ERROUTPUT >&2 if [ "$RESULT" -ne 0 ] then - rm -f $TMPFILE + rm -f $ERROUTPUT rm -f $OBJSNAME exit $RESULT fi @@ -31,7 +46,7 @@ DEPS=`awk ' /^FastFileLoad/ { sub(/^FastFileLoad\(/, ""); sub(/\)$/, ""); - print}' $TMPFILE | sort -u | while read FILE + print}' $ERROUTPUT | sort -u | while read FILE do if [ -f "$FILE" ] then @@ -40,6 +55,6 @@ DEPS=`awk ' done` echo $OBJSNAME: $DEPS > $DEPSNAME -rm -f $TMPFILE +rm -f $ERROUTPUT exit 0