]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/tools/compilationunits.sh
server: pass compilation units test
[xonotic/xonotic-data.pk3dir.git] / qcsrc / tools / compilationunits.sh
index 98ea3c6f366dc0eb6be525ec253061321e1f976f..658fe8682581933e7629259049157738aac2559e 100755 (executable)
@@ -1,31 +1,46 @@
 #!/bin/bash
 set -eu
 cd "$(dirname "$0")"
-cd ..
 
-declare -a NOWARN=(
-    -Wno-field-redeclared
-    -Wno-unused-variable
-    -Wno-implicit-function-pointer
+WORKDIR=../.tmp
+
+CPP="cc -xc -E"
+: ${QCC:=$PWD/../../../../gmqcc/gmqcc}
+
+declare -a QCCDEFS=(
+    -DNDEBUG=1
+    -DWATERMARK="\"$(git describe --tags --dirty='*')\""
+    -DDEBUGPATHING=0
 )
-declare QCC=../../../gmqcc/gmqcc
+QCCDEFS="${QCCDEFS[@]}"
 
-declare -a QCC_FLAGS=(
+declare -a QCCFLAGS=(
     -std=gmqcc
     -Wall -Werror
-    -fftepp -fftepp-predefs -Wcpp
     -futf8
     -freturn-assignments
     -frelaxed-switch
     -Ooverlap-locals
 )
+declare -a NOWARN=(
+    -Wno-field-redeclared
+    -Wno-unused-variable
+    -Wno-implicit-function-pointer
+    -Wno-missing-return-values
+)
+QCCFLAGS="${QCCFLAGS[@]} ${NOWARN[@]}"
+
+. qcc.sh
+cd ..
 
 function check() {
     declare -l base="${1}"
-    declare -la predefs=("-D${2}" "lib/_all.inc" "${base}/_all.qh")
-    find "$base" -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
-        echo "$file"
-        ${QCC} "${QCC_FLAGS[@]}" "${NOWARN[@]}" "${predefs[@]}" "$file" >/dev/null
+    MODE=${2}
+    find ${base} -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
+        qpp ${file} test.dat \
+            -include lib/_all.inc -include ${base}/_all.qh \
+            -I. ${QCCIDENT} ${QCCDEFS} -D${MODE} > ${WORKDIR}/${MODE}.qc
+        qcc ${QCCFLAGS} -o ../${WORKDIR}/test.dat ../${WORKDIR}/${MODE}.qc >/dev/null
     done
 }