Compare commits

...

114 Commits

Author SHA1 Message Date
Lea Anthony e2599c0f76 v1.9.0 2020-10-29 20:20:26 +11:00
Lea Anthony 39878c1a52 v1.8.1 2020-10-29 20:17:42 +11:00
Lea Anthony c0932f3fa4 Merge branches '542-use-supplied-HTML' and 'develop' of github.com:wailsapp/wails into develop 2020-10-29 20:17:37 +11:00
Lea Anthony dc605c1683 Allow use of custom HTML (#545) 2020-10-29 19:57:11 +11:00
Lea Anthony c7c9ace232 Allow use of custom HTML 2020-10-29 19:54:49 +11:00
Lea Anthony 5be197b68f Update contributors 2020-10-28 21:33:06 +11:00
Lea Anthony 3e5c406c95 Merge branch 'develop' of https://github.com/wailsapp/wails into develop 2020-10-28 21:21:13 +11:00
Lea Anthony be6bebebe4 v1.8.1-pre7 2020-10-28 21:21:10 +11:00
Lea Anthony 5b33ed28fd Initial support for firebug (#543)
* Initial support for firebug

* Remove windows message
2020-10-28 21:20:47 +11:00
Lea Anthony b7a59daee1 v1.8.1-pre6 2020-10-28 20:39:06 +11:00
Lea Anthony 3d4ea3918b Remove zero copy string conversion 2020-10-28 20:38:33 +11:00
Lea Anthony 4347d950d1 Updated Contributors 2020-10-28 08:41:07 +11:00
Lea Anthony 8e096ff0b0 Update issue templates (#541) 2020-10-27 21:08:10 +11:00
Lea Anthony 6a03a5f8eb Merge branch 'develop' of https://github.com/wailsapp/wails into develop 2020-10-26 20:02:59 +11:00
Lea Anthony 6116f5fc05 v1.8.1-pre5 2020-10-26 20:02:54 +11:00
Lea Anthony c49192e847 Merge branch 'develop' of github.com:wailsapp/wails into develop 2020-10-26 20:00:48 +11:00
Lea Anthony 6fb2489dae v1.8.1-pre4 2020-10-26 19:55:55 +11:00
Balakrishna Prasad Ganne c1acbed2c7 Replaced the old v-content tag with the new v-main (#536) 2020-10-26 18:44:51 +11:00
Lea Anthony 8f6275721a Update contributors 2020-10-26 18:43:47 +11:00
Balakrishna Prasad Ganne ef40a2eb8e Update Vuetify in package.json (#537) 2020-10-26 18:43:04 +11:00
Lea Anthony 4f7b5c71d1 Merge branch 'develop' of github.com:wailsapp/wails into develop 2020-10-26 09:03:04 +11:00
Lea Anthony 49db62afd0 Add v2 artefacts 2020-10-26 09:02:56 +11:00
Lea Anthony 9098632aa3 Add tags to build 2020-10-25 20:44:44 +11:00
Lea Anthony f87a0f039a Make vue 3 template linux/mac only 2020-10-25 20:33:04 +11:00
Lea Anthony a03f5871bd Update contributors 2020-10-25 20:30:47 +11:00
Kyle Muchmore 46f026c04c Added semicolons and mocha import 2020-10-25 20:30:08 +11:00
Kyle Muchmore 5e2373acb1 single quotes and tabs
Converted vue.config.js to using single quotes
Converted example.spec.ts to tabs instead of spaces.
2020-10-25 20:30:08 +11:00
Kyle Muchmore 918d6240f2 converted spaces to tabs in vue.config.js 2020-10-25 20:30:08 +11:00
Kyle Muchmore 453a225427 feat: Vue3, Vue Router, Vuex, and Typescript Template 2020-10-25 20:30:08 +11:00
Lea Anthony 2795684d5c Update Contributors 2020-10-25 20:27:40 +11:00
Altynbek e295a5abd9 delete escape tags 2020-10-25 20:26:29 +11:00
Altynbek fdf18b7dfa add tags to func BuildDocker 2020-10-25 20:26:29 +11:00
Altynbek 1e95d0eb44 add args tags to func BuildNative 2020-10-25 20:26:29 +11:00
Altynbek d7f2d800de add fields Tags to ProjectOptions 2020-10-25 20:26:29 +11:00
Lea Anthony ef4d9ae97c Add warnings for windows builds 2020-10-25 13:57:22 +11:00
Lea Anthony e8a85d4cd6 Support platform list in templates 2020-10-16 15:15:49 +11:00
Travis McLane 84f407278c use wailsapp/xgo:1.0.1 for cross-compiling 2020-09-15 20:17:20 +10:00
Travis McLane c72c6d2408 update messages to output xgo version
TODO: allow image override
2020-09-15 20:17:20 +10:00
Travis McLane 0ad0092aa2 implement gopath handling during cross compilation 2020-09-15 20:17:20 +10:00
Ilgıt Yıldırım a84f43d959 fixed return 2020-09-15 19:13:49 +10:00
Ilgıt Yıldırım b48da620b3 added Get method 2020-09-15 19:13:49 +10:00
Lea Anthony ed8884a581 v1.8.1-pre1 2020-09-15 17:52:39 +10:00
Lea Anthony 05d27dda64 Remove incorrect build flag 2020-09-15 17:51:14 +10:00
Ilgıt Yıldırım fe2c5e8611 handle Set error on Update method 2020-09-13 18:50:41 +10:00
Lea Anthony 422ee22d0c Updated contributors 2020-09-11 06:40:36 +10:00
Lea Anthony 22f94cfdb6 Merge branch 'artooro-angular-routing-fix' into develop 2020-09-11 06:39:15 +10:00
Arthur Wiebe 5d754f40de resolve angular routing broken when app is built 2020-09-09 22:06:14 -04:00
Lea Anthony c9b26c6352 Merge branch 'develop' 2020-09-10 06:55:39 +10:00
Lea Anthony 6f0696631f v1.8.0 2020-09-10 06:45:42 +10:00
Lea Anthony fefb54de12 v1.7.2-pre12 2020-09-10 06:40:13 +10:00
Lea Anthony b4224066f7 css fix for vanilla 2020-09-10 06:39:36 +10:00
Lea Anthony 3d9ef75488 v1.7.2-pre11 2020-09-10 06:19:07 +10:00
Lea Anthony 79ecb0704e test fix 2020-09-10 06:17:17 +10:00
Lea Anthony 8154887824 v1.7.2-pre10 2020-09-09 06:58:30 +10:00
Lea Anthony 39ae91a250 Simplify Subscribe() 2020-09-09 06:27:57 +10:00
Lea Anthony 861f5f2a1c v1.7.2-pre9 2020-09-08 07:06:27 +10:00
Lea Anthony 89ed00d6ed Fix svelte for Windows 2020-09-08 07:04:01 +10:00
Lea Anthony 1e1834158b fix vanilla template for windows 2020-09-07 20:45:20 +10:00
Lea Anthony 214fcf03b9 v1.7.2-pre8 2020-09-07 20:28:29 +10:00
Tim Kipp 82ac4f1358 chore: removed Svelte TypeScript support for now 2020-09-07 17:35:12 +10:00
Tim Kipp 8b7cd03428 chore: removed Svelte template link 2020-09-07 17:35:12 +10:00
Tim Kipp 4d2b4fec45 feat: added Svelte template 2020-09-07 17:35:12 +10:00
Lea Anthony bc0478b2b2 Update README.md 2020-09-06 15:45:37 +10:00
Lea Anthony d59849b952 v1.7.2-pre7 2020-09-05 07:11:28 +10:00
Lea Anthony 806821ad49 v1.7.2-pre6 2020-09-05 07:01:15 +10:00
Lea Anthony a4cc95351f Updated runtime package version 2020-09-05 06:52:39 +10:00
Lea Anthony f851b89350 v1.7.2-pre5 2020-09-04 20:23:26 +10:00
Lea Anthony 7f72189231 updates 2020-09-04 20:20:21 +10:00
Lea Anthony ef79dd95cf Merge branch 'sync-store' into develop 2020-09-04 20:19:20 +10:00
Lea Anthony d49b146eaa Add mutex to store 2020-09-04 20:08:31 +10:00
Lea Anthony 8c051e004d Release v1.7.2-pre4 2020-09-03 20:13:55 +10:00
Lea Anthony c02b9ac032 Update contributors 2020-09-03 20:12:57 +10:00
Dmitry 35f839ae65 Support Ctlos Linux 2020-09-03 20:11:39 +10:00
Lea Anthony 8a6c44963d Upgrade packages for js runtime 2020-09-02 08:51:21 +10:00
Lea Anthony d31c5522e9 fix: revert location of wails config 2020-09-02 07:07:12 +10:00
Lea Anthony 6e5b2ce871 Update Contributors 2020-09-01 20:44:50 +10:00
Tim Kipp c2c9c331cd refactor: attempt to refactor spacing issues detected by houndci 2020-09-01 20:43:20 +10:00
Tim Kipp 9d5280d4d6 feat(templates): updated react template to latest CRA implementation 2020-09-01 20:43:20 +10:00
Lea Anthony 0474f15c05 Simplify Store type conversions 2020-09-01 20:36:18 +10:00
Lea Anthony ba0af0c16d Lint fix! 2020-08-31 21:17:04 +10:00
Lea Anthony c9f1247284 Updated to use specialised update fuctions 2020-08-31 21:10:32 +10:00
Lea Anthony baa661532d Now using reflection
Update() can now take specialised functions
2020-08-31 21:10:20 +10:00
Lea Anthony 43a5f410d9 Major updates
Automatic type conversion
Support struct data
Custom error handler
2020-08-31 20:00:39 +10:00
Lea Anthony 0ab6a93e0c Update runtime defs
Use runtime.Store instead of wails.Store
2020-08-30 16:07:53 +10:00
Lea Anthony 485df87560 Update vanilla template 2020-08-30 15:49:37 +10:00
Lea Anthony 176c447e87 Update to latest assets 2020-08-30 15:49:29 +10:00
Lea Anthony aa9cb5e58e Add store to js runtime 2020-08-30 15:49:12 +10:00
Lea Anthony 9a7be38462 Update WailsInit checker 2020-08-30 15:47:32 +10:00
Lea Anthony 678c2194db Add Sync Store 2020-08-30 15:46:50 +10:00
Lea Anthony 9f9c9e27de Move runtime out to package 2020-08-30 15:46:31 +10:00
Lea Anthony 01a1288364 Merge branch 'develop' of github.com:wailsapp/wails into develop 2020-08-23 09:50:58 +10:00
Lea Anthony 5cd34e07b9 Release v1.7.2-pre3 2020-08-23 09:50:16 +10:00
Lea Anthony 2290f36939 Allow customising of info.plist 2020-08-23 09:49:54 +10:00
Lea Anthony 670986df5b Lintastic update 2020-08-21 23:44:22 +10:00
Lea Anthony 086cd02cd4 Lint fix 2020-08-21 23:44:22 +10:00
Lea Anthony d8c8dd57fa Add artem to Contributors 2020-08-21 23:44:22 +10:00
Lea Anthony 2d158d449a Use double encoding for notify data 2020-08-21 23:44:22 +10:00
Lea Anthony 04577c242b Updated contributors 2020-08-04 05:06:50 +10:00
Zámbó Levente ac0d4493d3 fix(bridge): fixed long message emit issue #469 2020-08-04 05:06:43 +10:00
Lea Anthony b123156331 v1.7.2-pre2 2020-07-27 21:13:46 +10:00
Lea Anthony 23468ce7c7 Don't clean up windows files 2020-07-27 21:10:32 +10:00
Lea Anthony 7b6bb5e259 Update Contributors 2020-07-16 19:41:41 +10:00
konez2k 77bd34d601 refactor: use proper user config directory
replace os.UserHomeDir with os.UserConfigDir which manages properly the config folder based on platform.
2020-07-13 20:00:59 +10:00
konez2k d750077a90 Update minimum go version to 1.13 2020-07-13 20:00:59 +10:00
konez2k 71df64087b refactor homedir to stdlib os.UserHomeDir (go1.12)
- remove mitchellh/go-homedir dependency
2020-07-13 20:00:59 +10:00
Lea Anthony f86996705b v1.7.1 2020-07-03 20:07:02 +10:00
Lea Anthony 254aa664d7 Fix contributors 2020-07-03 20:07:02 +10:00
Lea Anthony c8371ee824 v1.7.0-pre2 2020-07-03 20:07:02 +10:00
Lea Anthony 02e0250555 fix: vanilla template for windows 2020-07-03 20:07:02 +10:00
Lea Anthony e1b025cab6 fix: windows icon name 2020-07-03 20:07:02 +10:00
Lea Anthony 626854f1b7 free filter memory 2020-07-03 20:07:02 +10:00
Lea Anthony 98468d1c4d v1.7.0-pre1 2020-07-03 20:07:02 +10:00
Lea Anthony 1062aeb136 Add ldflags option to build 2020-07-03 20:07:02 +10:00
Lea Anthony aa93e5d8d2 Merge branch 'develop' 2020-06-19 09:42:15 +10:00
100 changed files with 5205 additions and 4226 deletions
+8 -2
View File
@@ -8,8 +8,12 @@ assignees: ''
---
#####################################################
If you have a technical issue, please do not open a bug this way!
Please use the `wails issue` command!
**If you have a technical issue, please do not open a bug this way!**
Please use the `wails issue` command!
If you do not do this then the issue may be closed automatically.
NOTE: If your bug is related to Windows, make sure you read
the [Windows Developer Guide](https://wails.app/guides/windows/)
#####################################################
**Description**
@@ -33,3 +37,5 @@ Please provide your platform, GO version and variables, etc
**Additional context**
Add any other context about the problem here.
- [ ] This issue is for Windows and I have read the [Windows Developer Guide](https://wails.app/guides/windows/)
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+3 -3
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.12
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.12
go-version: 1.13
id: go
- name: Check out code into the Go module directory
@@ -27,6 +27,6 @@ jobs:
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version
+3 -3
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.12
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.12
go-version: 1.13
id: go
- name: Check out code into the Go module directory
@@ -27,6 +27,6 @@ jobs:
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version
+4 -4
View File
@@ -4,7 +4,7 @@ on:
branches:
- master
tags:
- '!**pre**'
- '!**pre**'
jobs:
build:
@@ -15,10 +15,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.12
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.12
go-version: 1.13
id: go
- name: Check out code into the Go module directory
@@ -29,6 +29,6 @@ jobs:
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version
+6 -1
View File
@@ -16,4 +16,9 @@ examples/**/example*
cmd/wails/wails
.DS_Store
tmp
node_modules/
node_modules/
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
+12
View File
@@ -28,3 +28,15 @@ Wails is what it is because of the time and effort given by these great people.
* [msms](https://github.com/sayuthisobri)
* [dedo1911](https://github.com/dedo1911)
* [Florian Didron](https://github.com/fdidron)
* [Christopher Murphy](https://github.com/Splode)
* [Zámbó, Levente](https://github.com/Lyimmi)
* [artem](https://github.com/Unix4ever)
* [Tim Kipp](https://github.com/timkippdev)
* [Dmitry Gomzyakov](https://github.com/kyoto44)
* [Arthur Wiebe](https://github.com/artooro)
* [Ilgıt Yıldırım](https://github.com/ilgityildirim)
* [Altynbek](https://github.com/gelleson)
* [Kyle](https://github.com/kmuchmore)
* [Balakrishna Prasad Ganne](https://github.com/aayush420)
* [Charaf Rezrazi](https://github.com/Rezrazi)
* [misitebao](https://github.com/misitebao)
+2 -3
View File
@@ -12,7 +12,6 @@
<a href="https://houndci.com"><img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/></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://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"></a>
<a href="https://github.com/wailsapp/wails/workflows/latest-pre/badge.svg?branch=masterr" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/latest-pre/badge.svg?branch=master" alt="Pre-Release Pipelines"></a>
</p>
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
@@ -36,7 +35,7 @@ The official docs can be found at [https://wails.app](https://wails.app).
Wails uses cgo to bind to the native rendering engines so a number of platform dependent libraries are needed as well as an installation of Go. The basic requirements are:
- Go 1.12
- Go 1.13
- npm
### MacOS
@@ -57,7 +56,7 @@ _Ubuntu: 16.04, 18.04, 19.04_
_Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!_OS
#### Arch Linux / ArchLabs
#### Arch Linux / ArchLabs / Ctlos Linux
`sudo pacman -S webkit2gtk gtk3`
+12 -7
View File
@@ -2,7 +2,6 @@ package wails
import (
"os"
"runtime"
"syscall"
"github.com/syossan27/tebata"
@@ -13,6 +12,7 @@ import (
"github.com/wailsapp/wails/lib/ipc"
"github.com/wailsapp/wails/lib/logger"
"github.com/wailsapp/wails/lib/renderer"
wailsruntime "github.com/wailsapp/wails/runtime"
)
// -------------------------------- Compile time Flags ------------------------------
@@ -20,6 +20,16 @@ import (
// BuildMode indicates what mode we are in
var BuildMode = cmd.BuildModeProd
// Runtime is the Go Runtime struct
type Runtime = wailsruntime.Runtime
// Store is a state store used for syncing with
// the front end
type Store = wailsruntime.Store
// CustomLogger is a specialised logger
type CustomLogger = logger.CustomLogger
// ----------------------------------------------------------------------------------
// App defines the main application struct
@@ -106,11 +116,6 @@ func (a *App) start() error {
return err
}
// Enable console for Windows debug builds
if runtime.GOOS == "windows" && BuildMode == cmd.BuildModeDebug {
a.renderer.EnableConsole()
}
// Start signal handler
t := tebata.New(os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
t.Reserve(func() {
@@ -125,7 +130,7 @@ func (a *App) start() error {
a.ipc.Start(a.eventManager, a.bindingManager)
// Create the runtime
a.runtime = NewRuntime(a.eventManager, a.renderer)
a.runtime = wailsruntime.NewRuntime(a.eventManager, a.renderer)
// Start binding manager and give it our renderer
err = a.bindingManager.Start(a.renderer, a.runtime)
+2 -2
View File
File diff suppressed because one or more lines are too long
+35 -16
View File
@@ -18,6 +18,8 @@ import (
"github.com/leaanthony/spinner"
)
const xgoVersion = "1.0.1"
var fs = NewFSHelper()
// ValidateFrontendConfig checks if the frontend config is valid
@@ -90,16 +92,17 @@ func InitializeCrossCompilation(verbose bool) error {
}
var packSpinner *spinner.Spinner
msg := fmt.Sprintf("Pulling wailsapp/xgo:%s docker image... (may take a while)", xgoVersion)
if !verbose {
packSpinner = spinner.New("Pulling wailsapp/xgo:latest docker image... (may take a while)")
packSpinner = spinner.New(msg)
packSpinner.SetSpinSpeed(50)
packSpinner.Start()
} else {
println("Pulling wailsapp/xgo:latest docker image... (may take a while)")
println(msg)
}
err := NewProgramHelper(verbose).RunCommandArray([]string{"docker",
"pull", "wailsapp/xgo:latest"})
"pull", fmt.Sprintf("wailsapp/xgo:%s", xgoVersion)})
if err != nil {
if packSpinner != nil {
@@ -114,7 +117,7 @@ func InitializeCrossCompilation(verbose bool) error {
return nil
}
// BuildDocker builds the project using the cross compiling wailsapp/xgo:latest container
// BuildDocker builds the project using the cross compiling wailsapp/xgo:<xgoVersion> container
func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOptions) error {
var packSpinner *spinner.Spinner
if buildMode == BuildModeBridge {
@@ -140,24 +143,31 @@ func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOpt
"-v", fmt.Sprintf("%s:/build", filepath.Join(fs.Cwd(), "build")),
"-v", fmt.Sprintf("%s:/source", fs.Cwd()),
"-e", fmt.Sprintf("LOCAL_USER_ID=%v", userid),
"-e", fmt.Sprintf("FLAG_TAGS=%s", projectOptions.Tags),
"-e", fmt.Sprintf("FLAG_LDFLAGS=%s", ldFlags(projectOptions, buildMode)),
"-e", "FLAG_V=false",
"-e", "FLAG_X=false",
"-e", "FLAG_RACE=false",
"-e", "FLAG_BUILDMODE=default",
"-e", "FLAG_TRIMPATH=false",
"-e", fmt.Sprintf("TARGETS=%s", projectOptions.Platform+"/"+projectOptions.Architecture),
"-e", fmt.Sprintf("TARGETS=%s/%s", projectOptions.Platform, projectOptions.Architecture),
"-e", "GOPROXY=",
"-e", "GO111MODULE=on",
"wailsapp/xgo:latest",
".",
} {
buildCommand.Add(arg)
}
if projectOptions.GoPath != "" {
buildCommand.Add("-v")
buildCommand.Add(fmt.Sprintf("%s:/go", projectOptions.GoPath))
}
buildCommand.Add(fmt.Sprintf("wailsapp/xgo:%s", xgoVersion))
buildCommand.Add(".")
compileMessage := fmt.Sprintf(
"Packing + Compiling project for %s/%s using docker image wailsapp/xgo:latest",
projectOptions.Platform, projectOptions.Architecture)
"Packing + Compiling project for %s/%s using docker image wailsapp/xgo:%s",
projectOptions.Platform, projectOptions.Architecture, xgoVersion)
if buildMode == BuildModeDebug {
compileMessage += " (Debug Mode)"
@@ -216,10 +226,6 @@ func BuildNative(binaryName string, forceRebuild bool, buildMode string, project
buildCommand.Add("go")
buildCommand.Add("build")
if buildMode == BuildModeBridge {
// Ignore errors
buildCommand.Add("-i")
}
if binaryName != "" {
// Alter binary name based on OS
@@ -243,6 +249,10 @@ func BuildNative(binaryName string, forceRebuild bool, buildMode string, project
buildCommand.AddSlice([]string{"-ldflags", ldFlags(projectOptions, buildMode)})
if projectOptions.Tags != "" {
buildCommand.AddSlice([]string{"--tags", projectOptions.Tags})
}
if projectOptions.Verbose {
fmt.Printf("Command: %v\n", buildCommand.AsSlice())
}
@@ -293,9 +303,11 @@ func BuildApplication(binaryName string, forceRebuild bool, buildMode string, pa
fmt.Println(err)
}
}
if projectOptions.Platform == "windows" {
helper.CleanWindows(projectOptions)
}
// Removed by popular demand
// TODO: Potentially add a flag to cleanup
// if projectOptions.Platform == "windows" {
// helper.CleanWindows(projectOptions)
// }
}()
if projectOptions.CrossCompile {
@@ -528,6 +540,9 @@ func InstallProdRuntime(projectDir string, projectOptions *ProjectOptions) error
func ServeProject(projectOptions *ProjectOptions, logger *Logger) error {
go func() {
time.Sleep(2 * time.Second)
if projectOptions.Platform == "windows" {
logger.Yellow("*** Please note: Windows builds use mshtml which is only compatible with IE11. We strongly recommend only using IE11 when running 'wails serve'! For more information, please read https://wails.app/guides/windows/ ***")
}
logger.Green(">>>>> To connect, you will need to run '" + projectOptions.FrontEnd.Serve + "' in the '" + projectOptions.FrontEnd.Dir + "' directory <<<<<")
}()
location, err := filepath.Abs(filepath.Join("build", projectOptions.BinaryName))
@@ -559,6 +574,10 @@ func ldFlags(po *ProjectOptions, buildMode string) string {
ldflags += "-H windowsgui "
}
if po.UseFirebug {
ldflags += "-X github.com/wailsapp/wails/lib/renderer.UseFirebug=true "
}
ldflags += "-X github.com/wailsapp/wails.BuildMode=" + buildMode
// Add additional ldflags passed in via the `ldflags` cli flag
+4
View File
@@ -63,6 +63,8 @@ const (
PopOS
// Solus distribution
Solus
// Ctlos Linux distribution
Ctlos
)
// DistroInfo contains all the information relating to a linux distribution
@@ -129,6 +131,8 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Arch
case "archlabs":
result.Distribution = ArchLabs
case "ctlos":
result.Distribution = Ctlos
case "debian":
result.Distribution = Debian
case "ubuntu":
+10 -1
View File
@@ -193,7 +193,16 @@ distributions:
name: ArchLabs
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
libraries: *archdefaultlibraries
ctlos:
id: ctlos
releases:
default:
version: default
name: Ctlos Linux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
manjaro:
id: manjaro
releases:
+39 -17
View File
@@ -212,6 +212,8 @@ func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
packageID := strings.Join([]string{"wails", name, version}, ".")
plistData := newPlistData(name, exe, packageID, version, author)
appname := po.Name + ".app"
plistFilename := path.Join(build, appname, "Contents", "Info.plist")
customPlist := path.Join(b.fs.Cwd(), "info.plist")
// Check binary exists
source := path.Join(build, exe)
@@ -230,28 +232,48 @@ func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
// Remove the existing package
os.RemoveAll(appname)
// Create directories
exeDir := path.Join(build, appname, "/Contents/MacOS")
b.fs.MkDirs(exeDir, 0755)
resourceDir := path.Join(build, appname, "/Contents/Resources")
b.fs.MkDirs(resourceDir, 0755)
tmpl := template.New("infoPlist")
plistFile := filepath.Join(b.getPackageFileBaseDir(), "info.plist")
infoPlist, err := ioutil.ReadFile(plistFile)
if err != nil {
return err
}
tmpl.Parse(string(infoPlist))
// Write the template to a buffer
var tpl bytes.Buffer
err = tmpl.Execute(&tpl, plistData)
if err != nil {
return err
}
filename := path.Join(build, appname, "Contents", "Info.plist")
err = ioutil.WriteFile(filename, tpl.Bytes(), 0644)
if err != nil {
return err
// Do we have a custom plist in the project directory?
if !fs.FileExists(customPlist) {
// No - create a new plist from our defaults
tmpl := template.New("infoPlist")
plistFile := filepath.Join(b.getPackageFileBaseDir(), "info.plist")
infoPlist, err := ioutil.ReadFile(plistFile)
if err != nil {
return err
}
tmpl.Parse(string(infoPlist))
// Write the template to a buffer
var tpl bytes.Buffer
err = tmpl.Execute(&tpl, plistData)
if err != nil {
return err
}
// Save to the package
err = ioutil.WriteFile(plistFilename, tpl.Bytes(), 0644)
if err != nil {
return err
}
// Also write to project directory for customisation
err = ioutil.WriteFile(customPlist, tpl.Bytes(), 0644)
if err != nil {
return err
}
} else {
// Yes - we have a plist. Copy it to the package verbatim
err = fs.CopyFile(customPlist, plistFilename)
if err != nil {
return err
}
}
// Copy executable
+33 -1
View File
@@ -6,6 +6,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"runtime"
"sort"
"strings"
@@ -150,6 +151,7 @@ type ProjectOptions struct {
Template string `json:"-"`
BinaryName string `json:"binaryname"`
FrontEnd *frontend `json:"frontend,omitempty"`
Tags string `json:"tags"`
NPMProjectName string `json:"-"`
system *SystemHelper
log *Logger
@@ -162,6 +164,25 @@ type ProjectOptions struct {
Platform string
Architecture string
LdFlags string
GoPath string
UseFirebug bool
// Supported platforms
Platforms []string `json:"platforms,omitempty"`
}
// PlatformSupported returns true if the template is supported
// on the current platform
func (po *ProjectOptions) PlatformSupported() bool {
// Default is all platforms supported
if len(po.Platforms) == 0 {
return true
}
// Check that the platform is in the list
platformsSupported := slicer.String(po.Platforms)
return platformsSupported.Contains(runtime.GOOS)
}
// Defaults sets the default project template
@@ -232,13 +253,16 @@ func (po *ProjectOptions) PromptForInputs() error {
for _, k := range keys {
templateDetail := templateDetails[k]
templateList.Add(templateDetail)
if !templateDetail.Metadata.PlatformSupported() {
templateDetail.Metadata.Name = "* " + templateDetail.Metadata.Name
}
options.Add(fmt.Sprintf("%s - %s", templateDetail.Metadata.Name, templateDetail.Metadata.ShortDescription))
}
templateIndex := 0
if len(options.AsSlice()) > 1 {
templateIndex = PromptSelection("Please select a template", options.AsSlice(), 0)
templateIndex = PromptSelection("Please select a template (* means unsupported on current platform)", options.AsSlice(), 0)
}
if len(templateList.AsSlice()) == 0 {
@@ -249,6 +273,10 @@ func (po *ProjectOptions) PromptForInputs() error {
po.selectedTemplate = templateList.AsSlice()[templateIndex].(*TemplateDetails)
}
po.selectedTemplate.Metadata.Name = strings.TrimPrefix(po.selectedTemplate.Metadata.Name, "* ")
if !po.selectedTemplate.Metadata.PlatformSupported() {
println("WARNING: This template is unsupported on this platform!")
}
fmt.Println("Template: " + po.selectedTemplate.Metadata.Name)
// Setup NPM Project name
@@ -371,5 +399,9 @@ func processTemplateMetadata(templateMetadata *TemplateMetadata, po *ProjectOpti
}
po.FrontEnd.Serve = templateMetadata.Serve
}
// Save platforms
po.Platforms = templateMetadata.Platforms
return nil
}
+5 -5
View File
@@ -5,12 +5,11 @@ import (
"fmt"
"io/ioutil"
"log"
"os"
"path/filepath"
"runtime"
"strconv"
"time"
homedir "github.com/mitchellh/go-homedir"
)
// SystemHelper - Defines everything related to the system
@@ -38,10 +37,11 @@ func NewSystemHelper() *SystemHelper {
// setSystemDirs calculates the system directories it is interested in
func (s *SystemHelper) setSystemDirs() {
var err error
s.homeDir, err = homedir.Dir()
s.homeDir, err = os.UserHomeDir()
if err != nil {
log.Fatal("Cannot find home directory! Please file a bug report!")
}
// TODO: A better config system
s.wailsSystemDir = filepath.Join(s.homeDir, ".wails")
s.wailsSystemConfig = filepath.Join(s.wailsSystemDir, s.configFilename)
@@ -132,7 +132,7 @@ func (s *SystemHelper) setup() error {
}
const introText = `
Wails is a lightweight framework for creating web-like desktop apps in Go.
Wails is a lightweight framework for creating web-like desktop apps in Go.
I'll need to ask you a few questions so I can fill in your project templates and then I will try and see if you have the correct dependencies installed. If you don't have the right tools installed, I'll try and suggest how to install them.
`
@@ -276,7 +276,7 @@ func CheckDependencies(logger *Logger) (bool, error) {
switch distroInfo.Distribution {
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian, PopOS:
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Manjaro, ManjaroARM:
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM:
libraryChecker = PacmanInstalled
case CentOS, Fedora, Tumbleweed, Leap:
libraryChecker = RpmInstalled
+22 -1
View File
@@ -7,6 +7,7 @@ import (
"io/ioutil"
"log"
"path/filepath"
"runtime"
"strings"
"text/template"
@@ -29,6 +30,26 @@ type TemplateMetadata struct {
Bridge string `json:"bridge"`
WailsDir string `json:"wailsdir"`
TemplateDependencies []*TemplateDependency `json:"dependencies,omitempty"`
// List of platforms that this template is supported on.
// No value means all platforms. A platform name is the same string
// as `runtime.GOOS` will return, eg: "darwin". NOTE: This is
// case sensitive.
Platforms []string `json:"platforms,omitempty"`
}
// PlatformSupported returns true if this template supports the
// currently running platform
func (m *TemplateMetadata) PlatformSupported() bool {
// Default is all platforms supported
if len(m.Platforms) == 0 {
return true
}
// Check that the platform is in the list
platformsSupported := slicer.String(m.Platforms)
return platformsSupported.Contains(runtime.GOOS)
}
// TemplateDependency defines a binary dependency for the template
@@ -128,11 +149,11 @@ func (t *TemplateHelper) GetTemplateDetails() (map[string]*TemplateDetails, erro
result[name] = &TemplateDetails{
Path: dir,
}
_ = &TemplateMetadata{}
metadata, err := t.LoadMetadata(dir)
if err != nil {
return nil, err
}
result[name].Metadata = metadata
if metadata.Name != "" {
result[name].Name = metadata.Name
@@ -5,7 +5,7 @@ const routes: Routes = [];
@NgModule({
imports: [
RouterModule.forRoot(routes)
RouterModule.forRoot(routes,{useHash:true})
],
exports: [RouterModule]
})
@@ -5,8 +5,8 @@
"private": true,
"dependencies": {
"core-js": "^3.6.4",
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"wails-react-scripts": "3.0.1-2",
"react-modal": "3.11.2",
"@wailsapp/runtime": "^1.0.10"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

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