From 404c5fb0c9e931aaadbcfafa37cb59b5c8e6a5f8 Mon Sep 17 00:00:00 2001 From: ying32 Date: Fri, 10 May 2019 17:09:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=84=E5=BB=BA=E4=BA=8C=E8=BF=9B=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/build-darwin32-GUI.sh | 1 + build/build-darwin32.sh | 1 + build/build-darwin64-GUI.sh | 1 + build/build-darwin64.sh | 1 + build/rpbuild.go | 34 ++++++++++-------- ...indows_gui.syso => defaultRes_windows.syso | Bin imgs/rproxy.icns | Bin 12874 -> 12676 bytes imgs/rproxy.png | Bin 0 -> 13098 bytes main_gui.go | 4 +-- 9 files changed, 26 insertions(+), 16 deletions(-) rename defaultRes_windows_gui.syso => defaultRes_windows.syso (100%) create mode 100644 imgs/rproxy.png diff --git a/build/build-darwin32-GUI.sh b/build/build-darwin32-GUI.sh index 09db4e7..c9b8383 100644 --- a/build/build-darwin32-GUI.sh +++ b/build/build-darwin32-GUI.sh @@ -2,6 +2,7 @@ echo Compiling 32-bit rproxy GUI... # 根据你的实际情况修改这里 export GOROOT=$HOME/godev/go +export GOPATH=$HOME/godev/gosrc export PATH=$GOROOT/bin:$PATH export GOARCH=386 diff --git a/build/build-darwin32.sh b/build/build-darwin32.sh index 73fc628..8ae9b19 100644 --- a/build/build-darwin32.sh +++ b/build/build-darwin32.sh @@ -2,6 +2,7 @@ echo Compiling 32-bit rproxy... # 根据你的实际情况修改这里 export GOROOT=$HOME/godev/go +export GOPATH=$HOME/godev/gosrc export PATH=$GOROOT/bin:$PATH export GOARCH=386 diff --git a/build/build-darwin64-GUI.sh b/build/build-darwin64-GUI.sh index c331e83..d6c610a 100644 --- a/build/build-darwin64-GUI.sh +++ b/build/build-darwin64-GUI.sh @@ -2,6 +2,7 @@ echo Compiling 64-bit rproxy GUI... # 根据你的实际情况修改这里 export GOROOT=$HOME/godev/go +export GOPATH=$HOME/godev/gosrc export PATH=$GOROOT/bin:$PATH export GOARCH=amd64 diff --git a/build/build-darwin64.sh b/build/build-darwin64.sh index e7412ef..cfa1863 100644 --- a/build/build-darwin64.sh +++ b/build/build-darwin64.sh @@ -2,6 +2,7 @@ echo Compiling 64-bit rproxy... # 根据你的实际情况修改这里 export GOROOT=$HOME/godev/go +export GOPATH=$HOME/godev/gosrc export PATH=$GOROOT/bin:$PATH export GOARCH=amd64 diff --git a/build/rpbuild.go b/build/rpbuild.go index f5a7c1f..fc1a3dc 100644 --- a/build/rpbuild.go +++ b/build/rpbuild.go @@ -88,15 +88,15 @@ func darwinPkg() { fmt.Println("编译rproxy-darwin64") if executeBash("build-darwin64.sh") == nil { - fmt.Println("打包rproxy-darwin") - createZipFile("rproxy-darwin.zip", false) + fmt.Println("打包rproxy-darwin64") + createZipFile("rproxy-darwin64.zip", false) } fmt.Println("------------------------------") fmt.Println("编译rproxy-darwin32-GUI") if executeBash("build-darwin32-GUI.sh") == nil { fmt.Println("打包rproxy-darwin32-GUI") - createZipFile("rproxy-win32-GUI.zip", true) + createZipFile("rproxy-darwin32-GUI.zip", true, true) } fmt.Println("------------------------------") @@ -125,7 +125,7 @@ func executeBash(fileName string) error { return err } -func createZipFile(zipFileName string, isGUI bool) error { +func createZipFile(zipFileName string, isGUI bool, isDarwin32 ...bool) error { f, err := os.Create(zipFileName) if err != nil { return err @@ -179,7 +179,11 @@ func createZipFile(zipFileName string, isGUI bool) error { if isGUI { fnSuffix = "_GUI" } - compressFile("../rproxy"+fnSuffix+exeExt, "rproxy"+exeExt) + + if len(isDarwin32) == 0 { + compressFile("../rproxy"+fnSuffix+exeExt, "rproxy"+exeExt) + } + // 复制动态链接库 if isGUI { switch runtime.GOOS { @@ -195,15 +199,16 @@ func createZipFile(zipFileName string, isGUI bool) error { compressFile("/usr/lib/liblcl.so", "") } case "darwin": - if runtime.GOARCH == "386" { - // 产生一个app - pkgMacOSApp("../rproxy_GUI") - compressFile("./rproxy.app/Contents/PkgInfo", "rproxy.app/Contents/PkgInfo") - compressFile("./rproxy.app/Contents/Info.plist", "rproxy.app/Contents/Info.plist") - compressFile("./rproxy.app/Contents/Resources/rproxy.icns", "rproxy.app/Contents/Resources/rproxy.icns") - compressFile("./rproxy.app/Contents/MacOS/rproxy", "rproxy.app/Contents/MacOS/rproxy") - compressFile("./rproxy.app/Contents/MacOS/liblcl.dylib", "rproxy.app/Contents/MacOS/liblcl.dylib") - } + + // 产生一个app + pkgMacOSApp("../rproxy_GUI") + + compressFile("./rproxy.app/Contents/PkgInfo", "rproxy.app/Contents/PkgInfo") + compressFile("./rproxy.app/Contents/Info.plist", "rproxy.app/Contents/Info.plist") + compressFile("./rproxy.app/Contents/Resources/rproxy.icns", "rproxy.app/Contents/Resources/rproxy.icns") + compressFile("./rproxy.app/Contents/MacOS/rproxy", "rproxy.app/Contents/MacOS/rproxy") + compressFile("./rproxy.app/Contents/MacOS/liblcl.dylib", "rproxy.app/Contents/MacOS/liblcl.dylib") + } } @@ -348,6 +353,7 @@ func pkgMacOSApp(exeFileName string) error { } copyFile(exeFileName, execFile) + os.Chmod(execFile, 0755) return nil } diff --git a/defaultRes_windows_gui.syso b/defaultRes_windows.syso similarity index 100% rename from defaultRes_windows_gui.syso rename to defaultRes_windows.syso diff --git a/imgs/rproxy.icns b/imgs/rproxy.icns index c8507e3ad27c389112e49c1455e2d72621e8a151..0e59b42d2d429f571d97d0f5e27eab9854b376d8 100644 GIT binary patch literal 12676 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 literal 12874 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 DWu}69 diff --git a/imgs/rproxy.png b/imgs/rproxy.png new file mode 100644 index 0000000000000000000000000000000000000000..1f0a10da0cddcbc80ffdc0fc7dba440c5a59774c GIT binary patch literal 13098 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 JD@6@|{vZ6Q`=tN? literal 0 HcmV?d00001 diff --git a/main_gui.go b/main_gui.go index 8106668..6640d2b 100644 --- a/main_gui.go +++ b/main_gui.go @@ -4,13 +4,13 @@ package main import ( "github.com/ying32/govcl/vcl" - "github.com/ying32/govcl/vcl/exts/tools" + //"github.com/ying32/govcl/vcl/exts/tools" ) // GUI模式下暂时只能是客户端,服务端依然使用命令行。 // 另外如果更新了MainForm.go或者MainFormImpl.go需要在前面补充自定义标题 // +build gui func main() { - tools.RunWithMacOSApp() + //tools.RunWithMacOSApp() vcl.Application.SetFormScaled(true) vcl.Application.Initialize() vcl.Application.SetMainFormOnTaskBar(true)