]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/all/xonotic.subr
Merge branch 'cmake-q3map2' into 'master'
[xonotic/xonotic.git] / misc / tools / all / xonotic.subr
index 317946aa7226013e2df2bdddc725442be486ed29..0938974ca9b46bcfa8fd36442cf7de74267d49b7 100644 (file)
@@ -8,9 +8,10 @@ case "$cmd" in
                        msg "Usage: ./all compile-map mapname1 mapname2 mapname3"
                        msg "For example: ./all compile-map dance xoylent"
                fi
-               if ! [ -f "netradiant/install/q3map2" ] ; then
-                       msg "q3map2 needed! Building netradiant..."
-                       make -C netradiant BUILD=native install/q3map2
+               if ! [ -f "netradiant/build/q3map2" ] ; then
+                       msg "q3map2 needed! Building q3map2..."
+                       cmake -H'netradiant' -B'netradiant/build' -G'Unix Makefiles' -D'CMAKE_BUILD_TYPE=Release' -DBUILD_RADIANT=OFF -DDOWNLOAD_GAMEPACKS=OFF
+                       cmake --build 'netradiant/build' -- q3map2
                fi
                for mapfile in "$@"; do
                        mapfile="data/xonotic-maps.pk3dir/maps/$mapfile.map"
@@ -26,8 +27,8 @@ case "$cmd" in
                cleandp=false
                cleanqcc=false
                cleanqc=false
-               compiled0=false
-               debug=debug
+               compiled0=
+               debug=release  # when changing this default, change the description in the zsh autocompletion script
                if [ -z "$CC" ]; then
                        export CC="gcc"
                fi
@@ -38,6 +39,10 @@ case "$cmd" in
                                        compiled0=true
                                        shift
                                        ;;
+                               -1)
+                                       compiled0=false
+                                       shift
+                                       ;;
                                -c)
                                        cleand0=true
                                        cleandp=true
@@ -49,8 +54,11 @@ case "$cmd" in
                                        cleanqc=true
                                        shift
                                        ;;
-                               -r|-p)
+                               -d|-p|-r)
                                        case "$1" in
+                                               -d)
+                                                       debug=debug
+                                                       ;;
                                                -p)
                                                        debug=profile
                                                        ;;
@@ -82,6 +90,8 @@ case "$cmd" in
                if [ x"`uname`" = x"Darwin" ]; then
                        TARGETS="sv-$debug sdl-$debug"
                        export CC="$CC -fno-reorder-blocks"
+               elif [ -n "$WE_HATE_OUR_USERS" ]; then
+                       TARGETS="sv-$debug sdl-$debug"
                else
                        TARGETS="sv-$debug cl-$debug sdl-$debug"
                fi
@@ -100,7 +110,7 @@ case "$cmd" in
                                        sdl)
                                                TARGETS="$TARGETS sdl-$debug"
                                                ;;
-                                       glx|wgl)
+                                       glx)
                                                TARGETS="$TARGETS cl-$debug"
                                                ;;
                                        dedicated)
@@ -135,7 +145,14 @@ case "$cmd" in
 
                if [ -n "$WE_HATE_OUR_USERS" ]; then
                        # win32: use SDL2
-                       MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win32/sdl/bin/sdl2-config"
+                       case `uname -m` in
+                               x86_64)
+                                       MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win64/sdl/bin/sdl2-config"
+                                       ;;
+                               *)
+                                       MAKEFLAGS="$MAKEFLAGS SDL_CONFIG=$d0/misc/builddeps/win32/sdl/bin/sdl2-config"
+                                       ;;
+                       esac
 
                        # win32: don't rely on jpeg includes
                        MAKEFLAGS="$MAKEFLAGS LIB_JPEG= CFLAGS_LIBJPEG="
@@ -155,7 +172,7 @@ case "$cmd" in
                                MAKEFLAGS="$MAKEFLAGS CFLAGS_SSE= CFLAGS_SSE2="
                                ;;
                esac
-               
+
                if ! verbose $CC misc/tools/conftest.c -o conftest; then
                        msg ""
                        msg "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
@@ -183,28 +200,32 @@ case "$cmd" in
                rm -f conftest
 
                verbose cd "$d0/d0_blind_id"
-               if ! $compiled0; then
+               if [ -z "$compiled0" ]; then
+                       # In doubt, compile.
+                       compiled0=true
+
                        # compilation of crypto library failed
                        # use binaries then, if we can...
                        mkdir -p .libs
                        if [ -n "$WE_HATE_OUR_USERS" ]; then
-                               verbose cp "$d0/misc/buildfiles/win32/libd0_blind_id"-* .libs/
-                               verbose cp "$d0/misc/buildfiles/win32/libd0_rijndael"-* .libs/
-                               verbose cp "$d0/misc/buildfiles/win32/libgmp"-* .libs/
+                               case `uname -m` in
+                                       x86_64)
+                                               verbose cp "$d0/misc/buildfiles/win64/libd0_blind_id"-* .libs/
+                                               verbose cp "$d0/misc/buildfiles/win64/libd0_rijndael"-* .libs/
+                                               verbose cp "$d0/misc/buildfiles/win64/libgmp"-* .libs/
+                                               compiled0=false
+                                               ;;
+                                       *)
+                                               verbose cp "$d0/misc/buildfiles/win32/libd0_blind_id"-* .libs/
+                                               verbose cp "$d0/misc/buildfiles/win32/libd0_rijndael"-* .libs/
+                                               verbose cp "$d0/misc/buildfiles/win32/libgmp"-* .libs/
+                                               compiled0=false
+                                               ;;
+                               esac
                        else
                                case "`uname`" in
                                        Linux)
                                                case `uname -m` in
