]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/tools/genmod.sh
Work around CMake #12619
[xonotic/xonotic-data.pk3dir.git] / qcsrc / tools / genmod.sh
index 269c631f7800987dd3ab30357de1340082b3f058..b4c4fc3048ceea24877006057e5749bc7e314a7c 100755 (executable)
@@ -2,13 +2,26 @@
 set -eu
 cd "$(dirname "$0")"
 cd ..
+ROOT=$PWD/
 
-MOD=_mod.inc
+MOD=_mod
 
 function genmod() {
-    echo '// generated file; do not modify' > ${MOD}
+    # use context to work around cmake issue #12619
+    CTX="${PWD#$ROOT}/"
+    echo '// generated file; do not modify' > ${MOD}.inc
+    echo '// generated file; do not modify' > ${MOD}.qh
     for f in $(ls | sort -k 1,1 -t .); do
-        if [[ "$f" == *.qc ]]; then echo "#include \"$f\"" >> ${MOD}; fi
+        if [[ "$f" == cl_* ]]; then if [[ -f "${f#cl_}" ]]; then continue; fi; fi
+        if [[ "$f" == sv_* ]]; then if [[ -f "${f#sv_}" ]]; then continue; fi; fi
+        if [[ "$f" == ui_* ]]; then if [[ -f "${f#ui_}" ]]; then continue; fi; fi
+        if [[ "$f" == *.qc ]]; then
+            echo "#include <${CTX}$f>" >> ${MOD}.inc
+            echo "#include <${CTX}${f%.qc}.qh>" >> ${MOD}.qh
+            if [[ -f "cl_$f" ]]; then echo -e "#ifdef CSQC\n    #include <${CTX}cl_$f>\n#endif" >> ${MOD}.inc; fi
+            if [[ -f "sv_$f" ]]; then echo -e "#ifdef SVQC\n    #include <${CTX}sv_$f>\n#endif" >> ${MOD}.inc; fi
+            if [[ -f "ui_$f" ]]; then echo -e "#ifdef MENUQC\n    #include <${CTX}ui_$f>\n#endif" >> ${MOD}.inc; fi
+        fi
     done
     # echo >> ${MOD}
     for f in *; do if [ -d "$f" ]; then