alias l='ls -lhF' alias la='ls -AlhF' alias ll=l alias open=explorer export LC_ALL=zh_CN.utf-8 export http_proxyserver="http://127.0.0.1:10809" function set_proxy() { if [[ $1 == "on" ]]; then export HTTP_PROXY=$http_proxyserver export HTTPS_PROXY=$http_proxyserver elif [[ $1 == "off" ]]; then unset HTTP_PROXY HTTPS_PROXY fi echo echo "HTTP_PROXY=$HTTP_PROXY" echo "HTTPS_PROXY=$HTTPS_PROXY" echo } function c3tool() { # check `cmake` if command -v cmake &> /dev/null; then echo "[CHECK] cmake 已安装" else echo "[CHECK] FAIL: cmake 未安装,请先安装 cmake" return 0 fi if command -v mingw32-make &> /dev/null; then echo "[CHECK] mingw32-make 已安装" else echo "[CHECK] FAIL: mingw32-make 未安装,请先安装 mingw32-make" return 0 fi # check if augustus or julius build folder if [[ $PWD =~ "augustus" || $PWD =~ "julius" ]]; then # 判断 basename 是否为 build if [ "$(basename "$PWD")" = "build" ]; then echo "[CHECK] Working directory: $PWD" else echo "[CHECK] FAIL: 进入 'augustus' 或者 'julius' 的 'build' 目录" return 1 fi else echo "[CHECK] FAIL: 进入 'augustus' 或者 'julius' 的 'build' 目录" return 1 fi echo cmd="" if [[ $1 == "" || "$1" == -* ]]; then cmd="build" else cmd=$1; shift; fi force=false update_res=false update_libs=false # Parse args... for arg in "$@"; do case "$arg" in -r|--update-resources) update_res=true ;; -l|--update-libs) update_libs=true ;; -f|--force) force=true ;; -a|--all) force=true update_res=true update_libs=true ;; --release) export CMAKE_BUILD_TYPE=release ;; esac done # Execute cmd... case "$cmd" in b|build) if $force; then printf "[BUILD] 清理make文件:" && rm -rf CMakeCache.txt CMakeFiles Makefile cmake_install.cmake compile_commands.json augustus* .cmake && \ echo "Done" fi printf "evn: - CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE\n\n" # cmake if [[ ! -f "Makefile" ]]; then exec_str="cmake .. -G \"MinGW Makefiles\"" && eval $exec_str if [ $? -ne 0 ]; then echo "[BUILD] FAIL. Execute string: ${exec_str}" return 1 fi fi # mingw32-make echo "开始编译..." if command -v nproc &> /dev/null; then makenum=$(nproc) else makenum=2 fi exec_str="mingw32-make -j$makenum" && eval $exec_str if [ $? -ne 0 ]; then echo "[BUILD] FAIL. Execute string: ${exec_str}" return 1 fi if $update_res; then printf "[BUILD] 清理res..." && rm -rf assets maps && echo "Done" fi if $update_libs; then printf "[BUILD] 清理libs..." && rm -f SDL2.dll SDL2_mixer.dll && echo "Done" fi # Updating res: if [[ ! -d assets || ! -d maps ]]; then printf "[BUILD] Updating assets ..." && cp -r ../res/assets . && echo "Done" printf "[BUILD] Updating maps ..." && cp -r ../res/maps . && echo "Done" fi # Updating libs: if [[ ! -f SDL2.dll || ! -f SDL2_mixer.dll ]]; then printf "[BUILD] Updating libs ..." && cp ../ext/SDL2/SDL2-2.32.4/x86_64-w64-mingw32/bin/SDL2.dll . && \ cp ../ext/SDL2/SDL2_mixer-2.8.1/x86_64-w64-mingw32/bin/SDL2_mixer.dll . && \ echo "Done" fi echo "[BUILD] success" ;; c|clean) printf "开始清理..." rm -rf CMakeCache.txt CMakeFiles Makefile cmake_install.cmake compile_commands.json augustus* && \ rm -rf assets maps && \ rm -f SDL2* && \ echo "Done" ;; *) echo "[Err] Invalid cmd: $cmd" echo echo "Usage:" echo " - c3tool build|b [-r -l -f -a --release]" echo " - c3tool clean|c" return 1 esac }