-                                                       x86_64)
-                                                               # No cp commands, we want to use static linking instead.
-                                                               export CC="$CC -I../../../../misc/builddeps/linux64/d0_blind_id/include"
-                                                               export CC="$CC -L../../../../misc/builddeps/linux64/d0_blind_id/lib"
-                                                               export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux64/d0_blind_id/lib"
-                                                               export CC="$CC -I../../../../misc/builddeps/linux64/gmp/include"
-                                                               export CC="$CC -L../../../../misc/builddeps/linux64/gmp/lib"
-                                                               export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux64/gmp/lib"
-                                                               MAKEFLAGS="$MAKEFLAGS DP_LINK_CRYPTO=shared DP_LINK_CRYPTO_RIJNDAEL=shared LIB_CRYPTO=../../../../misc/builddeps/linux64/d0_blind_id/lib/libd0_blind_id.a LIB_CRYPTO+=../../../../misc/builddeps/linux64/gmp/lib/libgmp.a LIB_CRYPTO_RIJNDAEL=../../../../misc/builddeps/linux64/d0_blind_id/lib/libd0_rijndael.a"
-                                                               ;;
                                                        *86)
                                                                # No cp commands, we want to use static linking instead.
                                                                export CC="$CC -I../../../../misc/builddeps/linux32/d0_blind_id/include"
@@ -214,18 +235,20 @@ case "$cmd" in
                                                                export CC="$CC -L../../../../misc/builddeps/linux32/gmp/lib"
                                                                export CC="$CC -Wl,-rpath,../../../../misc/builddeps/linux32/gmp/lib"
                                                                MAKEFLAGS="$MAKEFLAGS DP_LINK_CRYPTO=shared DP_LINK_CRYPTO_RIJNDAEL=shared LIB_CRYPTO=../../../../misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.a LIB_CRYPTO+=../../../../misc/builddeps/linux32/gmp/lib/libgmp.a LIB_CRYPTO_RIJNDAEL=../../../../misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.a"
+                                                               compiled0=false
                                                                ;;
                                                        *)
-                                                               compiled0=true
+                                                               msg "Always need to compile libd0_blind_id on Linux `uname -m`."
                                                                ;;
                                                esac
                                                ;;
                                        Darwin)
                                                verbose cp "$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS/libd0_blind_id".* .libs/
                                                verbose cp "$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS/libd0_rijndael".* .libs/
+                                               compiled0=false
                                                ;;
                                        *)
-                                               compiled0=true
+                                               msg "Always need to compile libd0_blind_id on `uname`."
                                                ;;
                                esac
                        fi
@@ -283,32 +306,38 @@ case "$cmd" in
                ;;
        run)
                if [ -n "$WE_HATE_OUR_USERS" ]; then
-                       client=
-                       export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH"
+                       case `uname -m` in
+                               x86_64)
+                                       export PATH="$d0/misc/buildfiles/win64:$d0/d0_blind_id/.libs:$PATH"
+                                       ;;
+                               *)
+                                       export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH"
+                                       ;;
+                       esac
                elif [ x"`uname`" = x"Darwin" ]; then
                        export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS:$d0/d0_blind_id/.libs"
                        export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks"
-                       client=-sdl
                else
-                       export LD_LIBRARY_PATH="$d0/d0_blind_id/.libs"
-                       client=-sdl
+                       export LD_LIBRARY_PATH="$d0/d0_blind_id/.libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
                fi
+
+               client=-sdl
+               USE_RLWRAP=no
                case "$1" in
                        dedicated)
                                client=-$1
+                               USE_RLWRAP=
                                shift
                                ;;
-                       sdl|glx)
-                               USE_RLWRAP=no
-                               client=-$1
+                       sdl)
                                shift
                                ;;
-                       wgl)
-                               USE_RLWRAP=no
-                               client=
+                       glx)
+                               client=-$1
                                shift
                                ;;
                esac
+
                if ! [ -x "darkplaces/darkplaces$client" ]; then
                        if [ -x "darkplaces/darkplaces$client.exe" ]; then
                                client=$client.exe
@@ -359,9 +388,9 @@ case "$cmd" in
                fi
                ;;
        help)
-               $ECHO "  $SELF compile [-c] [-qc] [-r|-p] [-0] [sdl|glx|wgl|dedicated]"
+               $ECHO "  $SELF compile [-c] [-qc] [-d|-p|-r] [-0] [-1] [sdl|glx|dedicated]"
                $ECHO "  $SELF update-maps"
-               $ECHO "  $SELF run [sdl|glx|wgl|dedicated] options..."
+               $ECHO "  $SELF run [sdl|glx|dedicated] options..."
                $ECHO "  $SELF compile-map mapname1 mapname2... (e.g. \"./all compile-map dance drain fuse\")"
                handled=false
                ;;