mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-08 06:50:56 +08:00

* Pass build flags to binding generator * Update changelog * Track variable dependencies using task labels * Track JS/TS sources for binding generator The `/wails:include` directive allows for the inclusion of additional JS/TS files in the generated bindings. * Pass production var to frontend task * Track binding generator output as source * Fix generates pattern for frontend build task * Fix typo in function `term.Warningf` * Use facilities from `internal/term` in bindings command instead of `pterm` --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
120 lines
3.3 KiB
YAML
120 lines
3.3 KiB
YAML
version: '3'
|
|
|
|
includes:
|
|
common: ../Taskfile.yml
|
|
|
|
tasks:
|
|
build:
|
|
summary: Builds the application for Linux
|
|
deps:
|
|
- task: common:go:mod:tidy
|
|
- task: common:build:frontend
|
|
vars:
|
|
BUILD_FLAGS:
|
|
ref: .BUILD_FLAGS
|
|
PRODUCTION:
|
|
ref: .PRODUCTION
|
|
- task: common:generate:icons
|
|
cmds:
|
|
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/{{.APP_NAME}}
|
|
vars:
|
|
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath -buildvcs=false -ldflags="-w -s"{{else}}-buildvcs=false -gcflags=all="-l"{{end}}'
|
|
env:
|
|
GOOS: linux
|
|
CGO_ENABLED: 1
|
|
GOARCH: '{{.ARCH | default ARCH}}'
|
|
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
|
|
|
package:
|
|
summary: Packages a production build of the application for Linux
|
|
deps:
|
|
- task: build
|
|
vars:
|
|
PRODUCTION: "true"
|
|
cmds:
|
|
- task: create:appimage
|
|
- task: create:deb
|
|
- task: create:rpm
|
|
- task: create:aur
|
|
|
|
create:appimage:
|
|
summary: Creates an AppImage
|
|
dir: build/linux/appimage
|
|
deps:
|
|
- task: build
|
|
vars:
|
|
PRODUCTION: "true"
|
|
- task: generate:dotdesktop
|
|
cmds:
|
|
- cp {{.APP_BINARY}} {{.APP_NAME}}
|
|
- cp ../../appicon.png appicon.png
|
|
- wails3 generate appimage -binary {{.APP_NAME}} -icon {{.ICON}} -desktopfile {{.DESKTOP_FILE}} -outputdir {{.OUTPUT_DIR}} -builddir {{.ROOT_DIR}}/build/linux/appimage/build
|
|
vars:
|
|
APP_NAME: '{{.APP_NAME}}'
|
|
APP_BINARY: '../../../bin/{{.APP_NAME}}'
|
|
ICON: '../../appicon.png'
|
|
DESKTOP_FILE: '../{{.APP_NAME}}.desktop'
|
|
OUTPUT_DIR: '../../../bin'
|
|
|
|
create:deb:
|
|
summary: Creates a deb package
|
|
deps:
|
|
- task: build
|
|
vars:
|
|
PRODUCTION: "true"
|
|
cmds:
|
|
- task: generate:dotdesktop
|
|
- task: generate:deb
|
|
|
|
create:rpm:
|
|
summary: Creates a rpm package
|
|
deps:
|
|
- task: build
|
|
vars:
|
|
PRODUCTION: "true"
|
|
cmds:
|
|
- task: generate:dotdesktop
|
|
- task: generate:rpm
|
|
|
|
create:aur:
|
|
summary: Creates a arch linux packager package
|
|
deps:
|
|
- task: build
|
|
vars:
|
|
PRODUCTION: "true"
|
|
cmds:
|
|
- task: generate:dotdesktop
|
|
- task: generate:aur
|
|
|
|
generate:deb:
|
|
summary: Creates a deb package
|
|
cmds:
|
|
- wails3 tool package -name {{.APP_NAME}} -format deb -config ./build/linux/nfpm/nfpm.yaml -out {{.ROOT_DIR}}/bin
|
|
|
|
generate:rpm:
|
|
summary: Creates a rpm package
|
|
cmds:
|
|
- wails3 tool package -name {{.APP_NAME}} -format rpm -config ./build/linux/nfpm/nfpm.yaml -out {{.ROOT_DIR}}/bin
|
|
|
|
generate:aur:
|
|
summary: Creates a arch linux packager package
|
|
cmds:
|
|
- wails3 tool package -name {{.APP_NAME}} -format archlinux -config ./build/linux/nfpm/nfpm.yaml -out {{.ROOT_DIR}}/bin
|
|
|
|
generate:dotdesktop:
|
|
summary: Generates a `.desktop` file
|
|
dir: build
|
|
cmds:
|
|
- mkdir -p {{.ROOT_DIR}}/build/linux/appimage
|
|
- wails3 generate .desktop -name "{{.APP_NAME}}" -exec "{{.EXEC}}" -icon "{{.ICON}}" -outputfile {{.ROOT_DIR}}/build/linux/{{.APP_NAME}}.desktop -categories "{{.CATEGORIES}}"
|
|
vars:
|
|
APP_NAME: '{{.APP_NAME}}'
|
|
EXEC: '{{.APP_NAME}}'
|
|
ICON: 'appicon'
|
|
CATEGORIES: 'Development;'
|
|
OUTPUTFILE: '{{.ROOT_DIR}}/build/linux/{{.APP_NAME}}.desktop'
|
|
|
|
run:
|
|
cmds:
|
|
- '{{.BIN_DIR}}/{{.APP_NAME}}'
|