Compare commits

..

111 Commits

Author SHA1 Message Date
Lea Anthony 7d1acfaabd Fix crowdin client code 2022-12-29 12:23:34 +11:00
Lea Anthony 4db4149cde Merge remote-tracking branch 'origin/release/v2.3.0' into release/v2.3.0 2022-12-29 11:56:50 +11:00
Lea Anthony 26dd9f59ba Update changelog 2022-12-29 11:54:55 +11:00
Lea Anthony 9e7f793b31 v2.3.0 docs 2022-12-29 11:54:55 +11:00
Oleg Gulevskyy fff0fd4d07 Website / Documentation - Slack to Discord (#2200)
* change slack to discord in footer

* change Slack to Discord in community guideline
2022-12-29 11:54:18 +11:00
Lea Anthony af03b83b54 Update changelog 2022-12-29 11:52:37 +11:00
Lea Anthony 6192ef2594 v2.3.0 docs 2022-12-29 11:40:55 +11:00
Oleg Gulevskyy d11b459486 refactor crowdin init to not throw without key (#2231) 2022-12-29 10:51:49 +11:00
Adam Tenderholt 52f872b65c [binding] TS returns Promise<void> when go returns error (#2247) 2022-12-28 22:32:29 +11:00
github-actions[bot] 0474a9e89a chore: update sponsors.svg (#2236)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-26 16:00:25 +11:00
stffabi 2345d3b3c2 [assetHandler] Add request path checks (#2235) 2022-12-24 18:45:07 +11:00
stffabi a312c0ffcb [darwin] Add support for Request/Response streaming (#2219) 2022-12-20 13:44:33 +01:00
Vadim Shchepotev e2f1429c67 Fix issue with anonymous structures (#2186)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-20 22:54:11 +11:00
NullCode 04e92a813b Update libwebkit package name for Fedora (#2218)
* Update libwebkit package name for Fedora

Fixes issue with `wails doctor` not detecting updated version of libwebkit on Fedora

* Keep existing libwebkit package

...for backwards compatibility

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-20 22:53:36 +11:00
Lea Anthony d588c7a4d2 Bugfix/sync go mod (#2222)
* Add nosyncgomod flag

* Fix tests on unix

* Fix tests on unix
2022-12-20 22:15:36 +11:00
Lea Anthony 8067a1cedb Add nosyncgomod flag (#2215)
* Add nosyncgomod flag

* Fix tests on unix
2022-12-20 22:08:02 +11:00
stffabi 7d61971f86 [darwin] Add support for file input selection (#2209)
This will show a message on the console
"+[CATransaction synchronize] called within transaction"
but there's seem no way to mitigate that. Still everything
works as expected.
2022-12-15 11:18:13 +01:00
github-actions[bot] aa5875e8ca chore: update sponsors.svg (#2207)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-15 20:57:34 +11:00
Oleg Gulevskyy 6b110c83e9 basic check if a specific commit is in use (#2107) 2022-12-14 23:06:37 +11:00
stffabi 006b0c65b4 [webview2loader] Add missing windows build constraint (#2201) 2022-12-13 13:51:01 +01:00
stffabi 55ca6c0bf3 [dev] Remove redundant steps that are also executed during build.Build (#2196)
* Remove redundant generation of bindings
* Remove redundant CreateEmbedDirectories
2022-12-13 13:44:00 +01:00
stffabi 4aab1e6b93 [webview2loader] Promote go loader from experimental to stable (#2199)
Default webview2loader is now the go loader
2022-12-13 23:27:50 +11:00
Lea Anthony e57bfe002a Fix right mouse button event (#2190) 2022-12-13 07:09:45 +11:00
Matt Holt 38ffbb3161 Trim spaces around version (#2197)
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-12-12 20:40:02 +01:00
stffabi eb2d929824 [bindings] Pass ts_generation flags as env variable (#2194)
Otherwise this will clash if an app also uses flags internally
2022-12-11 07:38:06 +11:00
Vadim Shchepotev 7a22e0f885 Add dummy systray_mac to fix unit tests (#2187) 2022-12-10 19:57:11 +01:00
tk 3f077d9bdb Update templates.mdx (#2184)
Add wails-template-naive
2022-12-07 18:50:22 +11:00
Lea Anthony b84a2e5255 Windows tray menus (#2181)
* Add example

* Add windows systray

* Add gitkeep

* use windows.GUID
2022-12-06 20:55:56 +11:00
dependabot[bot] 0581ad03b1 Bump minimatch from 3.0.4 to 3.1.2 in /runtime/js (#2164)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 08:29:08 +11:00
dependabot[bot] 81aa376b09 Bump decode-uri-component from 0.2.0 to 0.2.2 in /runtime/js (#2179)
* Bump decode-uri-component from 0.2.0 to 0.2.2 in /runtime/js

Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

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

* Update build-and-test.yml

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 08:28:36 +11:00
Travis McLane d2339de5ff chore: remove unreachable code (#2182)
pkg/menu/styledlabel.go:255:2: unreachable code
2022-12-06 08:27:48 +11:00
Misite Bao f70d9de366 fix: fix go test errors (#2169)
* fix: fix go test errors

* Add flags to mac test

* Run on all branches

* Update PR workflow

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 06:45:06 +11:00
github-actions[bot] 606ce3de1d chore: update sponsors.svg (#2180)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-04 14:05:37 +11:00
Lea Anthony 76f68aa392 Update sponsor-image workflow 2022-12-04 14:03:43 +11:00
Misite Bao 6d6e74e7f0 chore: fix-generate-sponsor (#2177)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-04 13:58:08 +11:00
Lea Anthony 51b3488eac Update build-and-test.yml 2022-12-04 13:26:58 +11:00
希嘉嘉 026bb7c02c Added templates (#2178)
* Added  templates

vite + solid + js 
vite + solid + ts

* Update templates.mdx

Co-authored-by: Misite Bao <i@misitebao.com>
2022-12-04 09:30:28 +11:00
github-actions[bot] 5262153fa8 docs: sync documents (#2170)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2022-12-03 22:32:08 +11:00
Fredrik Holmqvist 53f63f71a0 examples/customlayout: feature: add event listener for enter key (#2176) 2022-12-03 10:16:46 +11:00
Lea Anthony dc209d1462 Fix build and test pipeline 2022-12-02 07:52:13 +11:00
Misite Bao c1c1b8b8e6 chore: update-workflows (#2154)
* chore: merge test workflow

* chore: simplify sponsors image generation workflow

* chore: merge PR check workflow

* chore: merge push workflow

* chore: add auto sync translation document workflow

* chore: remove PR branch name check job

* chore: update go test job
2022-12-02 07:05:22 +11:00
stffabi 5cc012d763 [darwin] Inspector tools should also be included into a debug build (#2162) 2022-12-01 09:20:18 +01:00
Misite Bao bd66451dd9 docs: fix and sync documents (#2140) 2022-12-01 19:18:59 +11:00
Lea Anthony ea6aee91f1 Refactored build command (#2123)
* Refactored build command

* Update v2/cmd/wails/build.go

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

* WIP

* Refactor `wails doctor`

* Refactor `wails dev`

* Refactor `wails dev`

* Fix merge conflict

* Fix test

* Update build_and_test.yml

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-12-01 18:18:02 +11:00
github-actions[bot] 9d53db4281 chore: update sponsors.svg (#2150)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-01 12:27:11 +11:00
stffabi 5418b879c4 [linux] Add support for WebKit2GTK 2.36+ features (#2151) 2022-11-30 11:04:12 +01:00
Lea Anthony 7f8952ebe5 Fix signal handler (#2152)
* Fix signal handler

* Update changelog
2022-11-30 20:37:55 +11:00
Aman ac1e150315 Initial Mac App Store Guide (#2142)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-29 20:03:45 +11:00
stffabi 3fb9169196 Fix compile error (#2147) 2022-11-29 20:01:42 +11:00
stffabi 993f87af97 [assetserver] Add support for serving the index.html file when requesting a directory (#2110)
* [assets] Improve error message if no `index.html` could be found in the assets

* [assetoptions] Valide options that at least one property has been set

* [assetserver] Move defaultHTML handling for 404 from assethandler to assetserver

* [assetserver] Add support for serving the index.html file when requesting a directory

* [docs] Update changelog
2022-11-29 09:29:08 +01:00
Misite Bao 15b7d291f3 fix(cli): fix install error (#2146)
Fixed: https://github.com/wailsapp/wails/issues/2145
2022-11-29 19:26:49 +11:00
Misite Bao 73caeb9793 docs: fix and sync documents (#2135)
* docs: standardize JavaScript and TypeScript name writing

* docs: sync translated documents

* docs: fix broken link

* docs: sync translated documents
2022-11-28 20:13:22 +11:00
github-actions[bot] 6d975b965b chore: update sponsors.svg (#2131)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-28 12:55:39 +11:00
Lea Anthony 6cd5edcc4d More clarity around bug reports 2022-11-25 14:50:05 +11:00
Lea Anthony 3e8ae9835b Small update to Mac troubleshooting guide 2022-11-24 21:38:16 +11:00
Oleg Gulevskyy ca8a1fab36 Ability to define prefix / suffix for TS module (#2101)
* add tspostfix and tsprefix flags + organise under struct

* postifx -> suffix

* tsPrefix options on bindings struct

* pass prefix and suffix to the executable

* add support for CLI flags for generating module

* method to set TSpref/suff to bindings

* use passed ts prefix for typescriptify

* add brief Readme udpate to include new flags

* create reusable common flags

* use common flags instead of hardcoded text

* support tsprefix & suffix for dev

* add tsPrefix & tsSuffix for build cmd

* take pref & suff in account when gen d.ts

* export colorsful log functions into utils for reuse

* detect and warn the user about usage of reserved keyword

* fmt

* add TrimSpace on fn input

* refactor utils -> logutils

* add bindings -> ts_generation options to wailsjson parse

* use wailsjson for ts generation

* update warning message + extract to func

* remove suff/pref info from readme

* update json schema

* add tests for prefix and suffix case

* rename suffix method

* Update v2/internal/typescriptify/typescriptify.go

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

* Update website/static/schemas/config.v2.json

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

* Update website/static/schemas/config.v2.json

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

* update changelog

* Minor tweaks

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-24 21:33:58 +11:00
Lea Anthony c1c1bff7a4 Update changelog.mdx 2022-11-24 06:13:24 +11:00
Dieter Zhu 011d8e3094 Supplement the missing WindowSetAlwaysOnTop in runtime.d.ts and runtime.js (#2128) 2022-11-24 06:08:15 +11:00
stffabi 72aef804ef [windows] Prevent a thin white line at the bottom of a frameless window (#2111)
This seems to be only a problem on some Windows versions.
2022-11-22 20:37:45 +11:00
Misite Bao d0b403b9b8 docs: fix and sync documents (#2119)
* docs: fix Russian documents

* docs: sync French documents
2022-11-22 18:34:04 +11:00
dependabot[bot] a1bff912a0 Bump loader-utils from 1.4.1 to 1.4.2 in /runtime/js (#2115)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22 05:34:10 +11:00
Misite Bao 51a12131a4 feat(website): add translation progress (#2113)
* feat(website): add translation progress

* feat(website): add French and Portuguese to language list

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-21 22:19:34 +11:00
Misite Bao 91de3ab0c5 docs: update and sync documents (#2112)
* docs: update options documentation

* docs: sync documents

* docs: sync Korean, Russian, French and Portuguese documents

* docs: sync Chinese, Japanese and Korean documents
2022-11-21 22:13:43 +11:00
Oleg Gulevskyy b3d7682efc Fix multiple nested build/bin folders in dev mode (#2103)
* stop circular assigning to OutputFilename

* update changelog

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-19 10:04:46 +11:00
Misite Bao ec56f8807f docs: sync documents (#2083) 2022-11-18 22:11:25 +11:00
github-actions[bot] 8850b453d9 chore: update sponsors.svg (#2106)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-18 22:10:45 +11:00
Marvin Collins Hosea a8bbce6a12 React Hash Router Links returns 404 (#2050)
The linked Hash Router link is not valid anymore and returns a 404.

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-17 20:19:24 +11:00
Christian Kilb 66dd310823 Update obfuscated.mdx (#2102)
Fixed a typo.
2022-11-17 20:01:54 +11:00
juju 29acbe3079 Update events.mdx (#2105) 2022-11-17 20:01:02 +11:00
cybertramp ec82739df1 docs: Add README.ko.md (#2093)
* docs: Add README.ko.md

- Add korean version README
- Update 'README.ko.md' link in README.md

* Update README.zh-Hans.md

* Update README.ja.md

Co-authored-by: Misite Bao <i@misitebao.com>
2022-11-17 05:40:59 +11:00
stffabi 177d90497a [assetserver] Add support for range requests if the fs.FS provides an io.Seeker (#2091)
This allows streaming audio and videos with range requests if the
platform webview supports it.
2022-11-15 07:19:25 +11:00
stffabi efd209b7c5 [darwin] Show Xcode version in wails doctor (#2089) 2022-11-14 20:11:07 +11:00
Lea Anthony 236570909c Rename bleeding edge -> local development (#2086) 2022-11-13 22:44:50 +11:00
stffabi 0607777bec [darwin, inspector] Fix build (#2082) 2022-11-12 21:02:53 +11:00
stffabi f6e46ac1c3 [debug] Introducing debug options for debug builds to allow opening the inspector on startup (#2080) 2022-11-12 19:51:54 +11:00
Antonio Cheong e3e20bdb42 Reference NSIS as optional dependency and provide more info (#2070)
* Update system.go

* Update installation.mdx

* Update base docs
2022-11-12 18:36:57 +11:00
stffabi 6d0ae669f9 [dev] Fix noreload flag and only skip reloads triggered by assetdir (#2081) 2022-11-12 17:08:54 +11:00
Misite Bao 8c4c4a9df3 docs: sync documents (#2073)
* docs: fix document formatting

* docs: sync documents
2022-11-12 08:30:16 +11:00
github-actions[bot] fc312a5f04 chore: update sponsors.svg (#2077)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-11 23:46:30 +11:00
Lea Anthony d77b920ed5 Merge branch 'release/v2.2.0' 2022-11-09 22:33:01 +11:00
dependabot[bot] 4b57d55db2 Bump loader-utils from 1.4.0 to 1.4.1 in /runtime/js (#2068)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.1/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-09 22:29:37 +11:00
Lea Anthony 67e2a4bdeb Update docs and changelog 2022-11-09 22:26:22 +11:00
Lea Anthony f7c602c212 Update docs and changelog 2022-11-09 22:06:10 +11:00
Lea Anthony 0a7293d6b6 Update runtime 2022-11-09 21:22:32 +11:00
Misite Bao 4c840c07f2 docs: sync documents (#2063)
* docs: sync documents

* docs: fix document escape syntax
2022-11-09 06:25:18 +11:00
Sean Gosiaco 8ee493f48d Added quasar-js and quasar-ts templates (#2062) 2022-11-08 20:34:05 +11:00
github-actions[bot] 95116912a2 chore: update sponsors.svg (#2054)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-06 15:32:15 +11:00
github-actions[bot] 55f76a291b chore: update sponsors.svg (#2051)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-05 14:34:14 +11:00
github-actions[bot] 928bc75602 chore: update sponsors.svg (#2049)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-04 18:32:17 +11:00
Lea Anthony 18b2d315dd Modularize wails (#2009)
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-11-03 21:21:40 +11:00
stffabi 0a1c05df16 [windows] Fix frameless maximizing in multi monitor setup (#2043) 2022-11-03 19:14:00 +11:00
github-actions[bot] 3d62681450 chore: update sponsors.svg (#2022)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-30 19:27:08 +11:00
stffabi 638caf72f0 [assetserver] Introduce middleware and extract options (#2016)
* [assetserver] Add support for HTTP Middlewares

* [dev] Disable frontend DevServer if no Assets has been defined and inform user

* [dev] Consistent WebSocket behaviour in dev and prod mode for assets handler and middleware

In prod mode we can't support WebSockets so make sure the
assets handler and middleware never see WebSockets in dev mode.

* [templates] Migrate to new AssetServer option

* [docs] Add assetserver.Options to the reference
2022-10-29 23:15:15 +02:00
Lea Anthony 4cd89e1507 Add Angular docs 2022-10-29 19:35:41 +11:00
github-actions[bot] ac8ed94ae6 chore: update sponsors.svg (#2018)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-26 18:29:36 +11:00
Lea Anthony 52238f0fdd Update Mac troubleshooting guide 2022-10-26 08:23:00 +11:00
Lea Anthony 6a12d01624 Update v2.1.0 release notes 2022-10-26 08:19:46 +11:00
Misite Bao 00864fa14f docs: sync documents (#2013) 2022-10-26 08:02:36 +11:00
Lea Anthony 6d94cb4afe Add installation error docs 2022-10-25 06:06:53 +11:00
Joshua Hull 9f751d66e0 Add single listener deregistration (#1969)
* Add single listener deregistration

* Return function to stop listening, updates types

* Add missing returns, improve documentation

* Duplicate interface in go

* Define eventName

* Use lo instead for filtering

* Move logger to Interface. Add sample test.

* Add vite test for events

* Add js test workflow

* Add corresponding go method to remove all events

* Update documentation

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-23 09:03:37 +11:00
Binyamin Aron Green 4bff4af2b0 Add JSON schema for config file (#1864)
* Add JSON schema for config file

* Fix typo in wails config schema

* Update wails.tmpl.json

* Update wails.tmpl.json

* Add reference to schema in docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:07:37 +11:00
ParkourLiu dc65f77baf repair panic (#1999)
* repair panic

* Add empty struct field test

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:04:49 +11:00
Will Andrews c55f94a3dc [Docs] Add troubleshooting guide for unable to start service (#2001)
* add troubleshooting

* moved

* Added to the docs repo

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:04:18 +11:00
Lea Anthony b32069e4e4 Fix call in checkWebView2 2022-10-22 17:45:23 +11:00
github-actions[bot] 2fd704e47c chore: update sponsors.svg (#2003)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-22 00:40:09 +11:00
stffabi 0a20c8db96 [webview2loader] Add full featured go implementation (#1974)
* [webview2loader] Add full featured go implementation

The new go loader can be activated with the exp_gowebview2loader build tag.

* [build] Add information for using the new webvie2loader
2022-10-22 00:29:16 +11:00
Will Andrews 38f6b8787f [Docs] Add troubleshooting guide for unable to start service (#2000)
* add troubleshooting

* moved
2022-10-21 07:42:57 +11:00
Scott Opell 7fcb537f85 feature/turn off color terminal output of dev command (#1947)
* feat: Adds option to dev command to turn off color terminal output

* Update docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-20 21:11:20 +11:00
Misite Bao 8b07a0f582 chore: update workflows (#1977)
* chore: remove useless files

* chore: fix check path

* chore: add workflow to auto push to crowdin after website update

* fix: fix workflow config
2022-10-20 20:51:59 +11:00
Lea Anthony 3e73368540 Remove issue translator 2022-10-20 08:45:03 +11:00
github-actions[bot] 789a4e9bba chore: update sponsors.svg (#1991)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-19 20:34:17 +11:00
1506 changed files with 97511 additions and 11189 deletions
+4
View File
@@ -14,6 +14,10 @@ body:
- Search the issue tracker using [this link](https://github.com/wailsapp/wails/issues?q=is%3Aissue+).
- Search the [discussion forums](https://github.com/wailsapp/wails/discussions?discussions_q=type+your+issue+here).
- Read the [Troubleshooting Guide](https://wails.io/docs/next/guides/troubleshooting).
- Create a [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) and link to it in the issue.
- If your issue is related to TypeScript generation, please open a ticket and create a PR with a failing test case.
TS tests can be found [here](https://github.com/wailsapp/wails/tree/master/v2/internal/binding/binding_test). Remember to add
your test to the `binding_test.go` file.
- Try to fix it yourself. Keep a list of things you have done to fix the problem.
If after doing all the above, the problem remains, please continue with this ticket providing *all* the information requested.
@@ -2,18 +2,18 @@ name: Build + Test
on:
push:
branches: [ release/*, master ]
branches: [release/*, master]
workflow_dispatch:
jobs:
test:
test_go:
name: Run Go Tests
if: github.repository == 'wailsapp/wails'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
go-version: [ 1.18, 1.19 ]
os: [ubuntu-latest, windows-latest, macos-latest]
go-version: [1.18, 1.19]
steps:
- name: Checkout code
@@ -23,24 +23,73 @@ jobs:
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
- name: Set up Go 1.18
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
- name: Run tests
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: ./v2
run: go test -v ./...
- name: Run tests (!mac)
if: matrix.os != 'macos-latest'
working-directory: ./v2
run: go test -v ./...
test_js:
name: Run JS Tests
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
working-directory: v2/internal/frontend/runtime
- name: Run tests
run: npm test
working-directory: v2/internal/frontend/runtime
test_templates:
name: Test Templates
needs: test
needs: test_go
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
template: [ svelte, svelte-ts, vue, vue-ts, react, react-ts, preact, preact-ts, lit, lit-ts, vanilla, vanilla-ts, plain ]
go-version: [ 1.18, 1.19 ]
os: [ubuntu-latest, windows-latest, macos-latest]
template:
[
svelte,
svelte-ts,
vue,
vue-ts,
react,
react-ts,
preact,
preact-ts,
lit,
lit-ts,
vanilla,
vanilla-ts,
plain,
]
go-version: [1.18, 1.19]
steps:
- name: Checkout
uses: actions/checkout@v3
-36
View File
@@ -1,36 +0,0 @@
name: Build
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build-v2:
name: v2 Build
if: github.repository == 'wailsapp/wails'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: "master"
submodules: true
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ">=1.18.0"
- name: Build Wails CLI
run: |
cd ./v2/cmd/wails
go install
wails -help
-24
View File
@@ -1,24 +0,0 @@
name: Check Docs
on:
pull_request:
branches: [ 'feature/*' ]
jobs:
docs:
name: Website Updated
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v11.1
id: verify-changed-files
with:
files: |
v2/website/*.mdx
- name: Run step only when files change.
if: steps.verify-changed-files.outputs.files_changed != 'true'
run: |
echo "Feature branch does not contain any changes to the website."
+3 -2
View File
@@ -7,17 +7,18 @@ on:
jobs:
update-sponsors:
name: Update Sponsors
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: actions/checkout@v3
- name: Set node
- name: Set Node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Update sponsors
- name: Update Sponsors
run: cd scripts/sponsors && chmod 755 ./generate-sponsor-image.sh && ./generate-sponsor-image.sh
env:
SPONSORKIT_GITHUB_TOKEN: ${{ secrets.SPONSORS_TOKEN }}
-16
View File
@@ -1,16 +0,0 @@
name: 'issue-translator'
on:
issue_comment:
types: [ created ]
issues:
types: [ opened ]
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: tomsun28/issues-translate-action@v2.6
with:
IS_MODIFY_TITLE: false
CUSTOM_BOT_NOTE: The issue body's language is not English, translating it automatically...
+33 -15
View File
@@ -1,30 +1,39 @@
name: PR Checks
on:
pull_request:
pull_request_review:
types: [ submitted ]
types: [submitted]
jobs:
check_branch_name:
check_docs:
name: Check Docs
if: ${{github.repository == 'wailsapp/wails' && contains(github.head_ref,'feature/')}}
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
name: Check branch name
steps:
- run: |
if ! [[ "$(echo ${GITHUB_HEAD_REF} | cut -d "/" -f1)" =~ (feature|bugfix|release|chore) ]]; then
echo "PRs are only accepted for branches starting with: feature/, bugfix/, chore/ or release/"
exit 1
fi
shell: bash
- uses: actions/checkout@v3
test:
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v11.1
id: verify-changed-files
with:
files: |
website/**/*.mdx
website/**/*.md
- name: Run step only when files change.
if: steps.verify-changed-files.outputs.files_changed != 'true'
run: |
echo "::warning::Feature branch does not contain any changes to the website."
test_go:
name: Run Go Tests
runs-on: ${{ matrix.os }}
if: github.event.review.state == 'approved'
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
go-version: [ 1.18, 1.19 ]
os: [ubuntu-latest, windows-latest, macos-latest]
go-version: [1.18, 1.19]
steps:
- name: Checkout code
@@ -34,10 +43,19 @@ jobs:
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
- name: Set up Go 1.18
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
- name: Run tests
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: ./v2
run: go test -v ./...
- name: Run tests (!mac)
if: matrix.os != 'macos-latest'
working-directory: ./v2
run: go test -v ./...
+37
View File
@@ -0,0 +1,37 @@
name: Push Checks
on:
push:
branches: [master]
jobs:
push_files_to_crowdin:
name: Push files to Crowdin
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v11.1
id: verify-changed-files
with:
files: |
website/**/*.mdx
website/**/*.md
website/**/*.json
- name: Set node
if: steps.verify-changed-files.outputs.files_changed != 'true'
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Push files
env:
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
run: |
cd website
corepack enable
pnpm install
pnpm run crowdin push -b master
@@ -0,0 +1,31 @@
name: Sync Translated Documents
on:
workflow_dispatch:
jobs:
sync-translated-documents:
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: actions/checkout@v3
- name: Set node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Sync Translated Documents
run: cd scripts && chmod 755 ./sync-translated-documents.sh && ./sync-translated-documents.sh
env:
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: "docs: sync documents"
title: "docs: sync documents"
body: "- [x] Sync translated documents"
branch: feature/documents
delete-branch: true
draft: true
+1 -1
View File
@@ -42,7 +42,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
+151
View File
@@ -0,0 +1,151 @@
<h1 align="center">Wails</h1>
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Go & Web 기술을 사용하여 데스크탑 애플리케이션을 빌드하세요.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://app.slack.com/client/T029RQSE6/CJ4P9F7MZ">
<img alt="Slack" src="https://img.shields.io/badge/slack-gophers%2Fwails%20-blue?logo=slack"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build.yml" rel="nofollow">
<img src="https://img.shields.io/github/workflow/status/wailsapp/wails/Build?logo=github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
</div>
## 목차
- [목차](#목차)
- [소개](#소개)
- [기능](#기능)
- [로드맵](#로드맵)
- [시작하기](#시작하기)
- [스폰서](#스폰서)
- [FAQ](#faq)
- [기여자](#기여자)
- [라이센스](#라이센스)
- [영감](#영감)
## 소개
Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은 내장 웹 서버를 이용하는 것입니다.
Wails는 다르게 접근합니다: Go 코드와 웹 프론트엔드를 단일 바이너리로 래핑하는 기능을 제공합니다.
프로젝트 생성, 컴파일 및 번들링을 처리하여 이를 쉽게 수행할 수 있도록 도구가 제공됩니다.
창의력을 발휘하기만 하면 됩니다!
## 기능
- 백엔드에 표준 Go 사용
- 이미 익숙한 프론트엔드 기술을 사용하여 UI 구축
- 사전 구축된 템플릿을 사용하여 Go 프로그램을 위한 풍부한 프론트엔드를 빠르게 생성
- Javascript에서 Go 메서드를 쉽게 호출
- Go 구조체 및 메서드에 대한 자동 생성된 Typescript 정의
- 기본 대화 및 메뉴
- 네이티브 다크/라이트 모드 지원
- 최신 반투명도 및 "반투명 창" 효과 지원
- Go와 Javascript 간의 통합 이벤트 시스템
- 프로젝트를 빠르게 생성하고 구축하는 강력한 CLI 도구
- 멀티플랫폼
- 기본 렌더링 엔진 사용 - _내장 브라우저 없음_!
### 로드맵
프로젝트 로드맵은 [여기](https://github.com/wailsapp/wails/discussions/1484)에서
확인할 수 있습니다. 개선 요청을 하기 전에 이것을 참조하십시오.
## 시작하기
설치 지침은
[공식 웹사이트](https://wails.io/docs/gettingstarted/installation)에 있습니다.
## 스폰서
이 프로젝트는 친절한 사람들 / 회사들이 지원합니다.
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
## FAQ
- 이것은 Electron의 대안인가요?
요구 사항에 따라 다릅니다. Go 프로그래머가 쉽게 가벼운 데스크톱 애플리케이션을
만들거나 기존 애플리케이션에 프론트엔드를 추가할 수 있도록 설계되었습니다.
Wails는 메뉴 및 대화 상자와 같은 기본 요소를 제공하므로 가벼운 Electron 대안으로
간주될 수 있습니다.
- 이 프로젝트는 누구를 대상으로 하나요?
서버를 생성하고 이를 보기 위해 브라우저를 열 필요 없이 HTML/JS/CSS 프런트엔드를
애플리케이션과 함께 묶고자 하는 프로그래머를 대상으로 합니다.
- Wails 이름의 의미는 무엇인가요?
WebView를 보았을 때 저는 "내가 정말로 원하는 것은 WebView 앱을 구축하기 위한
도구를 사용하는거야. 마치 Ruby on Rails 처럼 말이야."라고 생각했습니다.
그래서 처음에는 말장난(Webview on Rails)이었습니다.
[국가](https://en.wikipedia.org/wiki/Wales)에 대한 영어 이름의 동음이의어이기도 하여 정했습니다.
## Stargazers 성장 추세
[![Star History Chart](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## 기여자
기여자 목록이 추가 정보에 비해 너무 커지고 있습니다! 이 프로젝트에 기여한 모든 놀라운 사람들은
[여기](https://wails.io/credits#contributors)에 자신의 페이지를 가지고 있습니다.
## 라이센스
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## 영감
이 프로젝트는 주로 다음 앨범을 들으며 코딩되었습니다.
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
+1 -1
View File
@@ -40,7 +40,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
+1 -1
View File
@@ -42,7 +42,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
+9 -9
View File
@@ -2551,9 +2551,9 @@
"dev": true
},
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"dev": true
},
"deep-is": {
@@ -4223,9 +4223,9 @@
"dev": true
},
"loader-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -4376,9 +4376,9 @@
"dev": true
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
+2 -1
View File
@@ -1,3 +1,4 @@
#!/usr/bin/env bash
npm install
npm install sponsorkit@0.6.1
npx sponsorkit -o ../../website/static/img/
+411 -2197
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,15 +1,15 @@
{
"name": "scripts",
"name": "sponsors",
"version": "1.0.0",
"description": "",
"main": "index.js",
"main": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"sponsorkit": "^0.5.2"
"dependencies": {
"sponsorkit": "^0.6.1"
}
}
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
cd ../website
npx @crowdin/cli@latest pull -b master
+257
View File
@@ -0,0 +1,257 @@
package main
import (
"fmt"
"os"
"runtime"
"strings"
"time"
"github.com/leaanthony/slicer"
"github.com/pterm/pterm"
"github.com/wailsapp/wails/v2/cmd/wails/flags"
"github.com/wailsapp/wails/v2/cmd/wails/internal/gomod"
"github.com/wailsapp/wails/v2/internal/colour"
"github.com/wailsapp/wails/v2/internal/project"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"github.com/wailsapp/wails/v2/pkg/commands/build"
)
func buildApplication(f *flags.Build) error {
if f.NoColour {
pterm.DisableColor()
colour.ColourEnabled = false
}
quiet := f.Verbosity == flags.Quiet
// Create logger
logger := clilogger.New(os.Stdout)
logger.Mute(quiet)
if quiet {
pterm.DisableOutput()
} else {
app.PrintBanner()
}
err := f.Process()
if err != nil {
return err
}
cwd, err := os.Getwd()
if err != nil {
return err
}
projectOptions, err := project.Load(cwd)
if err != nil {
return err
}
// Create BuildOptions
buildOptions := &build.Options{
Logger: logger,
OutputType: "desktop",
OutputFile: f.OutputFilename,
CleanBinDirectory: f.Clean,
Mode: f.GetBuildMode(),
Pack: !f.NoPackage,
LDFlags: f.LdFlags,
Compiler: f.Compiler,
SkipModTidy: f.SkipModTidy,
Verbosity: f.Verbosity,
ForceBuild: f.ForceBuild,
IgnoreFrontend: f.SkipFrontend,
Compress: f.Upx,
CompressFlags: f.UpxFlags,
UserTags: f.GetTags(),
WebView2Strategy: f.GetWebView2Strategy(),
TrimPath: f.TrimPath,
RaceDetector: f.RaceDetector,
WindowsConsole: f.WindowsConsole,
Obfuscated: f.Obfuscated,
GarbleArgs: f.GarbleArgs,
SkipBindings: f.SkipBindings,
ProjectData: projectOptions,
}
tableData := pterm.TableData{
{"Platform(s)", f.Platform},
{"Compiler", f.GetCompilerPath()},
{"Skip Bindings", bool2Str(f.SkipBindings)},
{"Build Mode", f.GetBuildModeAsString()},
{"Frontend Directory", projectOptions.GetFrontendDir()},
{"Obfuscated", bool2Str(f.Obfuscated)},
}
if f.Obfuscated {
tableData = append(tableData, []string{"Garble Args", f.GarbleArgs})
}
tableData = append(tableData, pterm.TableData{
{"Skip Frontend", bool2Str(f.SkipFrontend)},
{"Compress", bool2Str(f.Upx)},
{"Package", bool2Str(!f.NoPackage)},
{"Clean Bin Dir", bool2Str(f.Clean)},
{"LDFlags", f.LdFlags},
{"Tags", "[" + strings.Join(f.GetTags(), ",") + "]"},
{"Race Detector", bool2Str(f.RaceDetector)},
}...)
if len(buildOptions.OutputFile) > 0 && f.GetTargets().Length() == 1 {
tableData = append(tableData, []string{"Output File", f.OutputFilename})
}
pterm.DefaultSection.Println("Build Options")
err = pterm.DefaultTable.WithData(tableData).Render()
if err != nil {
return err
}
if !f.NoSyncGoMod {
err = gomod.SyncGoMod(logger, f.UpdateWailsVersionGoMod)
if err != nil {
return err
}
}
// Check platform
validPlatformArch := slicer.String([]string{
"darwin",
"darwin/amd64",
"darwin/arm64",
"darwin/universal",
"linux",
"linux/amd64",
"linux/arm64",
"linux/arm",
"windows",
"windows/amd64",
"windows/arm64",
"windows/386",
})
outputBinaries := map[string]string{}
// Allows cancelling the build after the first error. It would be nice if targets.Each would support funcs
// returning an error.
var targetErr error
targets := f.GetTargets()
targets.Each(func(platform string) {
if targetErr != nil {
return
}
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]
buildOptions.Arch = f.GetDefaultArch()
if len(platformSplit) > 1 {
buildOptions.Arch = platformSplit[1]
}
banner := "Building target: " + buildOptions.Platform + "/" + buildOptions.Arch
pterm.DefaultSection.Println(banner)
if f.Upx && platform == "darwin/universal" {
pterm.Warning.Println("Warning: compress flag unsupported for universal binaries. Ignoring.")
f.Upx = false
}
switch buildOptions.Platform {
case "linux":
if runtime.GOOS != "linux" {
pterm.Warning.Println("Crosscompiling to Linux not currently supported.")
return
}
case "darwin":
if runtime.GOOS != "darwin" {
pterm.Warning.Println("Crosscompiling to Mac not currently supported.")
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
if f.OutputFilename != "" {
buildOptions.OutputFile = f.OutputFilename
}
if f.Obfuscated && f.SkipBindings {
pterm.Warning.Println("obfuscated flag overrides skipbindings flag.")
buildOptions.SkipBindings = false
}
if !f.DryRun {
// Start Time
start := time.Now()
compiledBinary, err := build.Build(buildOptions)
if err != nil {
pterm.Error.Println(err.Error())
targetErr = err
return
}
buildOptions.IgnoreFrontend = true
buildOptions.CleanBinDirectory = false
// Output stats
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.\n", compiledBinary, time.Since(start).Round(time.Millisecond).String()))
outputBinaries[buildOptions.Platform+"/"+buildOptions.Arch] = compiledBinary
} else {
pterm.Info.Println("Dry run: skipped build.")
}
})
if targetErr != nil {
return targetErr
}
if f.DryRun {
return nil
}
if f.NSIS {
amd64Binary := outputBinaries["windows/amd64"]
arm64Binary := outputBinaries["windows/arm64"]
if amd64Binary == "" && arm64Binary == "" {
return fmt.Errorf("cannot build nsis installer - no windows targets")
}
if err := build.GenerateNSISInstaller(buildOptions, amd64Binary, arm64Binary); err != nil {
return err
}
}
return nil
}
+38
View File
@@ -0,0 +1,38 @@
package main
import (
"github.com/pterm/pterm"
"github.com/wailsapp/wails/v2/cmd/wails/flags"
"github.com/wailsapp/wails/v2/cmd/wails/internal/dev"
"github.com/wailsapp/wails/v2/internal/colour"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"os"
)
func devApplication(f *flags.Dev) error {
if f.NoColour {
pterm.DisableColor()
colour.ColourEnabled = false
}
quiet := f.Verbosity == flags.Quiet
// Create logger
logger := clilogger.New(os.Stdout)
logger.Mute(quiet)
if quiet {
pterm.DisableOutput()
} else {
app.PrintBanner()
}
err := f.Process()
if err != nil {
return err
}
return dev.Application(f, logger)
}

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