Compare commits

..

176 Commits

Author SHA1 Message Date
Lea Anthony c24aef8ea1 Initial commit. Need to fix userid write permission issues 2022-02-22 19:12:13 +11:00
Misitebao 91934d1f8e docs: synchronize and optimize documents (#1167)
* docs: sync chinese documents

* docs: optimize chinese terminology
2022-02-21 20:24:06 +11:00
Lea Anthony 2f7293e25c Add platform flag to docs 2022-02-20 18:52:41 +11:00
Lea Anthony 18c76602b5 Add platform flag to docs 2022-02-20 18:49:12 +11:00
Lea Anthony 93491eb2eb Feature/align api (#1161)
* Fix WindowSetRGBA API

* Change WindowUnFullscreen -> WindowUnfullscreen for consistency
RGBA bugfix
2022-02-19 20:29:55 +11:00
Misitebao 2ded86c369 docs: sync chinese documents (#1160) 2022-02-19 09:40:54 +11:00
Lea Anthony f059c35d9e Feature: WindowToggleMaximise (#1159)
* [windows] Add WindowToggleMaximise

* Add mac support

* Update docs

* [linux] Toggle Maximise
2022-02-18 20:28:16 +11:00
Lea Anthony 6e8d65e3aa [linux] Add stdint.h include 2022-02-17 21:23:24 +11:00
stffabi a750d2d507 [v2, windows] Invert the frameless border flag and rename it (#1157)
This is a breaking change for all users of the flag.
2022-02-16 20:28:46 +11:00
stffabi 331e0268a3 [v2, windows] Do not show caption buttons if frameless and translucent+transparency (#1152) 2022-02-16 18:53:17 +11:00
Valentin Trinqué e6424dc8ab Update icon.ico file mode (#1154)
* Add os.O_WRONLY to icon.ico to avoid bad file descriptor error

* Wrap errors coming from winres.LoadICO()

If the file exists but is empty, a blunt "Unexpected EOF" is returned, and propagated as is.

This is not super helpful when trying to pin point what's going on.

Wrapping the error helps to locate the problem.
2022-02-16 06:02:45 +11:00
Lea Anthony f923a431f7 Try to provide help when old xcode tools installed. #1142 2022-02-12 21:12:17 +11:00
Lea Anthony 00db626942 State no support for anonymous structs in binding. Fixes #1142 2022-02-12 20:59:57 +11:00
Lea Anthony eb0f22b4ee Fix appicon bug on Mac. Fixes #1143 2022-02-12 20:48:43 +11:00
Lea Anthony e068e0f2f5 Better platform support 2022-02-10 21:43:04 +11:00
Lea Anthony 771594519f [mac] Better support for multi-builds 2022-02-10 21:41:40 +11:00
Lea Anthony ec44ca58f1 Better output for build 2022-02-10 21:25:43 +11:00
Lea Anthony cb574148eb Better output for build 2022-02-10 21:24:27 +11:00
Lea Anthony 771efa527f Don't clean directory on subsequent builds 2022-02-10 21:14:02 +11:00
Lea Anthony 28e31c46c6 Fix output filename for windows builds 2022-02-10 21:11:32 +11:00
Lea Anthony c2fa4b6103 Support multiple targets for windows 2022-02-10 19:55:04 +11:00
Lea Anthony 99ca6d5e77 [Linux] Restore min/max after fullscreen 2022-02-10 19:55:04 +11:00
Lea Anthony 876b845762 [Windows] Restore min/max after fullscreen 2022-02-10 19:55:04 +11:00
stffabi e4122ce4d2 [v2, windows] Bump winc (#1134)
Fix detection if GetDpiForWindow is available
2022-02-08 19:01:38 +11:00
stffabi 7bc51725c0 [v2, windows] Apply suggested window size during DPI changed event (#1131)
* [v2, windows] Apply suggested window size during DPI changed event

This adjusts the window size if the window is moved from one
monitor to another with a different DPI scaling

* [v2, windows] Do not block processing of messages during frameless drag/resize

* [v2, windows] Bump winc

Improves the HiDPI handling by using newer APIs if available

* [v2, windows] Constrain frameless maximize to MaxWidth/MaxHeight
2022-02-08 07:56:01 +11:00
Lea Anthony 3d02a314b9 [linux] Fix min/max size after fullscreen 2022-02-08 07:04:45 +11:00
Lea Anthony 30a4f47cba [linux] Fix min/max size 2022-02-08 06:51:52 +11:00
Lea Anthony 668da3a827 [linux] Fix disabling context menu 2022-02-08 06:20:41 +11:00
Lea Anthony 322aad166b [linux] Fix fullscreen 2022-02-08 05:29:26 +11:00
Lea Anthony 3decd70319 Move more runtime methods to main thread 2022-02-07 20:17:25 +11:00
Lea Anthony 24857ec04b Only attach logger in debug mode. Fixes #1128 2022-02-07 20:00:26 +11:00
Lea Anthony a016f39e97 [linux] Move SetPosition, Center, Fullscreen and UnFullscreen to main thread 2022-02-07 08:48:21 +11:00
Lea Anthony 8699bf7521 [linux] Move SetTitle and startDrag to main thread 2022-02-07 08:47:11 +11:00
Lea Anthony 34b303a86f v2.0.0-beta.30 2022-02-05 10:06:22 +11:00
Travis McLane e39f3eba44 use path to first index.html file for 'index' (#1127) 2022-02-05 07:19:02 +11:00
Lea Anthony de7f08357c Fix runtime docs 2022-02-04 23:31:15 +11:00
Lea Anthony 9856d2979f Add GetEnvironment() - Fixes #1126 2022-02-04 23:30:21 +11:00
Lea Anthony 082af614ff Add GetEnvironment() - Fixes #1126 2022-02-04 07:52:45 +11:00
Lea Anthony 0c6864c7ed [windows] Fix pos/getpos calls 2022-02-04 07:45:44 +11:00
Lea Anthony dd20985952 Fix position runtime (#1125)
* [linux] Move SetTitle and startDrag to main thread

* [linux] Move SetPosition, Center, Fullscreen and UnFullscreen to main thread

* Fix runtime Window Get/Set Position signatures

* Fix vanilla template keyboard handling

* [windows] Fix pos/getpos calls
2022-02-04 07:26:54 +11:00
Lea Anthony 0971857e7e Fix position runtime (#1123)
* [linux] Move SetTitle and startDrag to main thread

* [linux] Move SetPosition, Center, Fullscreen and UnFullscreen to main thread

* Fix runtime Window Get/Set Position signatures

* Fix vanilla template keyboard handling
2022-02-03 21:42:14 +11:00
stffabi 6700a4e3bd [v2, windows] Bump winc (#1122)
Contains fixes for #1094 and resize constraining
2022-02-03 17:05:24 +11:00
Lea Anthony 6a5937bd90 [windows] Do not allow maximise via runtime if disableResize is true 2022-02-03 07:31:05 +11:00
Lea Anthony aa8a8f80f0 Fix logging bug in runtime 2022-02-02 20:42:30 +11:00
Lea Anthony e17f556c25 [windows] Update frameless border size to 6px 2022-02-01 20:18:57 +11:00
dependabot[bot] c190aaeddc Bump shelljs from 0.8.4 to 0.8.5 in /website (#1076)
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.8.4...v0.8.5)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-01 20:02:29 +11:00
Lea Anthony 4d0b0947d2 Fixes #1070 2022-02-01 19:47:46 +11:00
Lea Anthony 4afbf00e45 Update docusaurus version 2022-02-01 19:43:29 +11:00
Misitebao cd13a05270 feat(website): optimize and sync websites and documents (#1110)
* feat(website): update dependencies and optimize some terms

* docs: optimize english documents

* docs: sync documents

* chore(website): the website project adds the recommended configuration of the vscode plugin

* ensure data doesn't get garbage collected too soon (#1113)

* ensure data doesn't get garbage collected too soon

* Update v2/internal/frontend/desktop/linux/frontend.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* revert: undo lock-file changes

* Feature/v2 linux menus (#1114)

* Render menubar + text menu items

* Support disabled menuitems + callbacks

* Support checkboxes

* Support reusing checkboxes

* Support submenus

* Support Radio menuitems

* Support Menu Accelerators

* Support MenuUpdateApplicationMenu

* Fixes #1108 (#1115)

* chore(action): add auto sync script (#1109)

* Support RGBA, fix compilation error

* Fix fullscreen drag

* Ignore setenv error

* ensure data doesn't get garbage collected too soon (#1113)

* ensure data doesn't get garbage collected too soon

* Update v2/internal/frontend/desktop/linux/frontend.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Feature/v2 linux menus (#1114)

* Render menubar + text menu items

* Support disabled menuitems + callbacks

* Support checkboxes

* Support reusing checkboxes

* Support submenus

* Support Radio menuitems

* Support Menu Accelerators

* Support MenuUpdateApplicationMenu

* Fixes #1108 (#1115)

* chore(action): add auto sync script (#1109)

* Support RGBA, fix compilation error

* Fix fullscreen drag

* Ignore setenv error

* feat(website): update dependencies and optimize some terms

* docs: optimize english documents

* docs: sync documents

* chore(website): the website project adds the recommended configuration of the vscode plugin

* revert: undo lock-file changes

* [linux] better error handling

* [linux] Better Go 1.16 support

* [linux] Remove Go based dispatcher

* feat(website): update dependencies and optimize some terms

Co-authored-by: Travis McLane <tmclane@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-02-01 19:43:03 +11:00
Lea Anthony db9e0fd0d3 [linux] Remove Go based dispatcher 2022-01-31 21:22:17 +11:00
Lea Anthony 6a10bf4d98 [linux] Better Go 1.16 support 2022-01-31 21:21:48 +11:00
Lea Anthony a624ee5e35 [linux] better error handling 2022-01-30 21:03:39 +11:00
Lea Anthony be15644b96 Ignore setenv error 2022-01-29 11:42:17 +11:00
Lea Anthony f3783c9800 Fix fullscreen drag 2022-01-29 11:41:50 +11:00
Lea Anthony ac3808f9c3 Support RGBA, fix compilation error 2022-01-29 11:38:25 +11:00
Misitebao c5fb2b6143 chore(action): add auto sync script (#1109) 2022-01-29 10:40:08 +11:00
Lea Anthony 4a89508b50 Fixes #1108 (#1115) 2022-01-29 10:21:07 +11:00
Lea Anthony 30deec4224 Support MenuUpdateApplicationMenu 2022-01-29 10:13:29 +11:00
Lea Anthony 642fa42f25 Feature/v2 linux menus (#1114)
* Render menubar + text menu items

* Support disabled menuitems + callbacks

* Support checkboxes

* Support reusing checkboxes

* Support submenus

* Support Radio menuitems

* Support Menu Accelerators
2022-01-29 07:19:14 +11:00
Travis McLane e713c439f0 ensure data doesn't get garbage collected too soon (#1113)
* ensure data doesn't get garbage collected too soon

* Update v2/internal/frontend/desktop/linux/frontend.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-01-28 07:37:17 +11:00
Travis McLane ac69577182 remove unused import (#1107) 2022-01-27 07:01:29 +11:00
dependabot[bot] 46389d04f0 Bump path-parse from 1.0.6 to 1.0.7 in /v2/internal/runtime/js/runtime (#1099)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 20:09:27 +11:00
dependabot[bot] 3300a08c87 Bump y18n from 3.2.1 to 3.2.2 in /v2/internal/runtime/js/runtime (#1101)
Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

---
updated-dependencies:
- dependency-name: y18n
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 20:09:11 +11:00
dependabot[bot] 1db0ad6298 Bump hosted-git-info in /v2/internal/runtime/js/runtime (#1100)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

---
updated-dependencies:
- dependency-name: hosted-git-info
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 20:08:56 +11:00
dependabot[bot] 728739ed4c Bump path-parse in /v2/internal/runtime/js/runtime/src (#1102)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 20:08:37 +11:00
MikeSchaap 965187a8bb Updated windows window/frontend to fix issue with html select positioning (#1082)
* Updated windows window/frontend to fix issue with html select positioning

* Moved notifyParentWindowPositionChanged to the Window struct and moved RegMsgHandler to Run

* Update v2/internal/frontend/desktop/windows/window.go

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* Moved winc.RegMsgHandler back to old location

* fixed error with merge

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-01-26 18:48:39 +11:00
Lea Anthony aa88174c28 Add linux dialog screenshot 2022-01-26 18:36:33 +11:00
Lea Anthony 160b650833 Merge pull request #1089 from wailsapp/feature/fix-linux-dialogs
[linux] Fix dialogs
2022-01-26 18:27:20 +11:00
Lea Anthony c5036187c2 Merge branch 'master' into feature/fix-linux-dialogs 2022-01-26 14:18:12 +11:00
Lea Anthony 736d8b6b04 Update docs 2022-01-26 14:16:36 +11:00
Lea Anthony 7ede3ed08a [linux] 404 handling 2022-01-26 14:01:31 +11:00
Lea Anthony bb867832e1 Disable 404 handling for now 2022-01-26 09:55:12 +11:00
Lea Anthony f3cc4b5ebd Support message dialog 2022-01-25 16:27:39 -06:00
Lea Anthony c58252386f Support default directory, Fixed label, removed TreatPackagesAsDirectories 2022-01-25 16:27:39 -06:00
Travis McLane a7e516a43d [linux] implement SaveFileDialog 2022-01-25 16:27:39 -06:00
Travis McLane d0feeb938c implement SaveFileDialog 2022-01-25 16:27:39 -06:00
Travis McLane 2c2e053bd1 [linux] implement OpenDirectoryDialog 2022-01-25 16:27:39 -06:00
Travis McLane b7647b3992 allow action to be overridden by caller 2022-01-25 16:27:39 -06:00
Lea Anthony 1e5f8e03cb Tidy Up 2022-01-25 16:27:39 -06:00
Lea Anthony 4f3c14f25b Fix context issue 2022-01-25 16:27:39 -06:00
Lea Anthony 6c68e59113 Support OpenFile /
OpenMultipleFiles
2022-01-25 16:27:39 -06:00
Lea Anthony 6e30c6770b Tidy up and slight refactor 2022-01-25 16:27:39 -06:00
Travis McLane a2d447aecf implement opendialog as callback function 2022-01-25 16:27:39 -06:00
Travis McLane 3bcddd5b4c add function argument to ExecuteOnMainThread 2022-01-25 16:27:39 -06:00
Travis McLane b11964f0eb remove xlib thread initialization 2022-01-25 16:27:39 -06:00
Lea Anthony 1920a545f4 [linux] Dialogs WIP 2022-01-25 16:27:39 -06:00
Lea Anthony 5c24f8bf83 Merge pull request #1105 from stffabi/feature/webview2-datapath
[v2, windows] Add WebviewUserDataPath to windows options
2022-01-26 08:18:04 +11:00
stffabi b1c2065dfb [v2, windows] Add WebviewUserDataPath to windows options 2022-01-25 21:42:01 +01:00
stffabi ad28527a76 [v2] Bump go-webview2
Contains fixes for #1081, #1103, #1104
2022-01-25 20:24:26 +01:00
Lea Anthony 9d519a3a3f Merge pull request #1098 from stffabi/feature/fix-dpi-scaling
[v2, windows] Fix dpi scaling for factors other than 100%, 200%,...
2022-01-25 19:58:18 +11:00
stffabi fa6686361c [v2, windows] Fix dpi scaling for factors other than 100%, 200%,... 2022-01-25 08:48:53 +01:00
Lea Anthony cab268212c Merge pull request #1092 from albert-sun/1091-export-bindings
Added TypeScript interface export for the window.go object
2022-01-23 08:57:05 +11:00
Albert Sun f5c3907fac added interface{} test case and fixed 2022-01-22 10:23:02 -05:00
Albert Sun 4118f348f5 fixed generate test 2022-01-22 00:59:26 -05:00
Albert Sun 1e4af8991b added export 2022-01-22 00:40:55 -05:00
Lea Anthony 02ea108bea Merge pull request #1085 from stffabi/feature/improve-frameless
[v2] windows: Improve frameless window handling
2022-01-20 05:40:19 +11:00
stffabi 46d3288a50 [v2] windows: Improve frameless window handling
The following features are now supported for framless windows
- Allow aero snap
- Minimize and maximize animations
- Allow minimizing/restoring by clicking onto the taskbar icon
- If EnableFramelessBorder is used, the default application border with glass effect is used

Change: If a menu is used, it won't be displayed anymore if the window is frameless.
2022-01-19 14:54:29 +01:00
Lea Anthony 6aef92950a Merge pull request #1086 from wailsapp/feature/linux-callback
[linux] execute JS on main thread
2022-01-19 19:22:41 +11:00
Travis McLane cfcc6cfa1c [linux] execute JS on main thread 2022-01-18 21:31:08 -06:00
Lea Anthony e96410e714 Support -debug for wails build 2022-01-17 21:14:07 +11:00
Lea Anthony e08cdc22d1 v2.0.0-beta.29 2022-01-17 20:51:58 +11:00
Lea Anthony 15091310a6 Merge pull request #1074 from stffabi/feature/frameless-resizing
[v2] Only call EnableSizable for normal windows
2022-01-17 20:34:36 +11:00
stffabi dd4b0e189c [v2] Bump winc
Contains fixes for #1049, #1063 and #1083
2022-01-17 10:23:49 +01:00
stffabi c4b14740d5 [v2] Only call EnableSizable for normal windows
Frameless windows are always not resizable per default and
the resizing for those will be initiated by the frontend see
processMessage.

If EnableSizable is enabled for frameless windows, a small white
titlebar will be shown.

Fix #1049
2022-01-17 10:23:20 +01:00
Lea Anthony 140c78ecd1 Update sponsors 2022-01-16 14:48:17 +11:00
Lea Anthony 72a0936f49 v2.0.0-beta.28 2022-01-12 20:38:17 +11:00
Lea Anthony 8b7d4393dc Revert "WIP"
This reverts commit b07fd608b3.
2022-01-12 20:34:37 +11:00
Lea Anthony 1724912cd8 Update to latest winc. Fixes resize issue 2022-01-12 20:33:58 +11:00
Lea Anthony b07fd608b3 WIP 2022-01-12 20:29:20 +11:00
Lea Anthony 6eba8ec76f Merge pull request #1069 from redraskal/fix/v2-win-window-maximize
[v2] Fix: win window maximise/minimise
2022-01-12 19:30:43 +11:00
redraskal b32c5b7ba2 fix: [v2] win runtime.WindowMinimise() 2022-01-10 23:00:31 -06:00
redraskal 0593c29784 fix: [v2] win runtime.WindowMaximise() 2022-01-10 22:59:40 -06:00
Lea Anthony 0d402492db Merge pull request #1068 from BillBuilt/patch-1
Add templates for using Svelte with Vite
2022-01-11 07:08:04 +11:00
BillBuilt bcf7c4e035 Add templates for using Svelte with Vite
Add templates for using Svelte with Vite and optionally TailwindCSS v3
2022-01-10 13:10:43 -05:00
Lea\Anthony d9bacfc396 Update Sponsors 2022-01-10 20:49:28 +11:00
Lea Anthony f6d7ec3d50 Merge pull request #1059 from GargantuaX/master
update zh-hans docs
2022-01-06 06:28:35 +11:00
GargantuaX d2a116fe55 update zh-hans docs 2022-01-05 16:01:48 +08:00
Lea Anthony eb3cf9d130 Merge pull request #1058 from yesgs/master
add uos linux distro
2022-01-05 17:13:48 +11:00
king 7e2258be7d add uos linux distro 2022-01-05 11:13:34 +08:00
Lea Anthony bb5d446001 Merge pull request #1053 from pierrejoye/master
Allow window resizing regardless of frameless or other options (#1049)
2021-12-31 06:58:05 +11:00
Pierre Joye e9aba4795f Allow window resizing regardless of frameless or other options
Fix bug on Windows where the disableResize option depends on the frameless option.
2021-12-30 16:55:47 +07:00
Lea\Anthony c16bb9715f Fix for bad default directories in dialog options. Fixes #1052 2021-12-30 17:34:06 +11:00
Lea\Anthony 0f09e8d433 Fix signatures 2021-12-30 11:17:29 +11:00
Lea\Anthony f338dff171 Fix EventsOff in JS runtime 2021-12-29 09:11:12 +11:00
Lea\Anthony 3c6ed12637 New build flag: -debug 2021-12-29 06:54:52 +11:00
Lea Anthony e2f3a11a33 [mac] Fix for cancelling Dialogs. Fixes #1047 2021-12-28 20:04:30 +11:00
Lea Anthony 0571deb290 Merge pull request #1046 from buddyabaddon/master
Make linuxdb.yaml an embedded resource
2021-12-28 17:27:59 +11:00
Matt McKenzie 451b357e40 Make linuxdb.yaml an embedded resource 2021-12-27 18:22:03 -08:00
Lea\Anthony 84b67a8f53 Add -u flag to sync project go.mod with CLI version 2021-12-28 06:40:44 +11:00
Lea Anthony 448cf731bb [mac] Fix for Save Dialog 2021-12-27 20:09:03 +11:00
Lea\Anthony 9cb480f0f0 v2.0.0-beta.27 2021-12-27 19:40:56 +11:00
Lea\Anthony 6825a631f5 Commit MicrosoftEdgeWebview2Setup.exe 2021-12-27 19:40:19 +11:00
Lea\Anthony 39f91a030f v2.0.0-beta.26 2021-12-27 18:12:48 +11:00
Lea\Anthony 202e4d5be8 Actually commit sudo_mattn 2021-12-27 18:11:12 +11:00
Lea\Anthony 045e58778a Actually commit webview2runtime 2021-12-27 18:09:41 +11:00
Lea\Anthony e375d60c67 Updated modules 2021-12-27 05:23:18 +11:00
Lea\Anthony fcb5499d3a v2.0.0-beta.25 2021-12-27 05:21:17 +11:00
Lea\Anthony dd5a54a8e0 Remove replace line 2021-12-27 05:21:17 +11:00
Lea Anthony 9f24a46b8a Merge pull request #1042 from flin7/patch-1
Add template for React
2021-12-26 21:19:53 +11:00
flin7 d7eaab97dd Add template for React 2021-12-26 17:21:19 +08:00
Lea\Anthony a03d1e5ac5 v2.0.0-beta.24 2021-12-26 20:13:42 +11:00
Lea\Anthony d5d4d88481 [v2] Fix webview2 runtime detection. Fixes #1038 2021-12-26 19:24:59 +11:00
Lea\Anthony 1c823b09c4 [v2] Fix compile issue 2021-12-25 08:54:23 +11:00
Lea\Anthony e5732bcee1 [v2] Update to webview2runtime v1.3.0 2021-12-25 08:51:43 +11:00
Lea Anthony c0f283335a [mac] Fix for submenu titles. Fixes #1026. 2021-12-24 08:00:37 +11:00
Lea\Anthony 64cdf64751 [v2] export interfaces in runtime.d.ts 2021-12-23 06:27:49 +11:00
Lea Anthony 609bfc35c0 Update options.mdx 2021-12-22 21:17:46 +11:00
Lea\Anthony 121d11db55 [v2] Update sponsors 2021-12-22 06:36:18 +11:00
Lea\Anthony 5c357f012d [v2] Update context error 2021-12-22 06:28:47 +11:00
Lea\Anthony 56285f8637 [v2] Update docs 2021-12-21 08:53:48 +11:00
Lea Anthony b61158d329 Merge pull request #1030 from raitonoberu/patch-1
Add Svelte template
2021-12-21 08:04:23 +11:00
Denis 0233197073 Add wails-svelte-template 2021-12-20 20:40:42 +07:00
Lea\Anthony d883397d75 Update sponsors 2021-12-20 20:24:22 +11:00
Lea\Anthony 5bd82c4637 Update sponsors 2021-12-16 07:41:33 +11:00
Lea\Anthony e942867635 Update sponsors 2021-12-16 07:41:14 +11:00
Lea Anthony 29749ed7cb Merge pull request #1025 from AlienRecall/patch-1
Added react template
2021-12-16 07:35:22 +11:00
AlienRecall 0288f33556 Added react template 2021-12-15 13:53:25 +01:00
Lea\Anthony ddeac08991 v2.0.0-beta.23 2021-12-15 19:36:45 +11:00
Lea Anthony 30e12d681c [mac] Fix for save dialog 2021-12-15 19:16:43 +11:00
Lea Anthony f9fce9f2a7 Merge pull request #1024 from achhabra2/patch-1
Add Riftshare to community showcase
2021-12-15 06:15:16 +11:00
Aman Chhabra 9c5bb8c6eb Add Riftshare to community showcase 2021-12-14 07:22:35 -08:00
Lea Anthony f2ab409284 Update README.md 2021-12-13 20:40:50 +11:00
Lea\Anthony 7c190810fd Update easyweb logo 2021-12-13 20:40:03 +11:00
Lea\Anthony 2b2cd21674 Update sponsors 2021-12-13 20:32:55 +11:00
Lea Anthony f025234c85 Merge pull request #1021 from dedo1911/master
[v2] feature / Add flag to skip mod tidy
2021-12-13 05:58:53 +11:00
Dario Emerson 44035637f7 Add flag to skip mod tidy 2021-12-12 15:01:16 +01:00
Lea Anthony 008a5c70b9 [mac] Fix linking issue. Removed warnings. 2021-12-11 20:06:42 +11:00
Lea\Anthony 24eaef1604 [mac] fix dynamically linking UTIFramework during cgo build 2021-12-11 19:43:21 +11:00
Lea\Anthony 62adcab722 [mac] try dynamically linking UTIFramework during cgo build 2021-12-11 19:36:17 +11:00
Lea Anthony e12b630dfb [mac] Attempt to fix 10.14 compilation issue 2021-12-11 07:29:47 +11:00
Lea\Anthony 81b3ecb056 v1.16.9 2021-12-10 19:04:22 +11:00
Lea\Anthony b4d14644ee Only generate ico if not there 2021-12-10 19:04:10 +11:00
Lea\Anthony 69fd584c32 Update sponsors 2021-12-10 19:00:26 +11:00
Lea Anthony 3444ec50a7 Merge pull request #1017 from stffabi/feature/add-upx-info-windows
[docs] Add info about upx and antivirus vendors
2021-12-09 21:55:52 +11:00
stffabi 02d4c65e01 [docs] Add info about upx and antivirus vendors 2021-12-09 11:03:53 +01:00
Lea Anthony efdcfe9985 [v2] Remove AllowFiles & AllowDirectories 2021-12-09 08:16:45 +11:00
146 changed files with 9596 additions and 4794 deletions
@@ -1,10 +1,9 @@
name: Deploy mirror | 部署镜像
name: Sync upstream branch and deploy mirror | 同步上游分支并部署镜像
on:
push:
branches: [master]
# pull_request:
# branches: [ main ]
schedule:
- cron: "0 8,20 * * *"
workflow_dispatch:
jobs:
build-and-deploy:
@@ -20,6 +19,22 @@ jobs:
submodules: true
fetch-depth: 0
- name: Setup Git | 设置Git
run: |
git config --local user.email "i@misitebao.com"
git config --local user.name "misitebao"
- name: Add remote upstream repository and sync | 添加远程上游仓库并同步
run: |
git remote add upstream https://github.com/wailsapp/wails
git pull -v --progress --no-rebase "upstream" master
- name: Push | 推送
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
- name: Build Site | 构建网站
run: |
cd website &&
+19 -7
View File
@@ -107,7 +107,7 @@ Click [here](https://wails.io) if you are interested in trying out v2 Beta for W
This project is supported by these kind people / companies:
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="sponsors/silver%20sponsor.png" width="100"/>
<img src="/img/silver%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/letheanVPN" style="width:100px;">
<img src="https://github.com/letheanVPN.png?size=100" width="100"/>
@@ -115,7 +115,7 @@ This project is supported by these kind people / companies:
<br/>
<br/>
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="sponsors/bronze%20sponsor.png" width="100"/>
<img src="img/bronze%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/snider" style="width:100px;">
<img src="https://github.com/snider.png?size=100" width="100"/>
@@ -126,6 +126,9 @@ This project is supported by these kind people / companies:
<a href="https://github.com/CrackDavid" style="width:100px">
<img src="https://github.com/CrackDavid.png?size=100" width="100"/>
</a>
<a href="https://www.easywebadv.it/" style="width:100px">
<img src="website/static/img/easyweb.png" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/matryer" style="width:100px">
@@ -176,17 +179,26 @@ This project is supported by these kind people / companies:
<a href="https://github.com/ilgityildirim" style="width:50px">
<img src="https://github.com/ilgityildirim.png?size=50" width="50"/>
</a>
<a href="https://github.com/ondoki" style="width:65px">
<img src="https://github.com/ondoki.png?size=65" width="65"/>
</a>
<a href="https://github.com/questrail" style="width:50px">
<img src="https://github.com/questrail.png?size=50" width="50"/>
</a>
<a href="https://github.com/DonTomato" style="width:45px">
<img src="https://github.com/DonTomato.png?size=45" width="45"/>
</a>
<a href="https://github.com/taigrr" style="width:45px">
<img src="https://github.com/taigrr.png?size=45" width="45"/>
<a href="https://github.com/taigrr" style="width:55px">
<img src="https://github.com/taigrr.png?size=55" width="55"/>
</a>
<a href="https://github.com/charlie-dee" style="width:55px">
<img src="https://github.com/charlie-dee.png?size=55" width="55"/>
</a>
<a href="https://github.com/EdenNetworkItalia" style="width:65px">
<img src="https://github.com/EdenNetworkItalia.png?size=65" width="65"/>
</a>
<a href="https://github.com/michaelolson1996" style="width:55px">
<img src="https://github.com/michaelolson1996.png?size=55" width="55"/>
</a>
<a href="https://github.com/GargantuaX" style="width:45px">
<img src="https://github.com/GargantuaX.png?size=45" width="45"/>
</a>
<span id="nav-6"></span>
+19 -7
View File
@@ -110,7 +110,7 @@
这个项目由以下这些人或者公司支持:
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="sponsors/silver%20sponsor.png" width="100"/>
<img src="/img/silver%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/letheanVPN" style="width:100px;">
<img src="https://github.com/letheanVPN.png?size=100" width="100"/>
@@ -118,7 +118,7 @@
<br/>
<br/>
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="sponsors/bronze%20sponsor.png" width="100"/>
<img src="img/bronze%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/snider" style="width:100px;">
<img src="https://github.com/snider.png?size=100" width="100"/>
@@ -129,6 +129,9 @@
<a href="https://github.com/CrackDavid" style="width:100px">
<img src="https://github.com/CrackDavid.png?size=100" width="100"/>
</a>
<a href="https://www.easywebadv.it/" style="width:100px">
<img src="website/static/img/easyweb.png" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/matryer" style="width:100px">
@@ -179,17 +182,26 @@
<a href="https://github.com/ilgityildirim" style="width:50px">
<img src="https://github.com/ilgityildirim.png?size=50" width="50"/>
</a>
<a href="https://github.com/ondoki" style="width:65px">
<img src="https://github.com/ondoki.png?size=65" width="65"/>
</a>
<a href="https://github.com/questrail" style="width:50px">
<img src="https://github.com/questrail.png?size=50" width="50"/>
</a>
<a href="https://github.com/DonTomato" style="width:45px">
<img src="https://github.com/DonTomato.png?size=45" width="45"/>
</a>
<a href="https://github.com/taigrr" style="width:45px">
<img src="https://github.com/taigrr.png?size=45" width="45"/>
<a href="https://github.com/taigrr" style="width:55px">
<img src="https://github.com/taigrr.png?size=55" width="55"/>
</a>
<a href="https://github.com/charlie-dee" style="width:55px">
<img src="https://github.com/charlie-dee.png?size=55" width="55"/>
</a>
<a href="https://github.com/EdenNetworkItalia" style="width:65px">
<img src="https://github.com/EdenNetworkItalia.png?size=65" width="65"/>
</a>
<a href="https://github.com/michaelolson1996" style="width:55px">
<img src="https://github.com/michaelolson1996.png?size=55" width="55"/>
</a>
<a href="https://github.com/GargantuaX" style="width:45px">
<img src="https://github.com/GargantuaX.png?size=45" width="45"/>
</a>
<span id="nav-6"></span>
-10
View File
@@ -148,16 +148,6 @@ func (fs *FSHelper) LocalDir(dir string) (*Dir, error) {
}, err
}
// LoadRelativeFile loads the given file relative to the caller's directory
func (fs *FSHelper) LoadRelativeFile(relativePath string) ([]byte, error) {
_, filename, _, _ := runtime.Caller(0)
fullPath, err := filepath.Abs(filepath.Join(path.Dir(filename), relativePath))
if err != nil {
return nil, err
}
return os.ReadFile(fullPath)
}
// GetSubdirs will return a list of FQPs to subdirectories in the given directory
func (d *Dir) GetSubdirs() (map[string]string, error) {
+4
View File
@@ -74,6 +74,8 @@ const (
NixOS
// Artix linux distribution
ArtixLinux
//Uos distribution
Uos
)
// DistroInfo contains all the information relating to a linux distribution
@@ -190,6 +192,8 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = NixOS
case "artix":
result.Distribution = ArtixLinux
case "uos":
result.Distribution = Uos
default:
result.Distribution = Unknown
}
+5 -5
View File
@@ -1,11 +1,15 @@
package cmd
import (
_ "embed"
"log"
"gopkg.in/yaml.v3"
)
//go:embed linuxdb.yaml
var LinuxDBYaml []byte
// LinuxDB is the database for linux distribution data.
type LinuxDB struct {
Distributions map[string]*Distribution `yaml:"distributions"`
@@ -78,14 +82,10 @@ func (l *LinuxDB) GetDistro(distro string) *Distribution {
// NewLinuxDB creates a new LinuxDB instance from the bundled
// linuxdb.yaml file.
func NewLinuxDB() *LinuxDB {
data, err := fs.LoadRelativeFile("./linuxdb.yaml")
if err != nil {
log.Fatal("Could not load linuxdb.yaml")
}
result := LinuxDB{
Distributions: make(map[string]*Distribution),
}
err = result.ImportData(data)
err := result.ImportData(LinuxDBYaml)
if err != nil {
log.Fatal(err)
}
+9
View File
@@ -100,6 +100,15 @@ distributions:
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
uos:
id: uos
releases:
default:
version: default
name: Uos
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
void:
id: void
releases:
+6 -4
View File
@@ -313,10 +313,12 @@ func (b *PackageHelper) PackageWindows(po *ProjectOptions, cleanUp bool) error {
return err
}
// Generate icon from PNG
err = generateWindowsIcon(icon, basename+".ico")
if err != nil {
return err
// Generate icon from PNG if it doesn't exist
if !fs.FileExists(basename + ".ico") {
err = generateWindowsIcon(icon, basename+".ico")
if err != nil {
return err
}
}
// Copy manifest
+1 -1
View File
@@ -278,7 +278,7 @@ func CheckDependencies(logger *Logger) (bool, error) {
distroInfo := GetLinuxDistroInfo()
switch distroInfo.Distribution {
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian, PopOS:
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian, PopOS, Uos:
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM, EndeavourOS, ArtixLinux:
libraryChecker = PacmanInstalled
+1 -1
View File
@@ -1,4 +1,4 @@
package cmd
// Version - Wails version
const Version = "v1.16.8"
const Version = "v1.16.9"

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

@@ -15,8 +15,6 @@ The build command processes the Wails project and generates an application binar
| -ldflags "custom ld flags" | Use given ldflags | |
| -o path/to/binary | Compile to given path/filename | |
| -k | Keep generated assets | |
| -package | Create a platform specific package | |
| -production | Compile in production mode: -ldflags="-w -s" + "-h windows" on Windows | |
| -tags | Build tags to pass to Go compiler (quoted and space separated) | |
| -upx | Compress final binary with UPX (if installed) | |
| -upxflags "custom flags" | Flags to pass to upx | |
@@ -36,13 +34,13 @@ The build process is as follows:
- The frontend is then built. This command is read from the project file `wails.json` under the key `frontend:install` and executed in the `frontend` directory. If this is not defined, it is ignored.
- The project directory is checked to see if the `build` directory exists. If not, it is created and default project assets are copied to it.
- An asset bundle is then created by reading the `html` key from `wails.json` and loading the referenced file. This is then parsed, looking for local Javascript and CSS references. Those files are in turn loaded into memory, converted to C data and saved into the asset bundle located at `build/assets.h`, which also includes the original HTML.
- The application icon is then processed: if there is no `build/appicon.png`, a default icon is copied. On Windows, an `app.ico` file is generated from this png. On Mac, `icons.icns` is generated.
- If there are icons in the `build/tray` directory, these are processed, converted to C data and saved as `build/trayicons.h`, ready for the compilation step.
- If there are icons in the `build/dialog` directory, these are processed, converted to C data and saved as `build/userdialogicons.h`, ready for the compilation step.
- If the `-package` flag is given for a Windows target, the Windows assets in the `build/windows` directory are processed: manifest + icons compiled to a `.syso` file (deleted after compilation).
- If we are building a universal binary for Mac, the application is compiled for both `arm64` and `amd64`. The `lipo` tool is then executed to create the universal binary.
- The application icon is then processed: if there is no `build/appicon.png`, a default icon is copied. On Windows,
an `app.ico` file is generated from this png. On Mac, `icons.icns` is generated.
- The platform assets in the `build/<platform>` directory are processed: manifest + icons compiled to a `.syso` file (
deleted after compilation), `info.plist` copied to `.app` on Mac.
- If we are building a universal binary for Mac, the application is compiled for both `arm64` and `amd64`. The `lipo`
tool is then executed to create the universal binary.
- If we are not building a universal binary for Mac, the application is built using `go build`, using build tags to indicate type of application and build mode (debug/production).
- If the `-upx` flag was provided, `upx` is invoked to compress the binary. Custom flags may be provided using the `-upxflags` flag.
- If the `package` flag is given for a non Windows target, the application is bundled for the platform. On Mac, this creates a `.app` with the processed icons, the `Info.plist` in `build/darwin` and the compiled binary.
+170 -67
View File
@@ -11,11 +11,13 @@ import (
"text/tabwriter"
"time"
"github.com/wailsapp/wails/v2/internal/colour"
"github.com/wailsapp/wails/v2/internal/project"
"github.com/wailsapp/wails/v2/internal/system"
"github.com/wailsapp/wails/v2/cmd/wails/internal"
"github.com/wailsapp/wails/v2/internal/gomod"
"github.com/wailsapp/wails/v2/internal/system"
"github.com/leaanthony/clir"
"github.com/leaanthony/slicer"
"github.com/wailsapp/wails/v2/pkg/clilogger"
@@ -38,6 +40,9 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
compilerCommand := "go"
command.StringFlag("compiler", "Use a different go compiler to build, eg go1.15beta1", &compilerCommand)
skipModTidy := false
command.BoolFlag("m", "Skip mod tidy before compile", &skipModTidy)
compress := false
command.BoolFlag("upx", "Compress final binary with UPX (if installed)", &compress)
@@ -45,8 +50,14 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
command.StringFlag("upxflags", "Flags to pass to upx", &compressFlags)
// Setup Platform flag
platform := runtime.GOOS
command.StringFlag("platform", "Platform to target", &platform)
platform := runtime.GOOS + "/"
if system.IsAppleSilicon {
platform += "arm64"
} else {
platform += runtime.GOARCH
}
command.StringFlag("platform", "Platform to target. Comma separate multiple platforms", &platform)
// Verbosity
verbosity := 1
@@ -76,6 +87,12 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
forceBuild := false
command.BoolFlag("f", "Force build application", &forceBuild)
updateGoMod := false
command.BoolFlag("u", "Updates go.mod to use the same Wails version as the CLI", &updateGoMod)
debug := false
command.BoolFlag("debug", "Retains debug data in the compiled application", &debug)
command.Action(func() error {
quiet := verbosity == 0
@@ -93,28 +110,6 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
app.PrintBanner()
}
// Check platform
validPlatformArch := slicer.String([]string{
"darwin",
"darwin/amd64",
"darwin/arm64",
"darwin/universal",
"linux",
//"linux/amd64",
//"linux/arm-7",
"windows",
"windows/amd64",
"windows/arm64",
})
if !validPlatformArch.Contains(platform) {
return fmt.Errorf("platform %s is not supported. Platforms supported: %s", platform, validPlatformArch.Join(","))
}
if compress && platform == "darwin/universal" {
logger.Println("Warning: compress flag unsupported for universal binaries. Ignoring.")
compress = false
}
// Lookup compiler path
compilerPath, err := exec.LookPath(compilerCommand)
if err != nil {
@@ -157,16 +152,28 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
}
}
mode := build.Production
modeString := "Production"
if debug {
mode = build.Debug
modeString = "Debug"
}
var targets slicer.StringSlicer
targets.AddSlice(strings.Split(platform, ","))
targets.Deduplicate()
// Create BuildOptions
buildOptions := &build.Options{
Logger: logger,
OutputType: outputType,
OutputFile: outputFilename,
CleanBuildDirectory: cleanBuildDirectory,
Mode: build.Production,
Mode: mode,
Pack: !noPackage,
LDFlags: ldflags,
Compiler: compilerCommand,
SkipModTidy: skipModTidy,
Verbosity: verbosity,
ForceBuild: forceBuild,
IgnoreFrontend: skipFrontend,
@@ -176,70 +183,136 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
WebView2Strategy: wv2rtstrategy,
}
// Calculate platform and arch
platformSplit := strings.Split(platform, "/")
buildOptions.Platform = platformSplit[0]
if system.IsAppleSilicon {
buildOptions.Arch = "arm64"
} else {
buildOptions.Arch = runtime.GOARCH
}
if len(platformSplit) == 2 {
buildOptions.Arch = platformSplit[1]
}
// Start a new tabwriter
w := new(tabwriter.Writer)
w.Init(os.Stdout, 8, 8, 0, '\t', 0)
// Write out the system information
fmt.Fprintf(w, "\n")
fmt.Fprintf(w, "App Type: \t%s\n", buildOptions.OutputType)
fmt.Fprintf(w, "Platform: \t%s\n", buildOptions.Platform)
fmt.Fprintf(w, "Arch: \t%s\n", buildOptions.Arch)
fmt.Fprintf(w, "Platforms: \t%s\n", platform)
fmt.Fprintf(w, "Compiler: \t%s\n", compilerPath)
fmt.Fprintf(w, "Build Mode: \t%s\n", modeString)
fmt.Fprintf(w, "Skip Frontend: \t%t\n", skipFrontend)
fmt.Fprintf(w, "Compress: \t%t\n", buildOptions.Compress)
fmt.Fprintf(w, "Package: \t%t\n", buildOptions.Pack)
fmt.Fprintf(w, "Clean Build Dir: \t%t\n", buildOptions.CleanBuildDirectory)
fmt.Fprintf(w, "LDFlags: \t\"%s\"\n", buildOptions.LDFlags)
fmt.Fprintf(w, "Tags: \t[%s]\n", strings.Join(buildOptions.UserTags, ","))
if len(buildOptions.OutputFile) > 0 {
if len(buildOptions.OutputFile) > 0 && targets.Length() == 1 {
fmt.Fprintf(w, "Output File: \t%s\n", buildOptions.OutputFile)
}
fmt.Fprintf(w, "\n")
w.Flush()
err = checkGoModVersion(logger)
err = checkGoModVersion(logger, updateGoMod)
if err != nil {
return err
}
return doBuild(buildOptions)
cwd, err := os.Getwd()
if err != nil {
return err
}
projectOptions, err := project.Load(cwd)
// Check platform
validPlatformArch := slicer.String([]string{
"darwin",
"darwin/amd64",
"darwin/arm64",
"darwin/universal",
"linux",
"linux/amd64",
"linux/arm64",
"windows",
"windows/amd64",
"windows/arm64",
})
targets.Each(func(platform string) {
if !validPlatformArch.Contains(platform) {
buildOptions.Logger.Println("platform '%s' is not supported - skipping. Supported platforms: %s", platform, validPlatformArch.Join(","))
return
}
desiredFilename := projectOptions.OutputFilename
if desiredFilename == "" {
desiredFilename = projectOptions.Name
}
desiredFilename = strings.TrimSuffix(desiredFilename, ".exe")
// Calculate platform and arch
platformSplit := strings.Split(platform, "/")
buildOptions.Platform = platformSplit[0]
if system.IsAppleSilicon {
buildOptions.Arch = "arm64"
} else {
buildOptions.Arch = runtime.GOARCH
}
if len(platformSplit) == 2 {
buildOptions.Arch = platformSplit[1]
}
banner := "Building target: " + platform
logger.Println(banner)
logger.Println(strings.Repeat("-", len(banner)))
if compress && platform == "darwin/universal" {
logger.Println("Warning: compress flag unsupported for universal binaries. Ignoring.")
compress = false
}
switch buildOptions.Platform {
case "darwin":
if runtime.GOOS != "darwin" {
logger.Println("Crosscompiling to Mac not currently supported.\n")
return
}
macTargets := targets.Filter(func(platform string) bool {
return strings.HasPrefix(platform, "darwin")
})
if macTargets.Length() == 2 {
buildOptions.BundleName = fmt.Sprintf("%s-%s.app", desiredFilename, buildOptions.Arch)
}
}
if targets.Length() > 1 {
// target filename
switch buildOptions.Platform {
case "windows":
desiredFilename = fmt.Sprintf("%s-%s", desiredFilename, buildOptions.Arch)
case "linux", "darwin":
desiredFilename = fmt.Sprintf("%s-%s-%s", desiredFilename, buildOptions.Platform, buildOptions.Arch)
}
}
if buildOptions.Platform == "windows" {
desiredFilename += ".exe"
}
buildOptions.OutputFile = desiredFilename
// Start Time
start := time.Now()
outputFilename, err := build.Build(buildOptions)
if err != nil {
logger.Println("Error: ", err.Error())
return
}
// Subsequent iterations
buildOptions.IgnoreFrontend = true
buildOptions.CleanBuildDirectory = false
// Output stats
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.\n", outputFilename, time.Since(start).Round(time.Millisecond).String()))
})
return nil
})
}
// doBuild is our main build command
func doBuild(buildOptions *build.Options) error {
// Start Time
start := time.Now()
outputFilename, err := build.Build(buildOptions)
if err != nil {
return err
}
// Output stats
elapsed := time.Since(start)
buildOptions.Logger.Println("")
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.", outputFilename, elapsed.Round(time.Millisecond).String()))
buildOptions.Logger.Println("")
return nil
}
func checkGoModVersion(logger *clilogger.CLILogger) error {
func checkGoModVersion(logger *clilogger.CLILogger, updateGoMod bool) error {
cwd, err := os.Getwd()
if err != nil {
return err
@@ -261,6 +334,36 @@ func checkGoModVersion(logger *clilogger.CLILogger) error {
return err
}
logger.Println("Warning: go.mod is using Wails '%s' but the CLI is '%s'. Consider updating it.\n", gomodversion.String(), internal.Version)
if updateGoMod {
return syncGoModVersion(cwd)
}
logger.Println("Warning: go.mod is using Wails '%s' but the CLI is '%s'. Consider updating your project's `go.mod` file.\n", gomodversion.String(), internal.Version)
return nil
}
func LogGreen(message string, args ...interface{}) {
text := fmt.Sprintf(message, args...)
println(colour.Green(text))
}
func syncGoModVersion(cwd string) error {
gomodFilename := filepath.Join(cwd, "go.mod")
gomodData, err := os.ReadFile(gomodFilename)
if err != nil {
return err
}
outOfSync, err := gomod.GoModOutOfSync(gomodData, internal.Version)
if err != nil {
return err
}
if !outOfSync {
return nil
}
LogGreen("Updating go.mod to use Wails '%s'", internal.Version)
newGoData, err := gomod.UpdateGoModVersion(gomodData, internal.Version)
if err != nil {
return err
}
return os.WriteFile(gomodFilename, newGoData, 0755)
}
@@ -1,9 +1,8 @@
package generate
import (
"io"
"github.com/wailsapp/wails/v2/cmd/wails/internal/commands/generate/template"
"io"
"github.com/leaanthony/clir"
)
@@ -17,6 +16,7 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
if err != nil {
return err
}
template.AddSubCommand(app, command, w)
return nil
@@ -4,13 +4,12 @@
About your template
## Building
To build this project in debug mode, use `wails build`. For production, use `wails build -production`.
To generate a platform native package, add the `-package` flag.
## Live Development
To run in live development mode, run `wails dev` in the project directory. In another terminal, go into the `frontend`
directory and run `npm run dev`. The frontend dev server will run on http://localhost:34115. Connect to this
in your browser and connect to your application.
To run in live development mode, run `wails dev` in the project directory. In another terminal, go into the `frontend`
directory and run `npm run dev`. The frontend dev server will run on http://localhost:34115. Connect to this in your
browser and connect to your application.
## Building
To build a redistributable, production mode package, use `wails build`.
@@ -22,7 +22,6 @@ github.com/leaanthony/go-common-file-dialog v1.0.3 // indirect
github.com/leaanthony/go-webview2 v0.0.0-20210914103035-f00aa774a934 // indirect
github.com/leaanthony/slicer v1.5.0 // indirect
github.com/leaanthony/typescriptify-golang-structs v0.1.7 // indirect
github.com/leaanthony/webview2runtime v1.1.0 // indirect
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 // indirect
github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2 // indirect
github.com/pkg/errors v0.9.1 // indirect
@@ -90,8 +90,6 @@ github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0H
github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY=
github.com/leaanthony/typescriptify-golang-structs v0.1.7 h1:yoznzWzyxkO/iWdlpq+aPcuJ5Y/hpjq/lmgMFmpjwl0=
github.com/leaanthony/typescriptify-golang-structs v0.1.7/go.mod h1:cWtOkiVhMF77e6phAXUcfNwYmMwCJ67Sij24lfvi9Js=
github.com/leaanthony/webview2runtime v1.1.0 h1:N0pv55ift8XtqozIp4PNOtRCJ/Qdd/qzx80lUpalS4c=
github.com/leaanthony/webview2runtime v1.1.0/go.mod h1:hH9GnWCve3DYzNaPOcPbhHQ7fodXR1QJNsnwixid4Tk=
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 h1:5iOd93PZbpH4Iir8QkC4coFD+zEQEZSIRcjwjTFZkr0=
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18/go.mod h1:KEbMsKoznsebyGHwLk5LqkFOxL5uXSRdvpP4+avmAMs=
github.com/leaanthony/winicon v1.0.0/go.mod h1:en5xhijl92aphrJdmRPlh4NI1L6wq3gEm0LpXAPghjU=
@@ -22,7 +22,6 @@ github.com/leaanthony/go-common-file-dialog v1.0.3 // indirect
github.com/leaanthony/go-webview2 v0.0.0-20210914103035-f00aa774a934 // indirect
github.com/leaanthony/slicer v1.5.0 // indirect
github.com/leaanthony/typescriptify-golang-structs v0.1.7 // indirect
github.com/leaanthony/webview2runtime v1.1.0 // indirect
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 // indirect
github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2 // indirect
github.com/pkg/errors v0.9.1 // indirect
@@ -91,8 +91,6 @@ github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0H
github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY=
github.com/leaanthony/typescriptify-golang-structs v0.1.7 h1:yoznzWzyxkO/iWdlpq+aPcuJ5Y/hpjq/lmgMFmpjwl0=
github.com/leaanthony/typescriptify-golang-structs v0.1.7/go.mod h1:cWtOkiVhMF77e6phAXUcfNwYmMwCJ67Sij24lfvi9Js=
github.com/leaanthony/webview2runtime v1.1.0 h1:N0pv55ift8XtqozIp4PNOtRCJ/Qdd/qzx80lUpalS4c=
github.com/leaanthony/webview2runtime v1.1.0/go.mod h1:hH9GnWCve3DYzNaPOcPbhHQ7fodXR1QJNsnwixid4Tk=
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 h1:5iOd93PZbpH4Iir8QkC4coFD+zEQEZSIRcjwjTFZkr0=
github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18/go.mod h1:KEbMsKoznsebyGHwLk5LqkFOxL5uXSRdvpP4+avmAMs=
github.com/leaanthony/winicon v1.0.0/go.mod h1:en5xhijl92aphrJdmRPlh4NI1L6wq3gEm0LpXAPghjU=

Some files were not shown because too many files have changed in this diff Show More