Skip to content

Commit a5535d4

Browse files
committed
Set NSHighResolutionCapable to true to prevent blurry appeareance on Mac OS, support building darwin-bundle, darwin-dmg and darwin-pkg locally on darwin
1 parent 234936d commit a5535d4

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

assets/packaging/darwin-bundle/Info.plist.tmpl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
<string>{{.description}}</string>
1111
<key>CFBundleIconFile</key>
1212
<string>icon.icns</string>
13+
<key>NSHighResolutionCapable</key>
14+
<true/>
1315
<key>CFBundleIdentifier</key>
1416
<string>{{.organizationName}}.{{.packageName}}</string>
1517
<key>CFBundleInfoDictionaryVersion</key>

cmd/packaging/darwin-bundle.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"os/exec"
77
"path/filepath"
8+
"runtime"
89
)
910

1011
// DarwinBundleTask packaging for darwin as bundle
@@ -22,6 +23,9 @@ var DarwinBundleTask = &packagingTask{
2223
return "", err
2324
}
2425
cmdPng2icns := exec.Command("png2icns", filepath.Join(outputFileName, "Contents", "Resources", "icon.icns"), filepath.Join(outputFileName, "Contents", "MacOS", "assets", "icon.png"))
26+
if runtime.GOOS == "darwin" {
27+
cmdPng2icns = exec.Command("png2icons", filepath.Join(outputFileName, "Contents", "MacOS", "assets", "icon.png"), filepath.Join(outputFileName, "Contents", "Resources", "icon"), "-icns")
28+
}
2529
cmdPng2icns.Dir = tmpPath
2630
cmdPng2icns.Stdout = os.Stdout
2731
cmdPng2icns.Stderr = os.Stderr
@@ -32,6 +36,7 @@ var DarwinBundleTask = &packagingTask{
3236
return outputFileName, nil
3337
},
3438
requiredTools: map[string][]string{
35-
"linux": {"png2icns"},
39+
"linux": {"png2icons"},
40+
"darwin": {"png2icons"},
3641
},
3742
}

cmd/packaging/darwin-dmg.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"os/exec"
77
"path/filepath"
8+
"runtime"
89
)
910

1011
// DarwinDmgTask packaging for darwin as dmg
@@ -30,6 +31,9 @@ var DarwinDmgTask = &packagingTask{
3031
return "", err
3132
}
3233
cmdGenisoimage := exec.Command("genisoimage", "-V", packageName, "-D", "-R", "-apple", "-no-pad", "-o", outputFileName, "dmgdir")
34+
if runtime.GOOS == "darwin" {
35+
cmdGenisoimage = exec.Command("hdiutil", "create", "-volname", packageName, "-srcfolder", "dmgdir", "-ov", "-format", "UDBZ", outputFileName)
36+
}
3337
cmdGenisoimage.Dir = tmpPath
3438
cmdGenisoimage.Stdout = os.Stdout
3539
cmdGenisoimage.Stderr = os.Stderr
@@ -41,6 +45,7 @@ var DarwinDmgTask = &packagingTask{
4145
},
4246
skipAssertInitialized: true,
4347
requiredTools: map[string][]string{
44-
"linux": {"ln", "genisoimage"},
48+
"linux": {"ln", "genisoimage"},
49+
"darwin": {"ln", "hdiutil"},
4550
},
4651
}

cmd/packaging/darwin-pkg.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"os/exec"
77
"path/filepath"
8+
"runtime"
89

910
"github.com/pkg/errors"
1011
)
@@ -77,6 +78,9 @@ var DarwinPkgTask = &packagingTask{
7778
}
7879

7980
cmdMkbom := exec.Command("mkbom", "-u", "0", "-g", "80", filepath.Join("flat", "root"), filepath.Join("flat", "base.pkg", "Payload"))
81+
if runtime.GOOS == "darwin" {
82+
cmdMkbom = exec.Command("mkbom", filepath.Join("flat", "root"), filepath.Join("flat", "base.pkg", "Payload"))
83+
}
8084
cmdMkbom.Dir = tmpPath
8185
cmdMkbom.Stdout = os.Stdout
8286
cmdMkbom.Stderr = os.Stderr
@@ -109,6 +113,7 @@ var DarwinPkgTask = &packagingTask{
109113
return outputFileName, nil
110114
},
111115
requiredTools: map[string][]string{
112-
"linux": {"find", "cpio", "gzip", "mkbom", "xar"},
116+
"linux": {"find", "cpio", "gzip", "mkbom", "xar"},
117+
"darwin": {"find", "cpio", "gzip", "mkbom", "xar"},
113118
},
114119
}

0 commit comments

Comments
 (0)