Skip to content

Commit

Permalink
build for apple silicon
Browse files Browse the repository at this point in the history
  • Loading branch information
chinenual committed Jan 12, 2025
1 parent de4b375 commit 94ed134
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 26 deletions.
70 changes: 49 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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

Expand All @@ -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
Expand All @@ -70,25 +82,41 @@ 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 \
--icon-size 100 \
--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 \
Expand Down
File renamed without changes.
17 changes: 17 additions & 0 deletions bundler-mac-arm64-only.json
Original file line number Diff line number Diff line change
@@ -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"
}}
]
}
13 changes: 10 additions & 3 deletions bundler.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"}
]
}
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Expand Down

0 comments on commit 94ed134

Please sign in to comment.