From 3ac1dcc8d9e25a0d86294a3841faf98728a028f3 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sun, 15 Aug 2021 20:16:14 +1000 Subject: [PATCH] [windows-x] Use winres for processing manifest + icon --- v2/go.mod | 2 +- v2/go.sum | 5 +- v2/internal/frontend/runtime/desktop/main.js | 30 ++++--- v2/pkg/buildassets/build/windows/icon.ico | Bin 0 -> 21017 bytes .../buildassets/build/windows/wails.rc.tmpl | 2 - v2/pkg/commands/build/desktop_windows.go | 5 ++ v2/pkg/commands/build/packager_windows.go | 79 +++++++++++++----- 7 files changed, 87 insertions(+), 36 deletions(-) create mode 100644 v2/pkg/buildassets/build/windows/icon.ico delete mode 100644 v2/pkg/buildassets/build/windows/wails.rc.tmpl diff --git a/v2/go.mod b/v2/go.mod index 46c6cac3..f89198a7 100644 --- a/v2/go.mod +++ b/v2/go.mod @@ -25,11 +25,11 @@ require ( github.com/leaanthony/webview2runtime v1.1.0 github.com/leaanthony/winicon v0.0.0-20200606125418-4419cea822a0 github.com/matryer/is v1.4.0 - github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect github.com/olekukonko/tablewriter v0.0.4 github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.7.0 // indirect github.com/tadvi/winc v0.0.0-20190405175627-5454f291903d + github.com/tc-hib/winres v0.1.5 github.com/tdewolff/minify v2.3.6+incompatible github.com/tdewolff/parse v2.3.4+incompatible // indirect github.com/tdewolff/test v1.0.6 // indirect diff --git a/v2/go.sum b/v2/go.sum index 8046e9d9..4bf78f4a 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -145,6 +145,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/tc-hib/winres v0.1.5 h1:2dA5yfjdoEA3UyRaOC92HNMt3jap66pLzoW4MjpC/0M= +github.com/tc-hib/winres v0.1.5/go.mod h1:pe6dOR40VOrGz8PkzreVKNvEKnlE8t4yR8A8naL+t7A= github.com/tdewolff/minify v2.3.6+incompatible h1:2hw5/9ZvxhWLvBUnHE06gElGYz+Jv9R4Eys0XUzItYo= github.com/tdewolff/minify v2.3.6+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs= github.com/tdewolff/parse v2.3.4+incompatible h1:x05/cnGwIMf4ceLuDMBOdQ1qGniMoxpP46ghf0Qzh38= @@ -181,8 +183,9 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8 h1:6WW6V3x1P/jokJBpRQYUJnMHRP6isStQwCozxnU7XQw= golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= diff --git a/v2/internal/frontend/runtime/desktop/main.js b/v2/internal/frontend/runtime/desktop/main.js index abd8611c..57055210 100644 --- a/v2/internal/frontend/runtime/desktop/main.js +++ b/v2/internal/frontend/runtime/desktop/main.js @@ -13,7 +13,7 @@ import {EventsEmit, EventsNotify, EventsOff, EventsOn, EventsOnce, EventsOnMulti import {Callback} from './calls'; import {SetBindings} from "./bindings"; // import {AddScript, DisableDefaultContextMenu, InjectCSS} from './utils'; -// import {AddIPCListener, SendMessage} from 'ipc'; +import {SendMessage} from './ipc'; // Backend is where the Go struct wrappers get bound to window.backend = {}; @@ -29,18 +29,26 @@ window.runtime = { // Initialise global if not already window.wails = { - Callback, - EventsNotify, - SetBindings, - // AddScript, - // InjectCSS, - // DisableDefaultContextMenu, - // // Init, - // AddIPCListener, - // SystemCall, - // SendMessage, + Callback, + EventsNotify, + SetBindings, }; window.wails.SetBindings(window.wailsbindings); delete window.wails['SetBindings']; delete window['wailsbindings']; + +// Setup drag handler +// Based on code from: https://github.com/patr0nus/DeskGap +window.addEventListener('mousedown', (e) => { + let currentElement = e.target; + while (currentElement != null) { + if (currentElement.hasAttribute('data-wails-no-drag')) { + break; + } else if (currentElement.hasAttribute('data-wails-drag')) { + SendMessage("drag"); + break; + } + currentElement = currentElement.parentElement; + } +}); diff --git a/v2/pkg/buildassets/build/windows/icon.ico b/v2/pkg/buildassets/build/windows/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f33479841c61728c8b5ee076ed13771c68e48b40 GIT binary patch literal 21017 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 AM*si- literal 0 HcmV?d00001 diff --git a/v2/pkg/buildassets/build/windows/wails.rc.tmpl b/v2/pkg/buildassets/build/windows/wails.rc.tmpl deleted file mode 100644 index a1254d9d..00000000 --- a/v2/pkg/buildassets/build/windows/wails.rc.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -100 ICON "app.ico" -110 24 "{{.Name}}.exe.manifest" \ No newline at end of file diff --git a/v2/pkg/commands/build/desktop_windows.go b/v2/pkg/commands/build/desktop_windows.go index ee724285..842b8409 100644 --- a/v2/pkg/commands/build/desktop_windows.go +++ b/v2/pkg/commands/build/desktop_windows.go @@ -3,6 +3,7 @@ package build import ( + "github.com/leaanthony/slicer" "github.com/wailsapp/wails/v2/internal/ffenestri/windows/x64" "os" "path/filepath" @@ -11,6 +12,10 @@ import ( // PostCompilation is called after the compilation step, if successful func (d *DesktopBuilder) PostCompilation(options *Options) error { // Dump the DLLs + userTags := slicer.String(options.UserTags) + if userTags.Contains("experimental") { + return nil + } err := os.WriteFile(filepath.Join(options.BuildDirectory, "WebView2Loader.dll"), x64.WebView2Loader, 0755) if err != nil { return err diff --git a/v2/pkg/commands/build/packager_windows.go b/v2/pkg/commands/build/packager_windows.go index 79fa2ffa..85b39556 100644 --- a/v2/pkg/commands/build/packager_windows.go +++ b/v2/pkg/commands/build/packager_windows.go @@ -3,8 +3,8 @@ package build import ( "fmt" "github.com/leaanthony/winicon" + "github.com/tc-hib/winres" "github.com/wailsapp/wails/v2/internal/fs" - "github.com/wailsapp/wails/v2/internal/shell" "github.com/wailsapp/wails/v2/pkg/buildassets" "os" "path/filepath" @@ -18,12 +18,6 @@ func packageApplication(options *Options) error { return err } - // Ensure RC file is present - err = generateRCFile(options) - if err != nil { - return err - } - // Ensure Manifest is present err = generateManifest(options) if err != nil { @@ -48,18 +42,9 @@ func generateManifest(options *Options) error { return nil } -func generateRCFile(options *Options) error { - filename := options.ProjectData.Name + ".rc" - rcFile := filepath.Join(options.ProjectData.Path, "build", "windows", filename) - if !fs.FileExists(rcFile) { - return buildassets.RegenerateRCFile(options.ProjectData.Path, options.ProjectData.Name) - } - return nil -} - func generateIcoFile(options *Options) error { // Check ico file exists already - icoFile := filepath.Join(options.ProjectData.Path, "build", "windows", "app.ico") + icoFile := filepath.Join(options.ProjectData.Path, "build", "windows", "icon.ico") if !fs.FileExists(icoFile) { // Check icon exists appicon := filepath.Join(options.ProjectData.Path, "build", "appicon.png") @@ -84,9 +69,61 @@ func generateIcoFile(options *Options) error { } func compileResources(options *Options) error { - windowsBuildDir := filepath.Join(options.ProjectData.Path, "build", "windows") - sourcefile := filepath.Join(options.ProjectData.BuildDir, "windows", options.ProjectData.Name+".rc") + + currentDir, err := os.Getwd() + if err != nil { + return err + } + defer func() { + os.Chdir(currentDir) + }() + windowsDir := filepath.Join(options.ProjectData.Path, "build", "windows") + err = os.Chdir(windowsDir) + if err != nil { + return err + } + rs := winres.ResourceSet{} + icon := filepath.Join(windowsDir, "icon.ico") + iconFile, err := os.Open(icon) + if err != nil { + return err + } + defer iconFile.Close() + ico, err := winres.LoadICO(iconFile) + if err != nil { + return err + } + err = rs.SetIcon(winres.RT_ICON, ico) + if err != nil { + return err + } + + ManifestFilename := options.ProjectData.Name + ".exe.manifest" + manifestData, err := os.ReadFile(ManifestFilename) + xmlData, err := winres.AppManifestFromXML(manifestData) + if err != nil { + return err + } + rs.SetManifest(xmlData) + targetFile := filepath.Join(options.ProjectData.Path, options.ProjectData.Name+"-res.syso") - _, _, err := shell.RunCommand(windowsBuildDir, "windres", "-o", targetFile, sourcefile) - return err + fout, err := os.Create(targetFile) + if err != nil { + return err + } + defer fout.Close() + + archs := map[string]winres.Arch{ + "amd64": winres.ArchAMD64, + } + targetArch, supported := archs[options.Arch] + if !supported { + return fmt.Errorf("arch '%s' not supported", options.Arch) + } + + err = rs.WriteObject(fout, targetArch) + if err != nil { + return err + } + return nil }