Allow users to pass custom build tags via `wails3 build -tags gtk4`
instead of requiring Taskfile modifications. Tags are forwarded as
EXTRA_TAGS to platform Taskfiles and appended to the go build command
alongside the existing production tag.
Works for both native and Docker cross-compilation builds.
Closes#4957
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Use ubuntu-24.04-arm runner for linux/arm64 cross-compile tests
instead of QEMU emulation. This should reduce build time from ~20min
to ~3min.
- Remove QEMU and Buildx setup (not needed with native runner)
- Remove --platform flag from Docker commands
- Each matrix entry now specifies its runner
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
For Linux ARM64 builds on x86_64 hosts, use Docker's QEMU emulation
instead of trying to cross-compile with Zig or install multi-arch packages.
Changes:
- Workflow: Set up QEMU and Docker Buildx for Linux cross-arch builds
- Workflow: Build Docker image with --platform for target architecture
- Dockerfile: Simplify to use native GCC (QEMU handles arch translation)
- Taskfile: Add --platform flag to docker run for Linux builds
This approach is slower but reliable and doesn't require complex
cross-compilation toolchain setup.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The wails-cross image is an x86_64 image that uses Zig for cross-compilation.
It doesn't need to run ON the target platform - it cross-compiles TO it.
Remove the --platform flag that was causing Docker to try pulling a
non-existent arm64 version of the image.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When building Linux binaries with a different target architecture than
the host (e.g., arm64 on x86_64), use Docker-based cross-compilation
instead of native build. The native GCC cannot compile ARM64 assembly
on an x86_64 host.
Adds a third condition to the build task selection: target architecture
must match host architecture to use native build.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Switch from Alpine to Debian (golang:1.25-bookworm)
- Install GTK3/GTK4 and WebKit2GTK 4.1/6.0 dev packages
- Use native GCC for Linux targets instead of Zig
- Add --platform flag to Docker run for architecture matching
- Remove unused zcc-linux-* wrappers (Zig had glibc header issues)
- Keep Zig for Darwin (macOS SDK) and Windows (bundled mingw)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: improve darwin build commands to accommodate spaces in APP_NAME
* fix: improve android build commands to accommodate spaces in APP_NAME
* fix: improve ios build commands to accommodate spaces in APP_NAME
* fix: improve linux build commands to accommodate spaces in APP_NAME
* fix: improve windows build commands to accommodate spaces in APP_NAME
* docs: update `v3/UNRELEASED_CHANGELOG.md`
* fix(docs): correct changelog
* fix: remove quotes around GO_CACHE_MOUNT and REPLACE_MOUNTS
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* ## Summary
I've implemented the fix for issue #4575. Here's what was changed:
### Changes Made
**File: `v3/internal/commands/build_assets/linux/Taskfile.yml`**
1. Added `generate:dotdesktop` as a dependency to `build:native` task (line 45)
2. Added `generate:dotdesktop` as a dependency to `build:docker` task (line 63)
This ensures that the `.desktop` file is generated during every Linux build (both native and Docker-based), not just during packaging operations.
### How it works
- When running `wails build` or `wails dev` on Linux, the build process now automatically generates a `.desktop` file at `build/linux/<app-name>.desktop`
- The `.desktop` file contains:
- Application name
- Executable path
- Icon reference
- Categories (defaulting to "Development")
- This allows Linux desktop environments to properly display the application icon and metadata even during development
### Testing
To test the changes:
1. Create a new Wails v3 project: `wails3 init -n testapp`
2. Build it: `cd testapp && wails3 build`
3. Verify the `.desktop` file exists: `cat build/linux/testapp.desktop`
Would you like me to run a test or make any additional changes?
* feat(linux): generate .desktop file during build (#4575)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* 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>
* [v3] Update Templates (macOS Target Version and Linux aarch64 AppImage)
* Update changelog.mdx
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>