X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Ftools%2Fqcc.sh;h=15cbfc4aab5a222f8a06da9091884057c5f84fe3;hb=88e815808cb794930e7a0d6257cfdb8b3456a9a1;hp=b115c196ecc75f4bb1ea0bcef52c15f962b9169c;hpb=eaeec4056a4d25ad1475119f832de609ccde0fa0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/tools/qcc.sh b/qcsrc/tools/qcc.sh index b115c196e..15cbfc4aa 100755 --- a/qcsrc/tools/qcc.sh +++ b/qcsrc/tools/qcc.sh @@ -12,41 +12,48 @@ QCCFLAGS=${QCCFLAGS} function qpp() { IN=$1 OUT=$2 - >&2 echo + ${CPP} ${@:3} ${IN} + case ${MODE} in + client) DEFS="-DGAMEQC -DCSQC" + ;; + menu) DEFS="-DMENUQC" + ;; + server) DEFS="-DGAMEQC -DSVQC" + ;; + esac + >&2 echo + ${CPP} "${@:3}" ${DEFS} "${IN}" set +e # additional information - ${CPP} ${@:3} \ - -dM 1>${WORKDIR}/${MODE}_macros.txt \ - -H 2>${WORKDIR}/${MODE}_includes.txt \ - ${IN} + ${CPP} "${@:3}" ${DEFS} \ + -dM 1>"${WORKDIR}/${MODE}_macros.txt" \ + -H 2>"${WORKDIR}/${MODE}_includes.txt" \ + "${IN}" # main step - ${CPP} ${@:3} -MMD -MP -MT ${OUT} -Wall -Wundef -Werror ${IN} -o ${WORKDIR}/${MODE}.txt + ${CPP} "${@:3}" ${DEFS} -MMD -MP -MT "${OUT}" -Wall -Wundef -Werror "${IN}" -o "${WORKDIR}/${MODE}.txt" err=$? set -e if [ ${err} -ne 0 ]; then return ${err}; fi - sed 's/^#\(line\)\? \([[:digit:]]\+\) "\(.*\)".*/\n#pragma file(\3)\n#pragma line(\2)/g' ${WORKDIR}/${MODE}.txt + sed 's/^#\(line\)\? \([[:digit:]]\+\) "\(.*\)".*/\n#pragma file(\3)\n#pragma line(\2)/g' "${WORKDIR}/${MODE}.txt" } function qcc() { >&2 echo + $(basename ${QCC}) $@ # FIXME: relative compiler path is too deep - (cd tools && ${QCC} $@) + (cd tools && ${QCC} "$@") } $(return >/dev/null 2>&1) || { MODE=$1 OUT=$2 IN=$3 - - case ${MODE} in - client) PROG=CSQC + case "${OUT}" in + /*) + OUT_ABSOLUTE=${OUT} ;; - menu) PROG=MENUQC - ;; - server) PROG=SVQC + *) + OUT_ABSOLUTE=${PWD}/${OUT} ;; esac - - qpp ${IN} ${OUT} -I. ${QCCIDENT} ${QCCDEFS} -D${PROG} > ${WORKDIR}/${MODE}.qc - qcc ${QCCFLAGS} -o ${OUT} ../${WORKDIR}/${MODE}.qc + set -x + qpp "${IN}" "${OUT}" -I. ${QCCIDENT} ${QCCDEFS} > "${WORKDIR}/${MODE}.qc" + qcc ${QCCFLAGS} -o "${OUT_ABSOLUTE}" "../${WORKDIR}/${MODE}.qc" }