set -eu
cd ${0%/*}
-# if these files exist from previous compilation, `./all compile` will stop
+# This script attempts to build the codebase in every possible header configuration,
+# to check that all files #include what they need, so that we can eventually move away
+# from a unity build and into incremental compilation.
+
+# If these files exist from previous compilation, `./all compile` will stop
# detecting changes after running this script so delete them to trigger
-# a recompile next time
+# a recompile next time.
if [ -f ../../csprogs.dat ]; then
rm ../../csprogs.dat
fi
-DNDEBUG=1
-DXONOTIC=1
-DWATERMARK="\"$(git describe --tags --dirty='~')\""
+ -DENABLE_EFFECTINFO=0
+ -DENABLE_DEBUGDRAW=0
+ -DENABLE_DEBUGTRACE=0
)
QCCDEFS="${QCCDEFS[@]}"
declare -l prog="${1}"
declare -l file="${2}"
MODE=${prog}
+ includes="-include lib/_all.inc"
+ [ -f ${prog}/_all.qh ] && includes="${includes} -include ${prog}/_all.qh"
qpp ${file} test.dat \
- -include lib/_all.inc -include ${prog}/_all.qh \
+ ${includes} \
-I. ${QCCIDENT} ${QCCDEFS} > ${WORKDIR}/${prog}.qc
qcc ${QCCFLAGS} -o ../${WORKDIR}/test.dat ../${WORKDIR}/${prog}.qc >/dev/null
}
done
}
-check client
-check server
-check menu
+if [ ${#@} -eq 0 ]; then
+ check client
+ check server
+ check menu
+else
+ for var in ${@}; do
+ check ${var}
+ done
+fi