diff --git a/Makefile b/Makefile index 99d19f2..d92de73 100644 --- a/Makefile +++ b/Makefile @@ -2,17 +2,19 @@ include VERSION DOCS=*.md LICENSE SRCS=bundler.json cmd/*/*.go [c-z]*.go */*.go resources/app/*html resources/app/static/css/*.css resources/app/static/js/*js -EXES=$(EXE_MAC) $(EXE_WINDOWS) $(EXE_LINUX_AMD64) $(EXE_LINUX_386) $(EXE_LINUX_ARM) ${EXE_WINDOWS_TEST} -EXE_MAC=output/darwin-amd64/Synergize.app/Contents/MacOS/Synergize -EXE_WINDOWS=output/windows-386/Synergize.exe +EXES=$(EXE_MAC_ARM64) $(EXE_MAC_AMD64) $(EXE_WINDOWS_386) $(EXE_LINUX_AMD64) $(EXE_LINUX_386) $(EXE_LINUX_ARM) ${EXE_WINDOWS_TEST} +EXE_MAC_ARM64=output/darwin-arm64/Synergize.app/Contents/MacOS/Synergize +EXE_MAC_AMD64=output/darwin-amd64/Synergize.app/Contents/MacOS/Synergize +EXE_WINDOWS_386=output/windows-386/Synergize.exe EXE_WINDOWS_TEST=output/windows-386-cmd/Synergize-cmd.exe EXE_LINUX_AMD64=output/linux-amd64/Synergize EXE_LINUX_386=output/linux-386/Synergize EXE_LINUX_ARM=output/linux-arm/Synergize -DX2SYNS=$(DX2SYN_MAC) $(DX2SYN_WINDOWS) $(DX2SYN_LINUX_AMD64) $(DX2SYN_LINUX_386) $(DX2SYN_LINUX_ARM) -DX2SYN_MAC=output/darwin-amd64/Synergize.app/Contents/MacOS/dx2syn -DX2SYN_WINDOWS=output/windows-386/dx2syn.exe +DX2SYNS=$(DX2SYN_MAC_ARM64) $(DX2SYN_MAC_AMD64) $(DX2SYN_WINDOWS_386) $(DX2SYN_LINUX_AMD64) $(DX2SYN_LINUX_386) $(DX2SYN_LINUX_ARM) +DX2SYN_MAC_ARM64=output/darwin-arm64/Synergize.app/Contents/MacOS/dx2syn +DX2SYN_MAC_AMD64=output/darwin-amd64/Synergize.app/Contents/MacOS/dx2syn +DX2SYN_WINDOWS_386=output/windows-386/dx2syn.exe DX2SYN_LINUX_AMD64=output/linux-amd64/dx2syn DX2SYN_LINUX_386=output/linux-386/dx2syn DX2SYN_LINUX_ARM=output/linux-arm/dx2syn @@ -24,11 +26,15 @@ DX2SYN_LINUX_ARM=output/linux-arm/dx2syn .PHONY: all all: $(EXES) $(DX2SYNS) -$(DX2SYN_MAC): $(SRCS) +$(DX2SYN_MAC_ARM64): $(SRCS) + mkdir -p output/darwin-arm64/Synergize.app/Contents/MacOS + cd cmd/dx2syn && go build -o ../../output/darwin-arm64/Synergize.app/Contents/MacOS + +$(DX2SYN_MAC_AMD64): $(SRCS) mkdir -p output/darwin-amd64/Synergize.app/Contents/MacOS cd cmd/dx2syn && go build -o ../../output/darwin-amd64/Synergize.app/Contents/MacOS -$(DX2SYN_WINDOWS): $(SRCS) +$(DX2SYN_WINDOWS_386): $(SRCS) mkdir -p output/windows-386 cd cmd/dx2syn && GOOS=windows GOARCH=386 go build -o ../../output/windows-386 @@ -45,7 +51,7 @@ $(DX2SYN_LINUX_ARM): cd cmd/dx2syn && GOOS=linux GOARCH=arm go build -o ../../output/linux-arm -$(EXE_MAC) $(EXE_WINDOWS) $(EXE_LINUX_AMD64) $(EXE_LINUX_386) $(EXE_LINUX_ARM) : $(SRCS) +$(EXE_MAC_AMD64) $(EXE_MAC_ARM64) $(EXE_WINDOWS_386) $(EXE_LINUX_AMD64) $(EXE_LINUX_386) $(EXE_LINUX_ARM) : $(SRCS) rm -f windows.syso # delete temporary file side effect of windows build - linux-arm chokes on it. astilectron-bundler @@ -54,11 +60,17 @@ $(EXE_WINDOWS_TEST): $(SRCS) mkdir -p output/windows-386-cmd GOOS=windows GOARCH=386 go build -o $(EXE_WINDOWS_TEST) -.PHONY: mac -mac: version.go - rm -rf output/windows* output/linux* - astilectron-bundler -c bundler-mac-only.json - $(MAKE) $(DX2SYN_MAC) +.PHONY: mac_amd64 +mac_amd64: version.go + rm -rf output/windows* output/linux* windows.syso + astilectron-bundler -c bundler-mac-amd64-only.json + $(MAKE) $(DX2SYN_MAC_AMD64) + +.PHONY: mac_arm64 +mac_arm64: version.go + rm -rf output/windows* output/linux* windows.syso + astilectron-bundler -c bundler-mac-arm64-only.json + $(MAKE) $(DX2SYN_MAC_ARM64) .PHONY: cibuild cibuild: version.go @@ -70,11 +82,11 @@ package: test all packageMac packageWindows packageLinux # uses create-dmg (installed via "brew install create-dmg"): -.PHONY: packageMac -packageMac: packages/Synergize-Installer-mac-$(VERSION).dmg -packages/Synergize-Installer-mac-$(VERSION).dmg : $(EXE_MAC) +.PHONY: packageMac_AMD64 +packageMac_AMD64: packages/Synergize-Installer-mac-amd64-$(VERSION).dmg +packages/Synergize-Installer-mac-amd64-$(VERSION).dmg : $(EXE_MAC_AMD64) mkdir -p packages - rm -f packages/Synergize-Installer-mac-$(VERSION).dmg + rm -f packages/Synergize-Installer-mac-amd64-$(VERSION).dmg create-dmg \ --volname "Synergize Installer" \ --volicon resources/icon.icns \ @@ -82,13 +94,29 @@ packages/Synergize-Installer-mac-$(VERSION).dmg : $(EXE_MAC) --window-size 450 400 \ --icon "Synergize.app" 100 120 \ --app-drop-link 300 120 \ - "packages/Synergize-Installer-mac-$(VERSION).dmg" \ + "packages/Synergize-Installer-mac-amd64-$(VERSION).dmg" \ output/darwin-amd64 +# uses create-dmg (installed via "brew install create-dmg"): +.PHONY: packageMac_ARM +packageMac_ARM: packages/Synergize-Installer-mac-arm64-$(VERSION).dmg +packages/Synergize-Installer-mac-arm64-$(VERSION).dmg : $(EXE_MAC_ARM64) + mkdir -p packages + rm -f packages/Synergize-Installer-mac-arm64-$(VERSION).dmg + create-dmg \ + --volname "Synergize Installer" \ + --volicon resources/icon.icns \ + --icon-size 100 \ + --window-size 450 400 \ + --icon "Synergize.app" 100 120 \ + --app-drop-link 300 120 \ + "packages/Synergize-Installer-mac-arm64-$(VERSION).dmg" \ + output/darwin-arm64 + # uses msitools (installed via "brew install msitools"): .PHONY: packageWindows -packageWindows: packages/Synergize-Installer-windows-$(VERSION).msi $(EXE_WINDOWS) $(EXE_WINDOWS_TEST) -packages/Synergize-Installer-windows-$(VERSION).msi : windows-installer.wxs $(EXE_WINDOWS) $(EXE_WINDOWS_TEST) +packageWindows: packages/Synergize-Installer-windows-$(VERSION).msi $(EXE_WINDOWS_386) $(EXE_WINDOWS_TEST) +packages/Synergize-Installer-windows-$(VERSION).msi : windows-installer.wxs $(EXE_WINDOWS_386) $(EXE_WINDOWS_TEST) mkdir -p packages rm -f packages/Synergize-Installer-windows-$(VERSION).msi wixl -v \ diff --git a/bundler-mac-only.json b/bundler-mac-amd64-only.json similarity index 100% rename from bundler-mac-only.json rename to bundler-mac-amd64-only.json diff --git a/bundler-mac-arm64-only.json b/bundler-mac-arm64-only.json new file mode 100644 index 0000000..9031c53 --- /dev/null +++ b/bundler-mac-arm64-only.json @@ -0,0 +1,17 @@ +{ + "app_name": "Synergize", + "version_electron" : "11.1.0", + "icon_path_darwin": "resources/icon.icns", + "icon_path_linux": "resources/icon-64x64.png", + "icon_path_windows": "resources/icon.ico", + "ldflags":{"linkmode":["internal"]}, + "environments": [ + {"arch" : "arm64", + "os" : "darwin", + "env" : { + "CGO_ENABLED": "1", + "CGO_CFLAGS": "-mmacosx-version-min=10.11", + "CGO_LDFLAGS": "-mmacosx-version-min=10.11" + }} + ] +} diff --git a/bundler.json b/bundler.json index df9a78f..e9bea65 100644 --- a/bundler.json +++ b/bundler.json @@ -12,14 +12,21 @@ "os" : "linux"}, {"arch" : "386", "os" : "linux"}, - {"arch" : "386", - "os" : "windows"}, + {"arch" : "arm64", + "os" : "darwin", + "env" : { + "CGO_ENABLED": "1", + "CGO_CFLAGS": "-mmacosx-version-min=10.11", + "CGO_LDFLAGS": "-mmacosx-version-min=10.11" + }}, {"arch" : "amd64", "os" : "darwin", "env" : { "CGO_ENABLED": "1", "CGO_CFLAGS": "-mmacosx-version-min=10.11", "CGO_LDFLAGS": "-mmacosx-version-min=10.11" - }} + }}, + {"arch" : "386", + "os" : "windows"} ] } diff --git a/go.mod b/go.mod index 3da5107..288bd03 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.14 require ( github.com/BurntSushi/toml v0.3.1 // indirect github.com/akavel/rsrc v0.10.2 // indirect - github.com/asticode/go-astikit v0.29.1 - github.com/asticode/go-astilectron v0.27.0 + github.com/asticode/go-astikit v0.51.1 + github.com/asticode/go-astilectron v0.30.0 github.com/asticode/go-astilectron-bootstrap v0.4.14 github.com/chinenual/dnssd v1.1.2 github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 2cf1c1c..29ee955 100644 --- a/go.sum +++ b/go.sum @@ -6,9 +6,13 @@ github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxk github.com/asticode/go-astikit v0.15.0/go.mod h1:h4ly7idim1tNhaVkdVBeXQZEE3L0xblP7fCWbgwipF0= github.com/asticode/go-astikit v0.29.1 h1:w27sLYXK84mDwArf/Vw1BiD5dfD5PBDB+iHoIcpYq0w= github.com/asticode/go-astikit v0.29.1/go.mod h1:h4ly7idim1tNhaVkdVBeXQZEE3L0xblP7fCWbgwipF0= +github.com/asticode/go-astikit v0.51.1 h1:vNY3Ct9mUeR/MQnL8U9MJvBjAuwpFTljTolCPQlvlv8= +github.com/asticode/go-astikit v0.51.1/go.mod h1:h4ly7idim1tNhaVkdVBeXQZEE3L0xblP7fCWbgwipF0= github.com/asticode/go-astilectron v0.25.0/go.mod h1:Tx+aS0IvbV0cO4TlQbOO1NFA/lATj11vEStydyIjMjM= github.com/asticode/go-astilectron v0.27.0 h1:SbY6xDsPZ+BvQTb/daZpFBTJF5QWzSQ2IEj9destNIw= github.com/asticode/go-astilectron v0.27.0/go.mod h1:Tx+aS0IvbV0cO4TlQbOO1NFA/lATj11vEStydyIjMjM= +github.com/asticode/go-astilectron v0.30.0 h1:flnbc7XKzvG5pKqvQr25hHEsXj2QoJP9kM0YHpq5LnQ= +github.com/asticode/go-astilectron v0.30.0/go.mod h1:o7wZ7KDr3XH3xcEwcxfpWzNVf63JsMKtif/6IP4mpHk= github.com/asticode/go-astilectron-bootstrap v0.4.14 h1:xLL9LCk2azGwzCA80spicBltpNyQvirHmIatexlX/nw= github.com/asticode/go-astilectron-bootstrap v0.4.14/go.mod h1:2rG6AtLIU/q4Kor4ZBPOAcE/zCQjThVUyy7TRWWeI2w= github.com/asticode/go-astilectron-bundler v0.7.12 h1:NpVYzSkAvi2uxcPWapDjQscgbwpfh2OJ/tgO0dw17gE=