magic/profiles/win/profile
2025-05-06 11:53:57 +08:00

160 lines
3.9 KiB
Bash

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
}