Plan 015 phase 0 established that this app cross-compiles for Android with no source changes at all. A CGO_ENABLED=0 probe of the whole tree for android/arm64 fails on exactly two packages -- ebitengine/oto/v3 and wails/v3/pkg/application -- and both fail only because their Android implementation is cgo, which is what the NDK supplies. Notably modernc.org/sqlite, the entire database layer and the thing most likely to have no Android target, is clean. The fat APK (arm64-v8a + x86_64) builds in about 25 seconds. So build/android/ stops being ignored. This commit is the tree exactly as `wails3 generate build-assets` emits it, so that the next commit is a readable diff of what we changed and a future refresh has something to compare against. Two things about how it is carried: `wails3 update build-assets` does NOT generate it, contrary to what CLAUDE.md has claimed since the v3 migration. In beta.8 that command extracts only internal/commands/updatable_build_assets, which is darwin/ios/linux/windows; the android tree comes from `generate build-assets`, which rewrites the whole of build/. It was generated once into a scratch directory and copied across, so from here it is committed and hand-edited like source. Only its output is ignored -- jniLibs (~60MB of per-ABI c-shared libraries), gen/, overlay.json and Gradle's own directories. And it brings one Go file into ./... -- scripts/deps/install_deps.go, the interactive SDK installer behind `task android:install:deps`, which trips 24 of our strict linters. golangci excludes the directory rather than reformatting upstream's file, which the next refresh would undo and which would make the diff against upstream unreadable. This repo uses `make android-setup` instead.
65 lines
1.6 KiB
YAML
65 lines
1.6 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
APP_NAME: "yellowjacket"
|
|
BIN_DIR: "bin"
|
|
PACKAGE_MANAGER: '{{.PACKAGE_MANAGER | default "pnpm"}}'
|
|
VITE_PORT: '{{.WAILS_VITE_PORT | default 9245}}'
|
|
# Target OS for build/package/run. Defaults to the host OS, and is overridden
|
|
# by `wails3 build GOOS=...` (or the GOOS env var) for cross-compilation. The
|
|
# tasks below dispatch to the matching platform Taskfile via this variable.
|
|
GOOS: '{{.GOOS | default OS}}'
|
|
|
|
includes:
|
|
common: ./build/Taskfile.yml
|
|
windows: ./build/windows/Taskfile.yml
|
|
darwin: ./build/darwin/Taskfile.yml
|
|
linux: ./build/linux/Taskfile.yml
|
|
android: ./build/android/Taskfile.yml
|
|
|
|
tasks:
|
|
build:
|
|
summary: Builds the application
|
|
cmds:
|
|
- task: "{{.GOOS}}:build"
|
|
|
|
package:
|
|
summary: Packages a production build of the application
|
|
cmds:
|
|
- task: "{{.GOOS}}:package"
|
|
|
|
run:
|
|
summary: Runs the application
|
|
cmds:
|
|
- task: "{{.GOOS}}:run"
|
|
|
|
dev:
|
|
summary: Runs the application in development mode
|
|
cmds:
|
|
- wails3 dev -config ./build/config.yml -port {{.VITE_PORT}}
|
|
|
|
setup:docker:
|
|
summary: Builds Docker image for cross-compilation (~800MB download)
|
|
cmds:
|
|
- task: common:setup:docker
|
|
|
|
build:server:
|
|
summary: Builds the application in server mode (no GUI, HTTP server only)
|
|
cmds:
|
|
- task: common:build:server
|
|
|
|
run:server:
|
|
summary: Runs the application in server mode
|
|
cmds:
|
|
- task: common:run:server
|
|
|
|
build:docker:
|
|
summary: Builds a Docker image for server mode deployment
|
|
cmds:
|
|
- task: common:build:docker
|
|
|
|
run:docker:
|
|
summary: Builds and runs the Docker image
|
|
cmds:
|
|
- task: common:run:docker
|