Compare commits

..

313 Commits

Author SHA1 Message Date
Lea Anthony e65118e962 Fixed and refactored context menu support 2021-01-13 22:51:44 +11:00
Lea Anthony de06fc7dcc Remove a ton of unused code 2021-01-13 21:29:20 +11:00
Lea Anthony a86fbbb440 Removal of menu IDs. WARNING: context menus are currently broken 2021-01-13 21:14:44 +11:00
Lea Anthony 3045ec107f attempt at preventing menu flicker when removing an icon 2021-01-13 20:47:08 +11:00
Lea Anthony 3a9557ad30 Support removal of tray icons 2021-01-13 20:38:46 +11:00
Lea Anthony 583153383a Refactor, tidy up and trim the fat! 2021-01-13 20:19:01 +11:00
Lea Anthony 3f53e8fd5f Refactor, tidy up and trim the fat! 2021-01-13 11:47:54 +11:00
Lea Anthony 5c9402323a Initial support for multiple traymenus 2021-01-13 10:28:32 +11:00
Lea Anthony 1921862b53 Partially introduce context menu changes back 2021-01-12 21:20:08 +11:00
Lea Anthony 0f7acd39fc [WIP] Fix the madness 2021-01-12 20:39:19 +11:00
Lea Anthony 1a7507f524 [WIP] Add tray menu store + refactor 2021-01-12 16:55:30 +11:00
Lea Anthony db6dde3e50 [WIP] Support tray in menu manager 2021-01-12 15:55:28 +11:00
Lea Anthony 4e58b7697a Add context menu to menumanager. Slight refactor. 2021-01-11 14:19:01 +11:00
Lea Anthony 55d7d9693f Removed Menu GetByID / RemoveByID 2021-01-11 13:41:07 +11:00
Lea Anthony b4b7c9d306 Implemented MenuItem.Remove() to remove from the menu structures 2021-01-11 11:57:49 +11:00
Lea Anthony a4153fae57 Remove Menu.On() 2021-01-11 11:25:48 +11:00
Lea Anthony 8053357d99 Support Menu updates! 2021-01-11 11:21:28 +11:00
Lea Anthony 7347d2caa2 Add wails debug command 2021-01-11 11:20:25 +11:00
Lea Anthony e6491bcbb7 Fix bad deallocation of context menus 2021-01-11 07:03:59 +11:00
Lea Anthony 26a291dbee [WIP] Use json payload for click message 2021-01-11 06:40:00 +11:00
Lea Anthony 8ee8c9b07c [WIP] New menu processor 2021-01-10 21:31:13 +11:00
Lea Anthony 3a2d01813a Don't inline functions in debug builds 2021-01-10 20:32:25 +11:00
Lea Anthony d2dadc386f Add combo modifier to kitchen sink 2021-01-08 11:39:18 +11:00
Lea Anthony faa8f02b08 Bugfix for message dialog icons 2021-01-08 11:39:02 +11:00
Lea Anthony fbee9ba240 Support UpdateContextMenus. Submenus are now *menu.Menu. Tidy up++ 2021-01-08 06:28:51 +11:00
Lea Anthony 2a69786d7e Remove old code (woohoo!) 2021-01-07 21:36:39 +11:00
Lea Anthony f460bf91ef [WIP] Normalisation of context menus creation/callbacks.
TODO: UpdateContextMenu()
2021-01-07 21:34:04 +11:00
Lea Anthony bd74d45a91 Normalisation of callbacks for menus. App menu converted to new Menus. 2021-01-06 20:50:41 +11:00
Lea Anthony c65522f0b6 Huge refactor of menus. Start of normalisation of callbacks. 2021-01-06 17:36:59 +11:00
Lea Anthony 5f2c437136 Bugfix dealloc contextmenus. Create common.h. WIP: new menu handling 2021-01-06 12:53:11 +11:00
Lea Anthony 87e974e080 Refactor/Tidy up Ffenestri darwin 2021-01-06 11:56:01 +11:00
Lea Anthony f77729fc0b v2.0.0-alpha.6 2021-01-05 14:28:50 +11:00
Lea Anthony 2a8ce96830 Remove custom asset bundling. Use Go's embed instead! 2021-01-05 14:28:18 +11:00
Lea Anthony 9be539cfb8 Force rebuild each time to pick up .h changes Tidy up go.mod. Bump version. 2021-01-05 14:01:53 +11:00
Lea Anthony e44f2fe06d Moved version out of main. 2021-01-05 13:26:31 +11:00
Lea Anthony ad65d55abd Misc fixes for module build 2021-01-05 13:20:44 +11:00
Lea Anthony 2b5bbfd897 Script to rebuild runtime_*.c 2021-01-05 13:01:38 +11:00
Lea Anthony d2020fedda Move generated assets to build dir. Precompile platform runtime. 2021-01-05 13:01:03 +11:00
Lea Anthony 98789bd85a Fix rollup-plugin-svelte in KS 2021-01-04 22:23:07 +11:00
Lea Anthony e6ace2fafd Add Pace to Thanks 2021-01-04 19:52:12 +11:00
Lea Anthony a55fc4d0e9 Refactor TrayOptions to Tray. Add ID. 2021-01-04 15:58:28 +11:00
Lea Anthony a09e9d4586 Merge branch 'develop' into feature/v2-mac 2021-01-04 13:54:02 +11:00
Lea Anthony ba7c8cf0e0 Merge branch 'develop' into feature/v2-mac 2021-01-04 13:41:36 +11:00
Lea Anthony 60f67d4642 Remove old method 2021-01-03 22:07:05 +11:00
Lea Anthony 0dc6c20c65 Provide a better error message when trying to bind functions 2021-01-03 22:05:40 +11:00
Lea Anthony 5d41aad539 Misc lint fixes 2021-01-03 21:31:19 +11:00
Lea Anthony e9a0e45d5c Support js & css in link tags 2021-01-03 21:20:29 +11:00
Lea Anthony 2dedd0b702 Expose Store 2021-01-03 20:20:44 +11:00
Lea Anthony 1889973af1 Dedupe assetbundle 2021-01-03 20:06:07 +11:00
Lea Anthony 75e852451c Fix context menu bug 2021-01-03 09:56:45 +11:00
Lea Anthony cfee44b18b Fix typo 2021-01-03 05:31:05 +11:00
Lea Anthony f384fc7562 Add -k flag for debug purposes 2021-01-03 05:02:48 +11:00
Lea Anthony 44c55d06a6 Create dialog dir if missing 2021-01-02 13:37:58 +11:00
Lea Anthony f4ca9a6b9e Update svelte dependencies 2021-01-02 13:37:15 +11:00
Lea Anthony a54d875ceb Fix misc build issues 2021-01-01 13:00:38 +11:00
Lea Anthony 657df8bdda Use assets dir in project for all application assets 2021-01-01 12:53:06 +11:00
Lea Anthony c0fabc0bb7 Default dialog icon generation improvement 2021-01-01 12:43:21 +11:00
Lea Anthony 4fd476bb7d Default readme for assets directory 2021-01-01 12:42:52 +11:00
Lea Anthony be0a9ddf6b Handle WailsInit() errors 2021-01-01 12:39:59 +11:00
Lea Anthony f7db0b7373 Fix return values of default App method 2021-01-01 12:37:52 +11:00
Lea Anthony 5ca57e446a Extra guards during destroy 2021-01-01 12:37:16 +11:00
Lea Anthony 33a27b06a6 Add Message dialog to Kitchen Sink 2020-12-31 14:52:45 +11:00
Lea Anthony b50acaba91 Fix 'ResolvesAliases' typo 2020-12-31 11:04:10 +11:00
Lea Anthony 6253ac30b7 Support Message dialog in JS runtime 2020-12-31 11:02:32 +11:00
Lea Anthony 2a93e2694d Retina & theme aware dialog icons. Default icons + override ability 2020-12-30 22:36:23 +11:00
Lea Anthony 91fb3501c5 Support custom dialog icons. Move icons to new dir. 2020-12-30 08:27:00 +11:00
Lea Anthony c7d5e7de72 Add CopyDir 2020-12-30 08:25:16 +11:00
Lea Anthony 02ef02ec9e Support wails doctor for Mac 2020-12-30 00:18:59 +11:00
Lea Anthony f77626490f Support Tray.SetIcon in KitchenSink 2020-12-29 15:22:00 +11:00
Lea Anthony 6fd13fb4d4 Support Tray.SetIcon in runtime 2020-12-29 15:20:35 +11:00
Lea Anthony e18ba0eb81 Handle no tray icons 2020-12-28 14:49:15 +11:00
Lea Anthony 25f464c177 Refactor accelerator to keys package 2020-12-26 14:58:22 +11:00
Lea Anthony 57a9d5f472 Update server client API 2020-12-26 07:37:40 +11:00
Lea Anthony 3b0f852f37 Updated accelerators API 2020-12-26 06:11:22 +11:00
Lea Anthony a85c8ba894 Remove "WithAccellerator" methods. Now mandatory in base methods 2020-12-26 06:01:10 +11:00
Lea Anthony f0c932713b Support changing tray icon at runtime
Support both icon & text in tray
2020-12-24 10:05:55 +11:00
Lea Anthony 8625e99625 Add OnThemeChange
Refactor Theme change handling
2020-12-24 07:30:20 +11:00
Lea Anthony c79f86fd03 Remove old tray icon, add new 2020-12-23 06:56:56 +11:00
Lea Anthony a0774cf71c Support loading multiple tray icons 2020-12-23 06:55:45 +11:00
Lea Anthony 16b872352d Support Text label tray 2020-12-22 18:08:38 +11:00
Lea Anthony e414eda151 Fix race condition 2020-12-21 07:19:33 +11:00
Lea Anthony 719f4b5113 Remove debug output 2020-12-21 07:19:20 +11:00
Lea Anthony 8b75d57cff Use release instead of dealloc 2020-12-21 07:18:52 +11:00
Lea Anthony 7aea6980b5 Remove context menu debug log 2020-12-20 21:06:34 +11:00
Lea Anthony 99e790944f Merge branch 'v2-mac-fixes' into feature/v2-mac
# Conflicts:
#	v2/internal/ffenestri/ffenestri_darwin.c
#	v2/internal/ffenestri/ffenestri_darwin.go
#	v2/internal/ffenestri/ffenestri_darwin.h
2020-12-20 21:02:39 +11:00
Lea Anthony 937f0f77c2 Fix NPE 2020-12-20 21:00:32 +11:00
Lea Anthony c86aa7d3c8 Handle null modifiers 2020-12-20 17:55:14 +11:00
Lea Anthony d380a8d6a7 Bugfix for context menus
Proper releasing of NSMenus
2020-12-20 14:09:15 +11:00
Lea Anthony a8995c5377 Support context menu data
Support StartHidden
2020-12-18 15:50:25 +11:00
Lea Anthony 34ac62e4ac Updated tray icon 2020-12-16 08:59:01 +11:00
Lea Anthony a1f9d9ca06 Handle oncontext event 2020-12-16 08:54:24 +11:00
Lea Anthony e6fbd03346 Bugfix error message 2020-12-16 08:53:11 +11:00
Lea Anthony dd35f0119b Better error handling 2020-12-11 05:41:24 +11:00
Lea Anthony b837b1e131 Tray menu support
Bugfix move after tray use
Refactored options to handle default tray/menu
2020-12-10 07:16:10 +11:00
Lea Anthony 0802d0d57a Tray menu callbacks working 2020-12-07 07:08:33 +11:00
Lea Anthony 6fa2ebdd4f Lint fix & tidy up 2020-12-06 21:15:23 +11:00
Lea Anthony 11bf564b73 Preliminary Tray support 2020-12-06 21:05:21 +11:00
Lea Anthony 65bea04080 Pass radio callback through methods 2020-12-06 17:52:05 +11:00
Lea Anthony 4572b790c6 Pass checkbox callback through methods 2020-12-06 17:47:41 +11:00
Lea Anthony f419941065 Pass menuItemMap through methods instead of global 2020-12-06 17:32:19 +11:00
Lea Anthony d3d965ee1f more logger fixes 2020-12-06 07:14:19 +11:00
Lea Anthony 2a55983bc9 Fix logger 2020-12-05 14:44:28 +11:00
Lea Anthony 7e42052da0 InsertBefore/InsertAfter supported 2020-12-05 14:14:46 +11:00
Lea Anthony e8bb950e06 Updates for dynamic menus
Cleanup of logging
2020-12-05 07:52:59 +11:00
Lea Anthony 13dc0c78df Remove browser test 2020-12-04 15:06:01 +11:00
Lea Anthony a081c1e498 Support for dynamic menus.
Fixed bug in accelerator handling
2020-12-04 15:04:51 +11:00
Lea Anthony a3e50e760e Tidy Up dialog 2020-12-02 05:56:20 +11:00
Lea Anthony b6aa53175f Create Menu struct for kitchensink 2020-12-02 05:55:02 +11:00
Lea Anthony 094d8d4b75 fix bug with function key comparisons 2020-12-01 09:11:16 +11:00
Lea Anthony 0fa67c94c1 Graceful shudown - FINALLY! 2020-11-29 15:56:14 +11:00
Lea Anthony 083aee1588 Support F-keys & a couple more system keys 2020-11-29 15:24:27 +11:00
Lea Anthony 5c39467879 Support more accelerator keys 2020-11-29 14:18:53 +11:00
Lea Anthony fb1d4c6325 Support for Accelerators! 2020-11-28 20:57:07 +11:00
Lea Anthony a0fe2f1e13 UTF-8 test 2020-11-27 22:22:30 +11:00
Lea Anthony dbe6000632 Support for radio menu items 2020-11-27 22:07:44 +11:00
Lea Anthony 42dc96cf6b Support checkboxes 2020-11-25 08:10:27 +11:00
Lea Anthony 4fd3516f41 Support Hidden/Disabled. Normal->Text 2020-11-24 20:12:10 +11:00
Lea Anthony 6f218264ed Initial support for menus 2020-11-24 19:43:25 +11:00
Lea Anthony 810b3c7440 Add default menu for mac apps 2020-11-21 21:38:18 +11:00
Lea Anthony 40fdf75042 Disable context menu in production mode 2020-11-21 20:32:55 +11:00
Lea Anthony bc260b08b2 Better devtools handling 2020-11-21 12:40:19 +11:00
Lea Anthony b920f45f60 Formatting update. 2020-11-21 12:07:55 +11:00
Lea Anthony 7f02f6886f Improved project generation 2020-11-21 11:56:01 +11:00
Lea Anthony aa271d6498 Support git init. Get author details. 2020-11-21 11:43:13 +11:00
Lea Anthony 9e6ae4d762 Support building Mac package 2020-11-21 07:09:25 +11:00
Lea Anthony ef8b58b208 Set log level to ERROR for production build 2020-11-20 14:53:42 +11:00
Lea Anthony 0422921dc7 Misc documentation updates 2020-11-20 14:45:35 +11:00
Lea Anthony 5ba03937c3 Updated Dialog Examples 2020-11-19 08:56:57 +11:00
Lea Anthony cc4967d457 Add dialog to kitchensink 2020-11-19 07:04:42 +11:00
Lea Anthony eaeecbb180 Support Dialog in runtime 2020-11-19 07:04:08 +11:00
Lea Anthony 069de31003 Convert args to [] 2020-11-19 07:03:12 +11:00
Lea Anthony ae5c74b6cd ResolveAlias -> ResolvesAlias 2020-11-19 07:02:29 +11:00
Lea Anthony 716888dcb2 Disable module generation 2020-11-17 21:46:20 +11:00
Lea Anthony ca4e2b2391 Cosmetic changes 2020-11-17 21:44:48 +11:00
Lea Anthony 630abbd3c8 Rmoved v1 dep :/ 2020-11-17 21:36:10 +11:00
Lea Anthony 33f40c2eac relative replace in go.mod 2020-11-17 21:29:31 +11:00
Lea Anthony 7c7b6ba082 Runtime updates 2020-11-17 21:19:09 +11:00
Lea Anthony 205a6db9f1 Open link to website/github 2020-11-17 21:19:00 +11:00
Lea Anthony 659fe1b281 Disable set title if needed 2020-11-17 21:18:38 +11:00
Lea Anthony e86d622219 Add appconfig store 2020-11-17 07:02:58 +11:00
Lea Anthony ee3da60002 Sync new JS syncstores on creation 2020-11-17 06:58:14 +11:00
Lea Anthony 88643134c9 Add AppConfig to runtime.System 2020-11-17 06:57:43 +11:00
Lea Anthony 56553bb683 Remove logger from json encoded app config 2020-11-17 06:56:51 +11:00
Lea Anthony cd14f4221e Merge branch 'develop' into feature/v2-mac 2020-11-16 07:12:01 +11:00
Lea Anthony 108fcbb161 Comment about window title 2020-11-15 15:42:46 +11:00
Lea Anthony e12762a584 Un/Fullscreen, SetTitle in Kitchen Sink 2020-11-15 15:10:09 +11:00
Lea Anthony 98cc356b92 Un/Fullscreen, SetTitle in Runtime 2020-11-15 15:09:33 +11:00
Lea Anthony 32ba9e78fe Improved fullscreen support 2020-11-15 15:08:46 +11:00
Lea Anthony a737d85fa5 Fixd typos in runtime 2020-11-15 12:22:03 +11:00
Lea Anthony 435ac02647 Update runtime.Window 2020-11-15 12:18:37 +11:00
Lea Anthony 255b4e103a Add Window to kitchensink 2020-11-15 12:01:43 +11:00
Lea Anthony bd8771849b Support size/position in Go runtime 2020-11-15 12:01:15 +11:00
Lea Anthony b32349effe Improve min/maximise 2020-11-15 12:00:57 +11:00
Lea Anthony cd03b4b633 Merge branch 'feature/v2-mac' of github.com:wailsapp/wails into feature/v2-mac 2020-11-15 10:18:33 +11:00
Lea Anthony c45315d61d Add window to runtime 2020-11-15 10:16:56 +11:00
Lea Anthony 62374b9b53 Js package generation (#554)
* WIP

* Generation of index.js

* Add RelativeToCwd

* Add JSDoc comments

* Convert to ES6 syntax

* Fix typo

* Initial generation of typescript declarations

* Typescript improvements

* Improved @returns jsdoc

* Improved declaration files

* Simplified output

* Rename file

* Tidy up

* Revert "Simplified output"

This reverts commit 15cdf7382b21a15a36616adbca13c9b034a1907b.

* Now parsing actual code

* Support Array types

* Reimagined parser

* Wrap parsing in Parser

* Rewritten module generator (TS Only)

* Final touches

* Slight refactor to improve output

* Struct comments. External struct literal binding

* Reworked project parser *working*

* remove debug info

* Refactor of parser

* remove the spew

* Better Ts support

* Better project generation logic

* Support local functions in bind()

* JS Object generation. Linting.

* Support json tags in module generation

* Updated mod files

* Support vscode file generation

* Better global.d.ts

* add ts-check to templates

* Support TS declaration files

* improved 'generate' command for module
2020-11-15 09:25:38 +11:00
Lea Anthony ddb875f788 Dialog WIP 2020-10-24 14:06:57 +11:00
Lea Anthony 9a32852119 Add JS runtime Dialog 2020-10-23 23:56:33 +11:00
Lea Anthony e795283482 Huge improvement to calls: Now handles objects 2020-10-23 22:24:30 +11:00
Lea Anthony e6036d31cf Add System to kitchensink 2020-10-23 11:46:12 +11:00
Lea Anthony 5a85a6e4f9 Expose System methods in Go runtime 2020-10-23 11:24:52 +11:00
Lea Anthony 0113fbff4f Update runtime.System to make all methods 2020-10-23 11:19:38 +11:00
Lea Anthony 145656bc43 Improved runtime.System 2020-10-23 10:42:00 +11:00
Lea Anthony 6153c48c86 Update title 2020-10-21 06:52:52 +11:00
Lea Anthony 912c0125e5 Add Browser examples 2020-10-21 06:40:17 +11:00
Lea Anthony dc2ad3cd3e Remove debug line 2020-10-21 06:02:07 +11:00
Lea Anthony e3783c5480 Fix browser runtime export 2020-10-20 09:24:03 +11:00
Lea Anthony 440abbe3b6 JS Runtime v1.0.8 2020-10-20 09:10:54 +11:00
Lea Anthony 95369d7c3d Unify Browser runtime 2020-10-20 09:10:09 +11:00
Lea Anthony 9e0023961b Update Browser runtime API 2020-10-20 07:16:56 +11:00
Lea Anthony 307e07b4c8 Finish events page 2020-10-20 06:45:46 +11:00
Lea Anthony fb88eadb58 Tidy up events runtime 2020-10-20 06:45:21 +11:00
Lea Anthony 6fdf088531 Revert Fatal on JS Error 2020-10-20 06:45:02 +11:00
Lea Anthony 07b6fc0c52 Update runtime in kitchensink 2020-10-18 16:49:08 +11:00
Lea Anthony 1b466090e8 Remove old Event methods 2020-10-18 16:47:48 +11:00
Lea Anthony c990760f22 Remove old event methods 2020-10-18 16:44:32 +11:00
Lea Anthony aeb7d857ee Support Emit & Once. Improved On. 2020-10-18 11:49:27 +11:00
Lea Anthony 78f99c2697 update runtime definitions 2020-10-18 11:48:56 +11:00
Lea Anthony 7885718d42 Disable annoying smart quotes 2020-10-18 11:48:38 +11:00
Lea Anthony 288da8c147 Improved error handling? 2020-10-18 11:48:20 +11:00
Lea Anthony 7e31db809a Add Events.On 2020-10-17 21:07:00 +11:00
Lea Anthony fb0ccfc8e6 WIP Events.On 2020-10-17 15:10:13 +11:00
Lea Anthony c9bf4e3d48 refactor clilogger 2020-10-17 13:47:13 +11:00
Lea Anthony 2a59272b86 hook in windowWillClose 2020-10-16 14:02:49 +11:00
Lea Anthony ff5e2862b8 Fix change in logging levels 2020-10-13 07:49:47 +11:00
Lea Anthony 51678afdc7 @wails/runtime v1.0.4 2020-10-13 07:35:36 +11:00
Lea Anthony 3b6a3df03d Update logger constants to fix default values 2020-10-13 07:34:36 +11:00
Lea Anthony 1c97559151 logging: slight refactor 2020-10-13 06:43:38 +11:00
Lea Anthony 082e695c83 Fix log level reactivity.
Misc fixes and tweaks
2020-10-12 23:36:37 +11:00
Lea Anthony 4a5e4d3a5e Move preview for SetLogLevel 2020-10-12 20:55:47 +11:00
Lea Anthony 8988f29cea More Logging updates 2020-10-12 20:54:33 +11:00
Lea Anthony 6150010d17 Runtime defs update.
Slight System refactor
2020-10-12 20:01:37 +11:00
Lea Anthony c165b97d57 SetLogLevel fully supported 2020-10-12 06:56:51 +11:00
Lea Anthony 39c599d2de Link component 2020-10-12 06:56:32 +11:00
Lea Anthony be952ba2da Terminal output component 2020-10-12 06:56:22 +11:00
Lea Anthony 5a141d343e Better looking scrollbar 2020-10-12 06:55:42 +11:00
Lea Anthony 7e4ad307aa Fully refactored logging 2020-10-11 15:10:25 +11:00
Lea Anthony d8bb418851 Runtime refactor 2020-10-11 13:33:55 +11:00
Lea Anthony f1cd84d0c8 Support dynamic loglevel 2020-10-10 15:06:27 +11:00
Lea Anthony ba6538da7c Made go runtime package public.
Using loglevel store to keep loglevel in sync
2020-10-10 13:57:32 +11:00
Lea Anthony afea1cbb4c Support SetLogLevel() at runtime
Refactor of loglevel
2020-10-10 07:31:23 +11:00
Lea Anthony 19fbc884ae Fix number of methods in Log 2020-10-09 15:44:08 +11:00
Lea Anthony 67861e4f70 Updated Logger interface 2020-10-09 15:39:11 +11:00
Lea Anthony 228285f693 Support Print logging 2020-10-09 15:13:45 +11:00
Lea Anthony 9f62a08cd2 Move Info message to Trace 2020-10-09 14:59:12 +11:00
Lea Anthony d97cd1b75f Runtime v1.0.1 2020-10-09 14:52:07 +11:00
Lea Anthony 5fd8312f63 Support Print in JS runtime 2020-10-09 14:51:26 +11:00
Lea Anthony 90b7d5f519 Support log level 2020-10-09 14:36:42 +11:00
Lea Anthony 93f4549efa Support trace in go runtime 2020-10-09 14:36:28 +11:00
Lea Anthony b5c8dfac97 Support Trace in kitchensink 2020-10-09 14:36:15 +11:00
Lea Anthony ee01b7759e Migrate runtime to @wails 2020-10-09 14:35:43 +11:00
Lea Anthony 8dba591cda Add trace to JS runtime 2020-10-09 14:35:30 +11:00
Lea Anthony 302db87bec Debug refactor 2020-10-09 14:01:35 +11:00
Lea Anthony 161ff3b32a Make Ffenestri use logging subsystem. 2020-10-09 12:15:25 +11:00
Lea Anthony ffdfbb8ae5 Major logging refactor 2020-10-09 11:50:45 +11:00
Lea Anthony 53b54a8e52 Revert logger package 2020-10-09 10:33:11 +11:00
Lea Anthony 0403e0a783 Make logger a public package 2020-10-09 10:30:01 +11:00
Lea Anthony 8a2acacc37 Start Events. List styling moved to global scope. 2020-10-08 21:03:45 +11:00
Lea Anthony 256e84c4d4 Improved CodeBlock. Dark mode to store. 2020-10-08 20:51:14 +11:00
Lea Anthony c10e8788d8 Add logging to kitchen sink 2020-10-08 07:39:15 +11:00
Lea Anthony 6eb89f61b3 Add Log to Go runtime 2020-10-08 07:39:01 +11:00
Lea Anthony e3d2ff9ea1 Remove log package 2020-10-08 07:38:47 +11:00
Lea Anthony 665dfa6aee WIP 2020-10-07 21:09:05 +11:00
Lea Anthony 4f7e2128d1 Better drag support 2020-10-07 07:11:00 +11:00
Lea Anthony 8112facb4e Fix right click crash 2020-10-07 06:44:58 +11:00
Lea Anthony 944261b5e4 initial kitchen sink 2020-10-07 00:52:00 +11:00
Lea Anthony ba528d0534 Debugging 2020-10-07 00:51:22 +11:00
Lea Anthony a28afe86ce Remove unused event messages 2020-10-04 13:37:29 +11:00
Lea Anthony 5e0026e124 Update runtime to v1.0.3 2020-10-04 12:07:56 +11:00
Lea Anthony f23ed3c319 Add Store to go runtime 2020-10-04 12:07:42 +11:00
Lea Anthony 6aae2eb1df Support setting app state at startup 2020-10-04 12:07:10 +11:00
Lea Anthony f4943bc26c Remove generated files 2020-10-04 11:54:05 +11:00
Lea Anthony 1c6578e6ef Use IsDarkMode state store 2020-10-04 11:50:05 +11:00
Lea Anthony 5ef200f21c Refactor system. Add IsDarkMode state store 2020-10-04 11:42:42 +11:00
Lea Anthony b3822137f7 Refactor store. Add get(). 2020-10-04 11:41:39 +11:00
Lea Anthony 858789f442 Port Sync Store 2020-10-04 07:22:00 +11:00
Lea Anthony 3209b39488 Support System calls in Go Runtime 2020-10-03 20:46:18 +10:00
Lea Anthony 0c9f6edeb6 Add system calls to js runtime 2020-10-03 20:45:37 +10:00
Lea Anthony aabcef2958 Add System calls to runtime 2020-10-03 20:45:04 +10:00
Lea Anthony 10d68b2676 Small fixes to frontend events 2020-10-03 15:29:34 +10:00
Lea Anthony e960afe8f6 Support OnMultiple 2020-10-03 15:10:38 +10:00
Lea Anthony ae677ce9db Misc fixes for events 2020-10-03 15:03:14 +10:00
Lea Anthony 7f9c59a021 Support theme mode change event 2020-10-02 15:12:56 +10:00
Lea Anthony d8fdc96899 Add IsDarkMode
Updated runtime test
2020-10-02 11:41:46 +10:00
Lea Anthony c3280e8b60 Update runtime test 2020-10-02 07:45:41 +10:00
Lea Anthony 26a1f78d56 Support Translucent Window Background 2020-10-02 07:45:22 +10:00
Lea Anthony ee9c98c515 Refactor Part 2 2020-10-02 07:11:24 +10:00
Lea Anthony 29ec06fb0a Refactor part 1 2020-10-02 06:52:08 +10:00
Lea Anthony c1155e255b Add default appearance 2020-09-30 20:03:08 +10:00
Lea Anthony 4e39566118 Rename vibrancy to appearance 2020-09-30 19:54:41 +10:00
Lea Anthony 3f3094f0aa Support vibrancy and transparency for webview
Options Colour -> RGBA
2020-09-30 07:25:15 +10:00
Lea Anthony 84730d2f4d Tidy up 2020-09-29 20:36:38 +10:00
Lea Anthony b8bb891275 Frameless is calculated for Mac 2020-09-29 20:34:54 +10:00
Lea Anthony 7bcb5be1a5 Update tests 2020-09-29 07:44:02 +10:00
Lea Anthony 081c842149 Support window dragging 2020-09-29 07:33:16 +10:00
Lea Anthony 6bdcec8105 WIP: Basics of window drag 2020-09-28 22:08:53 +10:00
Lea Anthony 3c7937bff9 Tidy Up 2020-09-28 21:22:11 +10:00
Lea Anthony d7f832c00e Support SaveDialog 2020-09-28 21:13:57 +10:00
Lea Anthony 8cd39f6a9a Support default directory 2020-09-27 20:40:36 +10:00
Lea Anthony ac27137e5a Filter support 2020-09-27 20:26:16 +10:00
Lea Anthony 762632d55a Add comments 2020-09-27 15:15:25 +10:00
Lea Anthony 48c17dac87 Support all dialog properties 2020-09-27 15:05:55 +10:00
Lea Anthony 8666935caf Support multiple files in dialog 2020-09-27 14:49:38 +10:00
Lea Anthony 0ec6707263 Support selecting files+dirs 2020-09-27 14:46:30 +10:00
Lea Anthony d4224772b4 Initial support for OpenDialog 2020-09-27 14:32:08 +10:00
Lea Anthony cd99376da9 Use options struct for dialogs 2020-09-27 10:17:30 +10:00
Lea Anthony 02fd4ec477 Revert changes to v1 2020-09-27 07:58:30 +10:00
Lea Anthony 3b851e9a22 change service bus topics for dialogs 2020-09-26 16:21:18 +10:00
Lea Anthony 5ce5e129cf Remove old dialog code 2020-09-26 16:16:25 +10:00
Lea Anthony 9b0f58ddf5 Support OpenDialog 2020-09-26 16:08:55 +10:00
Lea Anthony bed5619d4e WIP: Support multiple value return 2020-09-25 07:09:55 +10:00
Lea Anthony 69c4e6ea28 Min/Max size supported 2020-09-24 21:43:37 +10:00
Lea Anthony ea7b593693 Fix minmax app 2020-09-24 21:29:26 +10:00
Lea Anthony 7ac833e396 Sample titlebars 2020-09-24 06:45:34 +10:00
Lea Anthony a5e909337e Support TitleBar Default
Fixed merging defaults
2020-09-24 06:39:08 +10:00
Lea Anthony 0c120eccc9 Support HiddenInset Titlebar 2020-09-24 06:22:49 +10:00
Lea Anthony e6addafcdd Support hidden titlebar 2020-09-24 06:19:00 +10:00
Lea Anthony ef11f45df8 Refactored mac titlebar options 2020-09-24 05:57:32 +10:00
Lea Anthony 72fc2204b4 Moved options to own package 2020-09-24 05:46:39 +10:00
Lea Anthony 15c08ef425 Support runtime colour change 2020-09-23 08:48:11 +10:00
Lea Anthony 52bb397105 Support colour 2020-09-22 20:46:36 +10:00
Lea Anthony 5572fccaf6 Add Toolbar support for Mac 2020-09-22 17:48:39 +10:00
Lea Anthony 65d591e2a6 Support more mac window options 2020-09-22 17:19:35 +10:00
Lea Anthony 4bf59301e5 Add HideTitleBar 2020-09-21 17:13:23 +10:00
Lea Anthony 629e8f73f4 Add Mac Application Options 2020-09-21 17:07:10 +10:00
Lea Anthony eb68ba5120 fix setsize and setposition 2020-09-19 23:19:34 +10:00
Lea Anthony a8bff7868b Got get frame working 2020-09-19 07:40:45 +10:00
Lea Anthony ae04b4fcc0 WIP [bugged] 2020-09-18 21:04:23 +10:00
Lea Anthony 5eb91dd3fa More refactoring 2020-09-16 21:23:35 +10:00
Lea Anthony 3ad537fdbb Tidy up 2020-09-16 21:14:18 +10:00
Lea Anthony 2c570bb4f6 Support tons of stuff! 2020-09-16 21:11:17 +10:00
Lea Anthony 461f3aec0a Get it compiling again! 2020-09-16 20:06:32 +10:00
Lea Anthony fd47122e39 Only show window when rendered 2020-09-15 19:57:34 -05:00
Lea Anthony 8de013f192 vscode stuff 2020-09-15 19:57:34 -05:00
Lea Anthony 1dd3a602d7 Support Un/Fullscreen 2020-09-15 19:57:34 -05:00
Lea Anthony a84a49a13f ignore test builds 2020-09-15 19:57:34 -05:00
Lea Anthony 64a6a69bbd Update packages 2020-09-15 19:57:33 -05:00
Lea Anthony d75b9f26f1 Callback hooks for MOAE 2020-09-15 19:57:33 -05:00
Lea Anthony 10cb7f830f Fix logger 2020-09-15 19:57:33 -05:00
Lea Anthony dd3e6de9b2 Add Center + refactor prefs 2020-09-15 19:57:33 -05:00
Lea Anthony d42b84abc1 Callbacks working 2020-09-15 19:57:33 -05:00
Lea Anthony b6c649041b Support sending messages to the backend 2020-09-15 19:57:33 -05:00
Lea Anthony 93ec65be6a More feature flag removal 2020-09-15 19:57:30 -05:00
Lea Anthony bfa8929c47 Remove feature flag code 2020-09-15 19:55:52 -05:00
Lea Anthony 360713c803 lint 2020-09-15 19:55:51 -05:00
Lea Anthony 26ce682824 Ignore favicon for desktop 2020-09-15 19:55:51 -05:00
Lea Anthony 65b546c0f9 Evaluation working correctly. Still WIP 2020-09-15 19:55:51 -05:00
Travis McLane 31494bba22 add darwin platform for server 2020-09-15 19:55:51 -05:00
Lea Anthony f25abb0b26 Semi runs 2020-09-15 19:55:51 -05:00
Lea Anthony e831bc75c6 Stubs in place to compile 2020-09-15 19:55:51 -05:00
Lea Anthony 852bbd148c Get it compiling 2020-09-15 19:55:50 -05:00
Travis McLane c158fd369a Merge commit 'a213e8bcd1d8e4e5c764978879d875d2d55dd400' as 'v2' 2020-09-15 19:52:54 -05:00
Travis McLane a213e8bcd1 Squashed 'v2/' content from commit 72ef153
git-subtree-dir: v2
git-subtree-split: 72ef15359e36e42b18d9407f74c762f83eb9a099
2020-09-15 19:52:54 -05:00
506 changed files with 46603 additions and 736 deletions
-12
View File
@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [leaanthony]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+2 -2
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+2 -2
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+2 -2
View File
@@ -15,10 +15,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+7 -2
View File
@@ -17,8 +17,13 @@ cmd/wails/wails
.DS_Store
tmp
node_modules/
package.json.md5
v2/test/**/frontend/dist
v2/test/**/build/
v2/test/frameless/icon.png
v2/test/hidden/icon.png
v2/test/kitchensink/frontend/public/bundle.*
v2/pkg/parser/testproject/frontend/wails
v2/test/kitchensink/frontend/public
v2/internal/ffenestri/runtime.c
v2/internal/runtime/assets/desktop.js
v2/test/kitchensink/build/darwin/desktop/kitchensink
v2/test/kitchensink/frontend/package.json.md5
+5 -1
View File
@@ -1,4 +1,8 @@
{
"go.formatTool": "goimports",
"eslint.alwaysShowStatus": true
"eslint.alwaysShowStatus": true,
"files.associations": {
"__locale": "c",
"ios": "c"
}
}
+1 -6
View File
@@ -40,9 +40,4 @@ Wails is what it is because of the time and effort given by these great people.
* [Balakrishna Prasad Ganne](https://github.com/aayush420)
* [Charaf Rezrazi](https://github.com/Rezrazi)
* [misitebao](https://github.com/misitebao)
* [Elie Grenon](https://github.com/DrunkenPoney)
* [SophieAu](https://github.com/SophieAu)
* [Alexander Matviychuk](https://github.com/alexmat)
* [RH12503](https://github.com/RH12503)
* [hi019](https://github.com/hi019)
* [Elie Grenon](https://github.com/DrunkenPoney)
+9 -67
View File
@@ -2,7 +2,7 @@
<img src="logo_cropped.png" width="40%"><br/>
</p>
<p align="center">
Build desktop applications using Go & Web Technologies.<br/><br/>
A framework for building desktop applications using Go & Web Technologies.<br/><br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails"><img src="https://goreportcard.com/badge/github.com/wailsapp/wails"/></a>
<a href="http://godoc.org/github.com/wailsapp/wails"><img src="https://img.shields.io/badge/godoc-reference-blue.svg"/></a>
@@ -20,7 +20,7 @@ The official docs can be found at [https://wails.app](https://wails.app).
## Features
- Use standard Go for the backend
- Use standard Go libraries/frameworks for the backend
- Use any frontend technology to build your UI
- Quickly create Vue, Vuetify or React frontends for your Go programs
- Expose Go methods/functions to the frontend via a single bind command
@@ -30,21 +30,6 @@ The official docs can be found at [https://wails.app](https://wails.app).
- Powerful cli tool
- Multiplatform
## Sponsors
This project is supported by these kind people / companies:
<a href="https://www.jetbrains.com?from=Wails" style="width:100px"><img src="jetbrains-grayscale.png" width="100"/></a>
<a href="https://pace.dev" style="width:100px"><img src="pace.jpeg" width="100"/></a>
<a href="https://github.com/tc-hib" style="width:50px;border-radius: 50%">
<img src="https://github.com/tc-hib.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/picatz" style="width:50px;border-radius: 50%">
<img src="https://github.com/picatz.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/tylertravisty" style="width:50px;border-radius: 50%">
<img src="https://github.com/tylertravisty.png?size=50" width="50" style="border-radius: 50%"/>
</a>
## Installation
@@ -129,59 +114,17 @@ It is recommended at this stage to read the comprehensive documentation at [http
When I saw WebView, I thought "What I really want is tooling around building a WebView app, a bit like Rails is to Ruby". So initially it was a play on words (Webview on Rails). It just so happened to also be a homophone of the English name for the [Country](https://en.wikipedia.org/wiki/Wales) I am from. So it stuck.
## Contributors
<a href="https://github.com/qaisjp"><img src="https://github.com/qaisjp.png?size=40" width="40"/></a>
<a href="https://github.com/alee792"><img src="https://github.com/alee792.png?size=40" width="40"/></a>
<a href="https://github.com/lanzafame"><img src="https://github.com/lanzafame.png?size=40" width="40"/></a>
<a href="https://github.com/mattn"><img src="https://github.com/mattn.png?size=40" width="40"/></a>
<a href="https://github.com/0xflotus"><img src="https://github.com/0xflotus.png?size=40" width="40"/></a>
<a href="https://github.com/mdhender"><img src="https://github.com/mdhender.png?size=40" width="40"/></a>
<a href="https://github.com/fishfishfish2104"><img src="https://github.com/fishfishfish2104.png?size=40" width="40"/></a>
<a href="https://github.com/intelwalk"><img src="https://github.com/intelwalk.png?size=40" width="40"/></a>
<a href="https://github.com/ocelotsloth"><img src="https://github.com/ocelotsloth.png?size=40" width="40"/></a>
<a href="https://github.com/bh90210"><img src="https://github.com/bh90210.png?size=40" width="40"/></a>
<a href="https://github.com/iceleo-com"><img src="https://github.com/iceleo-com.png?size=40" width="40"/></a>
<a href="https://github.com/fallendusk"><img src="https://github.com/fallendusk.png?size=40" width="40"/></a>
<a href="https://github.com/Chronophylos"><img src="https://github.com/Chronophylos.png?size=40" width="40"/></a>
<a href="https://github.com/Vaelatern"><img src="https://github.com/Vaelatern.png?size=40" width="40"/></a>
<a href="https://github.com/mewmew"><img src="https://github.com/mewmew.png?size=40" width="40"/></a>
<a href="https://github.com/kraney"><img src="https://github.com/kraney.png?size=40" width="40"/></a>
<a href="https://github.com/JackMordaunt"><img src="https://github.com/JackMordaunt.png?size=40" width="40"/></a>
<a href="https://github.com/MichaelHipp"><img src="https://github.com/MichaelHipp.png?size=40" width="40"/></a>
<a href="https://github.com/tmclane"><img src="https://github.com/tmclane.png?size=40" width="40"/></a>
<a href="https://github.com/Rested"><img src="https://github.com/Rested.png?size=40" width="40"/></a>
<a href="https://github.com/Jarek-SRT"><img src="https://github.com/Jarek-SRT.png?size=40" width="40"/></a>
<a href="https://github.com/konez2k"><img src="https://github.com/konez2k.png?size=40" width="40"/></a>
<a href="https://github.com/sayuthisobri"><img src="https://github.com/sayuthisobri.png?size=40" width="40"/></a>
<a href="https://github.com/dedo1911"><img src="https://github.com/dedo1911.png?size=40" width="40"/></a>
<a href="https://github.com/fdidron"><img src="https://github.com/fdidron.png?size=40" width="40"/></a>
<a href="https://github.com/Splode"><img src="https://github.com/Splode.png?size=40" width="40"/></a>
<a href="https://github.com/Lyimmi"><img src="https://github.com/Lyimmi.png?size=40" width="40"/></a>
<a href="https://github.com/Unix4ever"><img src="https://github.com/Unix4ever.png?size=40" width="40"/></a>
<a href="https://github.com/timkippdev"><img src="https://github.com/timkippdev.png?size=40" width="40"/></a>
<a href="https://github.com/kyoto44"><img src="https://github.com/kyoto44.png?size=40" width="40"/></a>
<a href="https://github.com/artooro"><img src="https://github.com/artooro.png?size=40" width="40"/></a>
<a href="https://github.com/ilgityildirim"><img src="https://github.com/ilgityildirim.png?size=40" width="40"/></a>
<a href="https://github.com/gelleson"><img src="https://github.com/gelleson.png?size=40" width="40"/></a>
<a href="https://github.com/kmuchmore"><img src="https://github.com/kmuchmore.png?size=40" width="40"/></a>
<a href="https://github.com/aayush420"><img src="https://github.com/aayush420.png?size=40" width="40"/></a>
<a href="https://github.com/Rezrazi"><img src="https://github.com/Rezrazi.png?size=40" width="40"/></a>
<a href="https://github.com/misitebao"><img src="https://github.com/misitebao.png?size=40" width="40"/></a>
<a href="https://github.com/DrunkenPoney"><img src="https://github.com/DrunkenPoney.png?size=40" width="40"/></a>
<a href="https://github.com/SophieAu"><img src="https://github.com/SophieAu.png?size=40" width="40"/></a>
<a href="https://github.com/alexmat"><img src="https://github.com/alexmat.png?size=40" width="40"/></a>
<a href="https://github.com/RH12503"><img src="https://github.com/RH12503.png?size=40" width="40"/></a>
<a href="https://github.com/hi019"><img src="https://github.com/hi019.png?size=40" width="40"/></a></a>
<a href="https://github.com/Igogrek"><img src="https://github.com/Igogrek.png?size=40" width="40"/></a></a>
## Special Mentions
## Shoulders of Giants
Without the following people, this project would never have existed:
* [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been immense. More patience than you can throw a stick at (Not long now Dustin!).
* [Serge Zaitsev](https://github.com/zserge) - Creator of [Webview](https://github.com/zserge/webview) which Wails uses for the windowing.
And without [these people](CONTRIBUTORS.md), it wouldn't be what it is today. A huge thank you to each and every one of you!
Special Mentions:
* [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to v1.
This project was mainly coded to the following albums:
@@ -207,8 +150,7 @@ This project was mainly coded to the following albums:
## Special Thanks
<p align="center" style="text-align: center">
<a href="https://pace.dev"><img src="pace.jpeg"/></a><br/>
A *huge* thanks to <a href="https://pace.dev">Pace</a> for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!<br/><br/>
A *huge* thanks to <a href="https://pace.dev"><img src="pace.jpeg"/> Pace</a> for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!<br/><br/>
If you are looking for a Project Management tool that's powerful but quick and easy to use, check them out!<br/><br/>
</p>
+10
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -24,7 +24,7 @@ func (g *GitHubHelper) GetVersionTags() ([]*SemanticVersion, error) {
result := []*SemanticVersion{}
var err error
resp, err := http.Get("https://api.github.com/repos/wailsapp/wails/releases")
resp, err := http.Get("https://api.github.com/repos/wailsapp/wails/tags")
if err != nil {
return result, err
}
+93 -23
View File
@@ -2,6 +2,7 @@ package cmd
import (
"fmt"
"io/ioutil"
"os"
"os/exec"
"os/user"
@@ -11,12 +12,13 @@ import (
"strings"
"time"
"github.com/leaanthony/mewn"
"github.com/leaanthony/mewn/lib"
"github.com/leaanthony/slicer"
"github.com/leaanthony/spinner"
wailsruntime "github.com/wailsapp/wails/runtime"
)
const xgoVersion = "1.16.2"
const xgoVersion = "1.0.1"
var fs = NewFSHelper()
@@ -59,6 +61,30 @@ func InstallGoDependencies(verbose bool) error {
return nil
}
// EmbedAssets will embed the built frontend assets via mewn.
func EmbedAssets() ([]string, error) {
mewnFiles := lib.GetMewnFiles([]string{}, false)
referencedAssets, err := lib.GetReferencedAssets(mewnFiles)
if err != nil {
return []string{}, err
}
targetFiles := []string{}
for _, referencedAsset := range referencedAssets {
packfileData, err := lib.GeneratePackFileString(referencedAsset, false)
if err != nil {
return []string{}, err
}
targetFile := filepath.Join(referencedAsset.BaseDir, referencedAsset.PackageName+"-mewn.go")
targetFiles = append(targetFiles, targetFile)
ioutil.WriteFile(targetFile, []byte(packfileData), 0644)
}
return targetFiles, nil
}
func InitializeCrossCompilation(verbose bool) error {
// Check Docker
if err := CheckIfInstalled("docker"); err != nil {
@@ -101,10 +127,7 @@ func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOpt
// Check build directory
buildDirectory := filepath.Join(fs.Cwd(), "build")
if !fs.DirExists(buildDirectory) {
err := fs.MkDir(buildDirectory)
if err != nil {
return err
}
fs.MkDir(buildDirectory)
}
buildCommand := slicer.String()
@@ -175,6 +198,11 @@ func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOpt
// BuildNative builds on the target platform itself.
func BuildNative(binaryName string, forceRebuild bool, buildMode string, projectOptions *ProjectOptions) error {
// Check Mewn is installed
if err := CheckMewn(projectOptions.Verbose); err != nil {
return err
}
if err := CheckWindres(); err != nil {
return err
}
@@ -247,6 +275,12 @@ func BuildNative(binaryName string, forceRebuild bool, buildMode string, project
func BuildApplication(binaryName string, forceRebuild bool, buildMode string, packageApp bool, projectOptions *ProjectOptions) error {
var err error
// embed resources
targetFiles, err := EmbedAssets()
if err != nil {
return err
}
if projectOptions.CrossCompile {
if err := InitializeCrossCompilation(projectOptions.Verbose); err != nil {
return err
@@ -262,6 +296,20 @@ func BuildApplication(binaryName string, forceRebuild bool, buildMode string, pa
}
}
// cleanup temporary embedded assets
defer func() {
for _, filename := range targetFiles {
if err := os.Remove(filename); err != nil {
fmt.Println(err)
}
}
// Removed by popular demand
// TODO: Potentially add a flag to cleanup
// if projectOptions.Platform == "windows" {
// helper.CleanWindows(projectOptions)
// }
}()
if projectOptions.CrossCompile {
err = BuildDocker(binaryName, buildMode, projectOptions)
} else {
@@ -326,6 +374,30 @@ func BuildFrontend(projectOptions *ProjectOptions) error {
return nil
}
// CheckMewn checks if mewn is installed and if not, attempts to fetch it
func CheckMewn(verbose bool) (err error) {
programHelper := NewProgramHelper(verbose)
if !programHelper.IsInstalled("mewn") {
var buildSpinner *spinner.Spinner
if !verbose {
buildSpinner = spinner.New()
buildSpinner.SetSpinSpeed(50)
buildSpinner.Start("Installing Mewn asset packer...")
}
err := programHelper.InstallGoPackage("github.com/leaanthony/mewn/cmd/mewn")
if err != nil {
if buildSpinner != nil {
buildSpinner.Error()
}
return err
}
if buildSpinner != nil {
buildSpinner.Success()
}
}
return nil
}
// CheckWindres checks if Windres is installed and if not, aborts
func CheckWindres() (err error) {
if runtime.GOOS != "windows" { // FIXME: Handle windows cross-compile for windows!
@@ -421,18 +493,11 @@ func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forc
}
// Update md5sum file
err := os.WriteFile(md5sumFile, []byte(packageJSONMD5), 0644)
if err != nil {
return err
}
ioutil.WriteFile(md5sumFile, []byte(packageJSONMD5), 0644)
}
// Install the runtime
if caller == "build" {
err = InstallProdRuntime(projectDir, projectOptions)
} else {
err = InstallBridge(projectDir, projectOptions)
}
err = InstallRuntime(caller, projectDir, projectOptions)
if err != nil {
return err
}
@@ -445,17 +510,28 @@ func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forc
return nil
}
// InstallRuntime installs the correct runtime for the type of build
func InstallRuntime(caller string, projectDir string, projectOptions *ProjectOptions) error {
if caller == "build" {
return InstallProdRuntime(projectDir, projectOptions)
}
return InstallBridge(projectDir, projectOptions)
}
// InstallBridge installs the relevant bridge javascript library
func InstallBridge(projectDir string, projectOptions *ProjectOptions) error {
bridgeFileData := mewn.String("../runtime/assets/bridge.js")
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.BridgeJS)
err := fs.CreateFile(bridgeFileTarget, []byte(bridgeFileData))
return err
}
// InstallProdRuntime installs the production runtime
func InstallProdRuntime(projectDir string, projectOptions *ProjectOptions) error {
prodInit := mewn.String("../runtime/js/runtime/init.js")
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.InitJS)
err := fs.CreateFile(bridgeFileTarget, []byte(prodInit))
return err
}
@@ -519,9 +595,3 @@ func ldFlags(po *ProjectOptions, buildMode string) string {
}
return ldflags
}
func getGitConfigValue(key string) (string, error) {
output, err := exec.Command("git", "config", "--get", "--null", key).Output()
// When using --null git appends a null character (\u0000) to the command output
return strings.TrimRight(string(output), "\u0000"), err
}
-19
View File
@@ -67,10 +67,6 @@ const (
Ctlos
// EndeavourOS linux distribution
EndeavourOS
// Crux linux distribution
Crux
// RHEL distribution
RHEL
)
// DistroInfo contains all the information relating to a linux distribution
@@ -133,8 +129,6 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Fedora
case "centos":
result.Distribution = CentOS
case "rhel":
result.Distribution = RHEL
case "arch":
result.Distribution = Arch
case "archlabs":
@@ -181,8 +175,6 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Solus
case "endeavouros":
result.Distribution = EndeavourOS
case "crux":
result.Distribution = Crux
default:
result.Distribution = Unknown
}
@@ -263,17 +255,6 @@ func RpmInstalled(packageName string) (bool, error) {
return exitCode == 0, nil
}
// PrtGetInstalled uses prt-get to see if a package is installed
func PrtGetInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
prtget := program.FindProgram("prt-get")
if prtget == nil {
return false, fmt.Errorf("cannot check dependencies: prt-get not found")
}
_, _, exitCode, _ := prtget.Run("isinst", packageName)
return exitCode == 0, nil
}
// RequestSupportForDistribution promts the user to submit a request to support their
// currently unsupported distribution
func RequestSupportForDistribution(distroInfo *DistroInfo) error {
-38
View File
@@ -138,25 +138,6 @@ distributions:
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
rhel:
id: rhel
releases:
default:
version: default
name: Red Hat Enterprise Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo yum install gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
- name: npm
help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
libraries:
- name: gtk3-devel
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
fedora:
id: fedora
releases:
@@ -326,22 +307,3 @@ distributions:
gccversioncommand: *gccdumpfullversion
programs: *opensusedefaultprograms
libraries: *opensusedefaultlibraries
crux:
id: crux
releases:
default:
version: default
name: Crux Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo prt-get depinst gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo prt-get depinst pkg-config` and try again
- name: npm
help: Please install with `sudo prt-get depinst nodejs` and try again
libraries:
- name: gtk3
help: Please install with `sudo prt-get depinst gtk3` and try again
- name: webkitgtk
help: Please install with `sudo prt-get depinst webkitgtk` and try again
+1 -1
View File
@@ -354,7 +354,7 @@ func (b *PackageHelper) PackageWindows(po *ProjectOptions, cleanUp bool) error {
"docker", "run", "--rm",
"-v", outputDir + ":/build",
"--entrypoint", "/bin/sh",
"wailsapp/xgo:1.16.2",
"wailsapp/xgo:latest",
"-c", "/usr/bin/x86_64-w64-mingw32-windres -o /build/" + basename + "-res.syso /build/" + basename + ".rc",
}
if err := NewProgramHelper().RunCommandArray(args); err != nil {
+2 -9
View File
@@ -99,16 +99,11 @@ func (s *SystemHelper) setup() error {
if config.Name != "" {
systemConfig["name"] = PromptRequired("What is your name", config.Name)
} else if n, err := getGitConfigValue("user.name"); err == nil && n != "" {
systemConfig["name"] = PromptRequired("What is your name", n)
} else {
systemConfig["name"] = PromptRequired("What is your name")
}
if config.Email != "" {
systemConfig["email"] = PromptRequired("What is your email address", config.Email)
} else if e, err := getGitConfigValue("user.email"); err == nil && e != "" {
systemConfig["email"] = PromptRequired("What is your email address", e)
} else {
systemConfig["email"] = PromptRequired("What is your email address")
}
@@ -185,7 +180,7 @@ func (s *SystemHelper) Initialise() error {
return s.setup()
}
// SystemConfig - Defines system wide configuration data
// SystemConfig - Defines system wode configuration data
type SystemConfig struct {
Name string `json:"name"`
Email string `json:"email"`
@@ -283,7 +278,7 @@ func CheckDependencies(logger *Logger) (bool, error) {
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM, EndeavourOS:
libraryChecker = PacmanInstalled
case CentOS, Fedora, Tumbleweed, Leap, RHEL:
case CentOS, Fedora, Tumbleweed, Leap:
libraryChecker = RpmInstalled
case Gentoo:
libraryChecker = EqueryInstalled
@@ -291,8 +286,6 @@ func CheckDependencies(logger *Logger) (bool, error) {
libraryChecker = XbpsInstalled
case Solus:
libraryChecker = EOpkgInstalled
case Crux:
libraryChecker = PrtGetInstalled
default:
return false, RequestSupportForDistribution(distroInfo)
}
@@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"ng": "npx ng",
"serve": "npx ng serve --poll=2000 --host=0.0.0.0",
"start": "npx ng serve --poll=2000 --host=0.0.0.0",
"build": "npx ng build --single-bundle true --output-hashing none --prod --bundle-styles false",
"test": "npx ng test",
"lint": "npx ng lint",
@@ -1,7 +1,7 @@
package main
import (
_ "embed"
"github.com/leaanthony/mewn"
"github.com/wailsapp/wails"
)
@@ -9,14 +9,11 @@ func basic() string {
return "World!"
}
//go:embed frontend/dist/my-app/main.js
var js string
//go:embed frontend/dist/my-app/styles.css
var css string
func main() {
js := mewn.String("./frontend/dist/my-app/main.js")
css := mewn.String("./frontend/dist/my-app/styles.css")
app := wails.CreateApp(&wails.AppConfig{
Width: 1024,
Height: 768,
+1 -1
View File
@@ -14,7 +14,7 @@
"author": "bh90210 <ktc@pm.me>",
"created": "2019-06-15 18:23:48.666414555 +0300 EEST m=+223.934866008",
"frontenddir": "frontend",
"serve": "npm run serve",
"serve": "npx ng serve --poll=2000",
"bridge": "src",
"wailsdir": ""
}
@@ -12,7 +12,7 @@
"@wailsapp/runtime": "^1.0.10"
},
"scripts": {
"serve": "react-scripts start",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
@@ -1,7 +1,7 @@
package main
import (
_ "embed"
"github.com/leaanthony/mewn"
"github.com/wailsapp/wails"
)
@@ -9,14 +9,11 @@ func basic() string {
return "World!"
}
//go:embed frontend/build/static/js/main.js
var js string
//go:embed frontend/build/static/css/main.css
var css string
func main() {
js := mewn.String("./frontend/build/static/js/main.js")
css := mewn.String("./frontend/build/static/css/main.css")
app := wails.CreateApp(&wails.AppConfig{
Width: 1024,
Height: 768,

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