71 lines
2.2 KiB
Bash
71 lines
2.2 KiB
Bash
#!/bin/bash
|
||
|
||
# 检查UPX是否存在
|
||
check_upx() {
|
||
if command -v upx &> /dev/null; then
|
||
echo "UPX已找到,将执行可执行文件压缩"
|
||
return 0
|
||
else
|
||
echo "UPX未找到,跳过压缩步骤"
|
||
return 1
|
||
fi
|
||
}
|
||
|
||
# 仅在文件存在时删除
|
||
[ -f "./miao-directory-amd64-win.exe" ] && rm ./miao-directory-amd64-win.exe
|
||
[ -f "./miao-directory-amd64-win.upx.exe" ] && rm ./miao-directory-amd64-win.upx.exe
|
||
[ -f "./miao-directory-amd64-win.gui.exe" ] && rm ./miao-directory-amd64-win.gui.exe
|
||
[ -f "./miao-directory-amd64-win.gui.upx.exe" ] && rm ./miao-directory-amd64-win.gui.upx.exe
|
||
[ -f "./miao-directory-amd64-linux" ] && rm ./miao-directory-amd64-linux
|
||
|
||
pnpm run build
|
||
|
||
rm -rf ./src-server/web/*
|
||
|
||
# 确保目标目录存在
|
||
mkdir -p ./src-server/web/
|
||
cp -r ./dist/* ./src-server/web/
|
||
|
||
cd ./src-server
|
||
|
||
# 构建不带GUI版本(Windows)
|
||
echo "building amd64 win (no GUI)"
|
||
go env -w GOOS=windows GOARCH=amd64
|
||
go build -ldflags="-s -w" -o ../miao-directory-amd64-win.exe
|
||
|
||
# 尝试UPX压缩Windows无GUI版本
|
||
if check_upx; then
|
||
echo "正在压缩Windows无GUI版本"
|
||
upx --ultra-brute -o ../miao-directory-amd64-win.upx.exe ../miao-directory-amd64-win.exe
|
||
fi
|
||
|
||
# 构建不带GUI版本(Linux)
|
||
echo "building amd64 linux (no GUI)"
|
||
go env -w GOOS=linux GOARCH=amd64
|
||
# 禁用CGO以避免架构不匹配问题
|
||
export CGO_ENABLED=0
|
||
go build -ldflags="-s -w" -o ../miao-directory-amd64-linux
|
||
# 恢复CGO设置
|
||
export CGO_ENABLED=1
|
||
|
||
# 构建带GUI版本(仅Windows,go-webview2主要针对Windows平台)
|
||
echo "building amd64 win with GUI"
|
||
go env -w GOOS=windows GOARCH=amd64
|
||
go build -tags webview -ldflags="-s -w -H=windowsgui" -o ../miao-directory-amd64-win.gui.exe
|
||
|
||
# 尝试UPX压缩Windows GUI版本
|
||
if check_upx; then
|
||
echo "正在压缩Windows GUI版本"
|
||
upx --ultra-brute -o ../miao-directory-amd64-win.gui.upx.exe ../miao-directory-amd64-win.gui.exe
|
||
fi
|
||
|
||
# 如果需要为Linux构建带GUI版本,需要系统安装相应的依赖
|
||
# echo "building amd64 linux with GUI"
|
||
# go env -w GOOS=linux GOARCH=amd64
|
||
# go build -tags webview -ldflags="-s -w" -o ../miao-directory-gui-amd64-linux
|
||
|
||
# 可选:ARM64 Linux版本
|
||
# go env -w GOOS=linux GOARCH=arm64
|
||
# go build -ldflags="-s -w" -o ../miao-directory-arm64-linux
|
||
|
||
echo "build finish" |