switch from png to qoi textures
[fishladder.git] / build.sh
index 2395e173115e6cabd491febc5ca2113f9c954ff7..a6a260a8ef77d16db94383b991df196187f0b1d9 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -15,11 +15,13 @@ fi
 
 run_after=false
 do_build=true
+compile_tools=false
+compile_models=false
 
 while (( "$#" )); do
        case $1 in
                -r|--release) 
-                       flags="-O3"
+                       flags="-O3 -Wno-unused-function -DNO_STEAM"
                        echo "Release mode" 
                ;;
                -p|--play)
@@ -30,6 +32,14 @@ while (( "$#" )); do
                        do_build=false
                        echo "no-build"
                ;;
+               -t|--tools)
+                       compile_tools=true
+                       echo "build-tools"
+               ;;
+               -m|--models)
+                       compile_models=true
+                       echo "build-models"
+               ;;
                *) 
                        echo "Unkown param: $1" 
                        exit 1
@@ -38,14 +48,30 @@ while (( "$#" )); do
        shift
 done
 
-echo "Building tools"
-mkdir tools -p
-gcc -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs -Wl,-rpath=./ $defines
+# Tools
+if [ "$compile_tools" = true ]; then
+       echo "Building tools"
+       mkdir tools -p
+       gcc -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs -Wl,-rpath=./ $defines
+       gcc -Wall -Wstrict-aliasing=3 $lib $flags fontcomp.c gl/glad.c -o tools/fontcomp $libs -Wl,-rpath=./ $defines
+       gcc $lib qoiconv.c -std=c99 -O3 -o tools/qoiconv
+fi
+
+# Resources
+if [ "$compile_models" = true ]; then
+       echo "Recompiling models"
+       for f in models/*.obj; 
+               do echo "Compiling $f..";
+               ./tools/mdlcomp $f $f.h
+       done
+fi
 
-echo "Recompiling models"
-for f in models/*.obj; 
-       do echo "Compiling $f..";
-       ./tools/mdlcomp $f $f.h
+# Convert all png to qoi
+echo "Compiling textures"
+mkdir _temp_textures
+for f in textures/*.png;
+       do echo "-> qoi: $f";
+       ./tools/qoiconv $f ./_temp_textures/"$(basename "$f" .png).qoi"
 done
 
 # Main build
@@ -64,10 +90,15 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        # Directories to initialize
        mkdir build.linux/cfg -p
        mkdir build.linux/textures -p
+       mkdir build.linux/sound -p
+       mkdir build.linux/maps -p
 
        cp $target ./build.linux/$target
        cp ./steam/libsteam_api.so ./build.linux/libsteam_api.so
-       cp -r ./textures/ ./build.linux/
+       rm -r ./build.linux/textures
+       mv ./_temp_textures/ ./build.linux/textures
+       cp -r ./sound/ ./build.linux/
+       cp -r ./maps/ ./build.linux/
 
        if [ "$run_after" = true ]; then
                echo "Playing"
@@ -79,9 +110,14 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
 else
        mkdir build.win32/cfg -p
        mkdir build.win32/textures -p
+       mkdir build.win32/sound -p
+       mkdir build.win32/maps -p
        
        cp $target ./build.win32/$target
-       cp -r ./textures/ ./build.win32/
+       rm -r ./build.win32/textures
+       mv ./_temp_textures/ ./build.win32/textures
+       cp -r ./sound/ ./build.win32/
+       cp -r ./maps/ ./build.win32/
        cp ./lib/glfw3.dll ./build.win32/glfw3.dll
        
        if [ "$run_after" = true ]; then