X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=build.sh;h=2a31674e6ef11eebcc4fcfe9c7dce4b209b8d52c;hb=a88dd793f4d80d9e8a9615b5fe5f6887f9b85069;hp=a6a260a8ef77d16db94383b991df196187f0b1d9;hpb=72e9a469a490e537f2e12464c1b075eb8991a868;p=fishladder.git diff --git a/build.sh b/build.sh index a6a260a..2a31674 100755 --- a/build.sh +++ b/build.sh @@ -3,31 +3,42 @@ src="fishladder.c" target="fishladder" lib="-I. -L./lib -L./" -libs="-lGL -lglfw -lX11 -lXxf86vm -lXrandr -lm -lpthread -lXi -ldl" # -l:steam/libsteam_api.so" -flags="-fsanitize=address -ggdb3 -Wno-unused-function -DNO_STEAM" +libs="-lGL -lglfw -lX11 -lXxf86vm -lXrandr -lm -lpthread -lXi -ldl" +steam_part="-l:steam/libsteam_api.so" +flags="-fsanitize=address -ggdb3 -Wno-unused-function" +build_dir="build.linux" +steam_api="libsteam_api.so" if [[ "$OSTYPE" != "linux-gnu"* ]]; then echo "Operating system is not GNU/Linux, windows will be assumed." + target="fishladder.exe" libs="-lglfw3 -lopengl32 -lm -mwindows" - flags="-ggdb3 -Wno-unused-function -DNO_STEAM" + flags="-ggdb3 -Wno-unused-function" + build_dir="build.win32" + steam_api="steam_api.dll" fi run_after=false do_build=true compile_tools=false -compile_models=false +#compile_models=false while (( "$#" )); do case $1 in -r|--release) - flags="-O3 -Wno-unused-function -DNO_STEAM" + flags="-O3 -Wno-unused-function" echo "Release mode" ;; -p|--play) run_after=true echo "& Run" ;; + -s|--no-steam) + steam_part="" + defines="-DNO_STEAM" + echo "no-steam" + ;; -n|--nobuild) do_build=false echo "no-build" @@ -36,10 +47,10 @@ while (( "$#" )); do compile_tools=true echo "build-tools" ;; - -m|--models) - compile_models=true - echo "build-models" - ;; + #-m|--models) + # compile_models=true + # echo "build-models" + #;; *) echo "Unkown param: $1" exit 1 @@ -52,31 +63,37 @@ done 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 -Wall -Wstrict-aliasing=3 $lib $flags mdlcomp.c gl/glad.c -o tools/mdlcomp $libs $steam_part -Wl,-rpath=./ $defines + gcc -Wall -Wstrict-aliasing=3 $lib $flags fontcomp.c gl/glad.c -o tools/fontcomp $libs $steam_part -Wl,-rpath=./ $defines + gcc -Wall -Wstrict-aliasing=3 $lib $flags texsheet.c gl/glad.c -o tools/texsheet $libs $steam_part -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 - +mkdir _temp_textures # 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 +# Autocombine textures +auto_combine="" +cd textures_combine +for f in *.png; + do echo "[combine] $f"; + auto_combine="$auto_combine $f" +done +../tools/texsheet ../_temp_textures/autocombine.qoi ../sprites_autocombine.h sprites_auto_combine $auto_combine +cd .. + +# Compile font file +./tools/fontcomp fonts/vg_font.png vg/vg_pxfont.h + # Main build if [ "$do_build" = true ]; then - gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs -Wl,-rpath=./ $defines + gcc -Wall -Wstrict-aliasing=3 $lib $flags $src gl/glad.c -o $target $libs $steam_part -Wl,-rpath=./ $defines if [ $? -ne 0 ]; then echo "GCC build failed" @@ -86,45 +103,23 @@ if [ "$do_build" = true ]; then echo "Build succeeded" fi -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 - 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" - - cd ./build.linux/ - ./$target - cd ./../ - fi -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 - 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 - echo "Playing" - - cd ./build.win32/ - ./$target - cd ./../ - fi +mkdir $build_dir/cfg -p +mkdir $build_dir/textures -p +mkdir $build_dir/sound -p +mkdir $build_dir/maps -p +mkdir $build_dir/sav -p + +cp $target $build_dir/$target +cp ./steam/$steam_api $build_dir/$steam_api +rm -r $build_dir/textures +mv ./_temp_textures/ $build_dir/textures +cp -r ./sound/ $build_dir +cp -r ./maps/ $build_dir + +if [ "$run_after" = true ]; then + echo "Playing" + + cd $build_dir + ./$target + cd ./../ fi