X-Git-Url: https://harrygodden.com/git/?p=fishladder.git;a=blobdiff_plain;f=build.sh;fp=build.sh;h=0000000000000000000000000000000000000000;hp=9eb56fad4ba8f05fbfd2220ac84733caf79a28ed;hb=30490c4c08d5c0f811017a901aa9e25a95be7c40;hpb=3363633178b1eea582304742ad1202487af0feb1 diff --git a/build.sh b/build.sh deleted file mode 100755 index 9eb56fa..0000000 --- a/build.sh +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright (C) 2021 Harry Godden (hgn) - All Rights Reserved - -cmd_lib_dir="-I. -L./lib -L./" -cmd_release=false -cmd_defines="" -cmd_target="fishladder" - -# Util -# =========================================== -error(){ - echo -e "\033[1;31mError:\e[0m $@" - exit 1 -} - -warning(){ - echo -e "\033[1;33mWarning:\e[0m $@" -} - -success(){ - echo -e "\033[1;32mSuccess:\e[0m $@" -} - -logit(){ - echo -e "\033[0;37m$@\e[0m" -} - -# Platforms -# =========================================== - -target_os_windows(){ - target_ext=".exe" - target_compiler="i686-w64-mingw32-gcc" - target_libs="-lglfw3 -lopengl32 -lm -mwindows" - target_dir="build.win32" - target_steam_api="steam_api.dll" - if [ $cmd_release = true ]; then - target_opts="-O3" - else - target_opts="-ggdb3" - fi -} - -target_os_linux(){ - target_ext="" - target_compiler="gcc" - target_libs="-lGL -lglfw -lX11 -lXxf86vm -lXrandr -lm -lpthread -lXi -ldl" - target_dir="build.linux" - target_steam_api="libsteam_api.so" - if [ $cmd_release = true ]; then - target_opts="-O3" - else - target_opts="-fsanitize=address -ggdb3" - fi -} - -compile_x(){ - cmd_setup="$target_compiler -Wall -Wstrict-aliasing=3 -Wno-unused-function $cmd_lib_dir" - cmd_targets="$1 gl/glad.c -o $2$target_ext" - cmd_final="$target_libs -Wl,-rpath=./ $cmd_defines" - cmd="$cmd_setup $target_opts $cmd_targets $cmd_final" - - echo "Compile -> $2$target_ext:" - logit " $cmd" - $cmd - - if [ $? -ne 0 ]; then - error "compiler signaled fail" - exit 1 - fi - - success "$2$target_ext built" - echo "" -} - -compile_main(){ - echo "" - echo "compile_main()" - mkdir -p $target_dir - - compile_x fishladder.c $target_dir/$cmd_target - - echo "Setting up build structure" - - # Setup build folder - mkdir $target_dir/cfg -p - mkdir $target_dir/textures -p - mkdir $target_dir/sound -p - mkdir $target_dir/maps -p - mkdir $target_dir/sav -p - - # Copy libraries - cp steam/$target_steam_api $target_dir/$target_steam_api - - # Clear and copy assets - rm -r $target_dir/textures - rm -r $target_dir/sound - rm -r $target_dir/maps - - cp -r .temp_textures $target_dir - mv $target_dir/.temp_textures $target_dir/textures - cp -r sound $target_dir - cp -r maps $target_dir - - success "Build made: $target_dir" -} - -compile_tools(){ - # These should only be compiled for native platform - echo "" - echo "compile_tools()" - mkdir tools -p - - compile_x fontcomp.c tools/fontcomp - compile_x texsheet.c tools/texsheet - compile_x qoiconv.c tools/qoiconv -} - -compile_assets(){ - echo "" - echo "compile_assets()" - [[ -d .temp_textures ]] && rm -r .temp_textures - mkdir .temp_textures - - # Convert all png to qoi - echo "Compile textures:" - for f in textures/*.png; - do logit " qoi: $f"; - ./tools/qoiconv$target_ext $f .temp_textures/"$(basename "$f" .png).qoi" - done - - # Autocombine textures - echo " [combine]:" - - auto_combine="" - cd textures_combine - for f in *.png; - do logit " combine: $f"; - auto_combine="$auto_combine $f" - done - ../tools/texsheet$taget_ext ../.temp_textures/autocombine.qoi ../sprites_autocombine.h sprites_auto_combine $auto_combine - cd .. - - # Compile font file - echo "" - echo "Compile fonts:" - ./tools/fontcomp$target_ext fonts/vg_font.png vg/vg_pxfont.h -} - -# ============================================================== -# Compile process - -if [[ "$OSTYPE" != "linux-gnu"* ]]; then - echo "Host: Microsoft Windows (implied)" - host_is_linux=false - target_os_windows -else - echo "Host: GNU/Linux" - host_is_linux=true - target_os_linux -fi - -# Main compile loop -while (( "$#" )); do - case $1 in - -r|--release) - cmd_release=true - echo " + Release Mode" - ;; - -s|--no-steam) - cmd_defines="-DVG_NO_STEAM" - echo " + Disable steam" - ;; - -t|--tools) - compile_tools - ;; - -a|-assets) - compile_assets - ;; - --build-linux) - target_os_linux - compile_main - ;; - --build-windows) - target_os_windows - compile_main - - # Extra glfw.dll copy step - cp glfw/glfw3.dll $target_dir/glfw3.dll - ;; - -p|--play) - if [ $host_is_linux ]; then - target_os_linux - else - target_os_windows - fi - - echo "" - logit "======= exec: $target_dir/$cmd_target$target_ext =======" - echo "" - - cd $target_dir - ./$cmd_target - cd ./../ - ;; - *) - echo "Unkown param: $1" - exit 1 - ;; - esac - shift -done - -# Cleanup -logit "cleaning up..."