update helpers/location to 'frosted' ui
[carveJwlIkooP6JGAAIwe30JlM.git] / build.sh
index 5c72dd35a66e20f4e36d67ace43c4e949d53fd9c..f5175ea5c3f07c82faa0ea13608506a7bce68558 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -1,254 +1 @@
-#!/bin/bash
-# 
-# Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
-# 
-# Main cross-compiling build script for Skate Rift
-# Supports Linux and Windows building from a Linux Host
-#
-# vg must be "ln -s"'d into this src folder as the only dependency
-#
-# Compiler Presets
-# ==============================================================================
-
-_linux_compiler="gcc -std=c99 -D_REENTRANT"
-_linux_linkgraphics="-lGL -lglfw3 -lX11 -lXxf86vm -lXrandr -lm -pthread -lXi -ldl"
-_linux_asan="-fsanitize=address"
-_linux_linksteam="-lsteam_api"
-_linux_folder="bin/linux"
-_linux_server_folder="bin/linux_server"
-
-_windows_compiler="i686-w64-mingw32-gcc"
-_windows_linkgraphics="-lglfw3dll -lopengl32 -lm -pthread -static -mwindows"
-_windows_asan=""
-_windows_linksteam="vg/dep/steam/steam_api.dll"
-_windows_folder="bin/win32"
-
-_options_debugmode="-O0 -ggdb3 -fno-omit-frame-pointer"
-_options_release="-O3 -DVG_RELEASE"
-
-# Compiler lines
-# ==============================================================================
-
-_warnings="-Wall -Wno-unused-function -Wno-unused-variable"
-_include="-I. -I./vg/dep -I./vg/src"
-_library="-L. -L./vg/dep/glfw -L./vg/dep/steam"
-_epilogue="-Wl,-rpath=./"
-_ext=""
-
-# Compile scripts
-# ==============================================================================
-
-compile_miniaudio(){
-   
-   temp_options=$_options
-   _options="-O3"
-
-   _link="-lm"
-   _folder="."
-   _src="-c vg/dep/dr_soft/miniaudio_impl.c"
-   _dst="vg/dep/dr_soft/miniaudio_$1"
-   _ext=".o"
-   compile_x
-
-   _options=$temp_options
-}
-
-# Again, these are not cross platform currently
-# TODO
-run_game(){
-   cd $_linux_folder
-   ./skaterift
-   cd ./../
-}
-
-run_server(){
-   cd $_linux_server_folder
-   ./skaterift_server
-   cd ./../
-}
-
-delay_run_game(){
-   sleep 2
-   run_game
-}
-
-link_content(){
-   unlink $1/textures
-   unlink $1/models
-   unlink $1/sound
-
-   ln -srf bin/content/textures $1/textures
-   ln -srf bin/content/models $1/models
-   ln -srf bin/content/sound $1/sound
-}
-
-TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S`
-
-vg_command(){
-   case "$1" in
-      release)
-         _linux_options=$_options_release
-         _windows_options=$_options_release
-      ;;
-      debug)
-         _linux_options="$_linux_asan $_options_debugmode"
-         _windows_options="$_windows_asan $_options_debugmode"
-      ;;
-      game)
-         titleit "Creating Linux build"
-         mkdir -p $_linux_folder/cfg
-
-         # Dependencies
-         cp vg/dep/steam/libsteam_api.so $_linux_folder
-         link_content $_linux_folder
-
-         _compiler=$_linux_compiler
-         _options=$_linux_options
-
-         compile_miniaudio linux
-
-         # Game tools
-         _folder=$_linux_folder
-         _ext=""
-         vg_compile_tools
-         
-         # Main build
-         _link="$_linux_linkgraphics $_linux_linksteam"
-         _src="main.c vg/dep/glad/glad.c vg/dep/dr_soft/miniaudio_linux.o"
-         _dst="skaterift"
-         compile_x
-      ;;
-      game_win)
-         titleit "Creating Windows build"
-         mkdir -p $_windows_folder/cfg
-
-         # Dependencies
-         cp vg/dep/steam/steam_api.dll $_windows_folder
-         link_content $_windows_folder
-
-         _compiler=$_windows_compiler
-         _options=$_windows_options
-
-         compile_miniaudio windows
-
-         # Game tools
-         _ext=".exe"
-         _folder=$_windows_folder
-         vg_compile_tools
-         
-         # Main build
-         _link="$_windows_linkgraphics $_windows_linksteam"
-         _src="main.c vg/dep/glad/glad.c vg/dep/dr_soft/miniaudio_windows.o"
-         _dst="skaterift"
-         compile_x
-      ;;
-      server)
-         titleit "Creating Server build"
-         mkdir -p $_linux_server_folder/cfg
-
-         # Dependencies
-         cp vg/dep/steam/steamclient.so bin/linux_server/
-         cp vg/dep/steam/libsteam_api.so bin/linux_server/
-         cp vg/dep/steam/libsdkencryptedappticket.so bin/linux_server/
-
-         _compiler=$_linux_compiler
-         _options=$_linux_options
-         _link="-pthread -lm -lsdkencryptedappticket $_linux_linksteam"
-         _src="server.c"
-         _folder=$_linux_server_folder
-         _dst="skaterift_server"
-         _ext=""
-
-         compile_x
-      ;;
-      testaa)
-         titleit "Dev"
-         mkdir -p bin/aatest/cfg
-
-         _compiler=$_linux_compiler
-         _options=$_linux_options
-         _link="-lm"
-         _src="testaa.c"
-         _folder=bin/aatest
-         _dst="testaa"
-         _ext=""
-
-         compile_x
-      ;;
-      
-      #TODO: These are not cross platform in the build script, a full build
-      #      from source is therefore not possible on windows, only a linux
-      #      host can do that.
-      textures)
-         titleit "Compiling textures"
-         mkdir -p ./bin/content/textures
-         for f in ./textures_src/*.png;
-            do logit "  qoiconv: $f";
-               dest=./bin/content/textures/"$(basename "$f" .png).qoi"
-            ./bin/linux/tools/qoiconv $f $dest
-         done
-      ;;
-      content)
-         logit "Copying content"
-         mkdir -p ./bin/content/models
-         mkdir -p ./bin/content/sound
-
-         cp ./models_src/* ./bin/content/models/
-         cp ./sound_src/* ./bin/content/sound/
-      ;;
-
-      all)
-         run_command tools
-         run_command game
-         run_command server
-      ;;
-      disb)
-         mkdir -p ./dist
-         run_command release
-         run_command tools
-         run_command game
-         run_command game_win
-         run_command content
-         run_command textures
-         run_command server
-      ;;
-
-      distribution)
-         titleit "Compressing distributions"
-         logit "Linux"
-         tar -chzvf dist/skaterift_linux__$TIMESTAMP.tar.gz bin/linux/
-         logit "Server"
-         tar -chzvf dist/skaterift_server__$TIMESTAMP.tar.gz bin/linux_server
-         logit "Windows"
-         tar -chzvf dist/skaterift_win32__$TIMESTAMP.tar.gz bin/win32/
-         zip -r9 dist/skaterift_win32__$TIMESTAMP.zip bin/win32/
-      ;;
-      # Runners
-      # ========================================================================
-      test)
-         run_game
-      ;;
-      testserver)
-         run_server
-      ;;
-      testnet)
-         delay_run_game &
-         run_server
-         wait
-      ;;
-      aa)
-         run_command testaa
-         cd bin/aatest
-         ./testaa
-         cd ./../
-      ;;
-      *)
-         echo "Unrecognised command $1"
-   esac
-}
-
-lsan_file=$(realpath ".lsan_suppress.txt")
-export LSAN_OPTIONS="suppressions=$lsan_file"
-
-vg_command debug
-source vg/vg_build.sh
+clang -fsanitize=address -O0 -I./vg build.c vg/vg_tool.c -o /tmp/tmpsr && /tmp/tmpsr $@