Compare commits

...

114 Commits

Author SHA1 Message Date
Lea Anthony db2745e453 Rename main.tmpl.go to main.go.tmpl to remove IDE warnings 2023-01-22 16:29:14 +11:00
Lea Anthony 56dba5c3a4 Initial template support (likely to change) 2023-01-22 15:29:53 +11:00
Lea Anthony 3ccf027624 Initial template support (likely to change) 2023-01-22 15:28:45 +11:00
Lea Anthony 5ef32760f0 Update task 2023-01-18 22:08:25 +11:00
Lea Anthony 81645190f0 merge exp branch 2023-01-18 21:42:49 +11:00
Lea Anthony 18d0ed890a Merge branch 'blog/v3-roadmap' 2023-01-18 20:59:38 +11:00
Lea Anthony 2479603143 Add github issue link 2023-01-18 17:41:33 +11:00
Lea Anthony dbf6b3a718 updated 2023-01-18 07:57:10 +11:00
stffabi 45c3a501d9 [cli] Fix applying default arch to platform flag (#2309) 2023-01-17 20:39:15 +01:00
Lea Anthony 401165ce30 blog 2023-01-17 21:19:17 +11:00
stffabi caa0b6c804 [assetServer, darwin] Use AssetServer native WKWebView request handling (#2283) 2023-01-16 13:02:18 +01:00
stffabi 8f92cf1074 [assetHandler] Allow middleware to set the content-type for an assets file (#2286) 2023-01-16 21:05:25 +11:00
Gwyn 8c7fa4cf4c Updates all default gitignore templates to be newline terminated. (#2306)
This allows echoing new patterns to the end of the file without
causing a string concatenation error.
2023-01-16 21:02:52 +11:00
Oussama Sethoum d0bd849be6 Update events.mdx (#2300)
* Update events.mdx

* Add doc update to docs dir

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-16 20:59:58 +11:00
stffabi 0a98efeea9 [runtime] Improve —wails-draggable by starting a drag immediately but only for the first click in a series (#2302)
This removes the sometime lagging experience when
starting to drag on Windows. But it's still possible to use
double-click events for adding e.g. a WindowToggleMaximise.
2023-01-16 20:56:13 +11:00
github-actions[bot] 93cfc777f9 chore: update sponsors.svg (#2293)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-16 20:53:31 +11:00
stffabi d15e673a19 [windows] Some improvements to fullscreen (#2299) 2023-01-15 06:14:15 +01:00
Supian M ec8e9b2715 Fix Broken Badge (#2292) 2023-01-12 20:01:56 +11:00
stffabi aaf039bcff [windows] Disable frameless decorations during fullscreen (#2288)
Otherwise this leads to thin transparent lines on the window borders on older Windows versions.
2023-01-11 15:22:48 +01:00
stffabi 05679e70d0 [runtime] Frameless resize now sets the cursor on documentElement (#2289)
Otherwise if the body does not cover the full viewport the cursor won't
be shown outside of its rectangle.
2023-01-10 13:19:09 +01:00
stffabi 8e4606d104 [windows] Improve fullscreen mode for frameless windows (#2279)
* Improve fullscreen mode for frameless windows
* Set Window background color in addition to WebView2 background color
2023-01-09 12:15:43 +01:00
Lea Anthony 54ca6c7059 Refactor assetserver into pkg (#2260) 2023-01-08 11:25:21 +01:00
Lea Anthony 6e3b4cf1a1 Add Warmine to showcase 2023-01-08 12:53:14 +11:00
Zámbó, Levente c3011813b0 linux separate window c and go file (#2275) 2023-01-07 16:20:11 +11:00
Johannes Haseitl ccceadbd24 Replace more slack links with discord invites (#2256)
* Add Discord link and deprecate slack links

* More slack -> discord changes

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-07 16:19:33 +11:00
Noah Hsu e1fc7119bc docs: fix admonitions syntax (#2263) 2023-01-07 15:36:37 +11:00
Zámbó, Levente add10df5ff fix missing bin dir on build hook (#2273)
* fix missing bin dir on build hook

* add fix to changelog
2023-01-07 06:51:01 +11:00
stffabi 284e20a290 Add EnableFraudulentWebsiteDetection to options (#2269)
This allows to explicitly opt-in to scan services for fraudulent
content, such as malware or phishing attempts.
2023-01-06 00:06:26 +11:00
Zámbó, Levente 0a32c1124e Add common text clipboard support (#2228) 2023-01-05 16:41:07 +11:00
Igor Sementsov fc9dd99dea Update troubleshooting.mdx (#2252)
* Update troubleshooting.mdx

https://github.com/wailsapp/wails/issues/2249

* Move guide to docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-05 16:19:49 +11:00
希嘉嘉 2727af43d4 Update templates.mdx (#2230)
添加 solid 模版的中文描述信息。
2023-01-05 16:09:53 +11:00
github-actions[bot] 4d0163d8af chore: update sponsors.svg (#2271)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-05 15:12:13 +11:00
stffabi ebc653a584 [windows] Add support for AdditionalBrowserArgs to the legacy Webview2Loader (#2267) 2023-01-02 22:41:56 +01:00
Zámbó, Levente ef5f547d27 Support GPU acceleration settings on Windows & Linux (#2266)
* support GPU acceleration settings Window & Linux

* fix linux empty option crash

* fix change linux gpu policy switch case

* add PR to changelog
2023-01-02 09:38:53 +11:00
Lea Anthony d3b4105f75 Chore/refactor assetserver (#2250)
* Remove context from API calls

* Remove logger dependency

* Remove fs dependency

* Remove runtime dependency

* Update Windows/Linux calls to NewAssetServerMainPage

* Add missing imports

* fix runtime import clash
2022-12-31 10:36:07 +11:00
stffabi 66bc258f81 [windows] Fix compile error for 386 platform (#2257) 2022-12-30 21:33:39 +01:00
Lea Anthony 908aecfd1c Update Changelog 2022-12-30 15:58:11 +11:00
Lea Anthony 0aa056fcc5 Bump version to v2.3.1 2022-12-30 07:38:22 +11:00
Lea Anthony 1b2bc8ee27 Remove old docs 2022-12-29 16:00:10 +11:00
Lea Anthony f01e1e5bda Update docs to v2.3.0 2022-12-29 15:59:38 +11:00
Lea Anthony 5c0f1e409d Fix crowdin client code 2022-12-29 12:34:43 +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
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
2143 changed files with 140845 additions and 11612 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
-25
View File
@@ -1,25 +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: |
website/**/*.mdx
website/**/*.md
- 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 }}
+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 ./...
@@ -1,12 +1,11 @@
name: Push files to Crowdin
name: Push Checks
on:
push:
branches: [master]
workflow_dispatch:
jobs:
docs:
push_files_to_crowdin:
name: Push files to Crowdin
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
@@ -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
-32
View File
@@ -1,32 +0,0 @@
name: Test JS
on:
push:
branches: [ release/*, master ]
workflow_dispatch:
jobs:
test:
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
+3
View File
@@ -31,3 +31,6 @@ v2/test/kitchensink/frontend/package.json.md5
v2/cmd/wails/internal/commands/initialise/templates/testtemplates/
.env
/website/static/img/.cache.json
/v3/.task
/v3/examples/build/bin/testapp
+3 -3
View File
@@ -30,8 +30,8 @@
<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 href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&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"/>
@@ -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-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&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)
+3 -3
View File
@@ -28,8 +28,8 @@
<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 href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&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"/>
@@ -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>
+3 -3
View File
@@ -30,8 +30,8 @@
<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 href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&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"/>
@@ -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.1",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz",
"integrity": "sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==",
"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