Fyne Cross
fyne-cross is a simple tool to cross compile and create distribution packages for Fyne applications.
It has been inspired by xgo and uses a docker image built on top of the golang-cross image, that includes the MinGW compiler for windows, and an OSX SDK, along with the Fyne requirements.
Supported targets are:
- darwin/amd64
- darwin/386
- freebsd/amd64
- linux/amd64
- linux/386
- linux/arm
- linux/arm64
- windows/amd64
- windows/386
- android
- ios
Note: iOS compilation is supported only on darwin hosts. See fyne README mobile for pre-requisites.
Requirements
Installation
GO111MODULE=on go get github.com/lucor/fyne-cross/v2/cmd/fyne-cross
fyne-cross
will be installed in GOPATH/bin, unless GOBIN is set.
Updating docker images
To update to a newer docker image the --pull
flag can be specified.
If set, fyne-cross will attempt to pull the image required to cross compile the application for the specified target.
For example:
fyne-cross linux --pull
will pull only the fyne-cross:base-latest
image required to cross compile for linux target.
Development release
To install a preview of the v2 version or help in testing:
go get github.com/lucor/fyne-cross/v2/cmd/fyne-cross@develop
Usage
fyne-cross <command> [options]
The commands are:
darwin Build and package a fyne application for the darwin OS
linux Build and package a fyne application for the linux OS
windows Build and package a fyne application for the windows OS
android Build and package a fyne application for the android OS
ios Build and package a fyne application for the iOS OS
freebsd Build and package a fyne application for the freebsd OS
version Print the fyne-cross version information
Use "fyne-cross <command> -help" for more information about a command.
Wildcards
The arch
flag support wildcards in case want to compile against all supported GOARCH for a specified GOOS
Example:
fyne-cross windows -arch=*
is equivalent to
fyne-cross windows -arch=amd64,386
Example
The example below cross compile and package the fyne examples application
git clone https://github.com/fyne-io/examples.git
cd examples
Compile and package the main example app
fyne-cross linux
Note: by default fyne-cross will compile the package into the current dir.
The command above is equivalent to: fyne-cross linux .
Compile and package a particular example app
fyne-cross linux -output bugs ./cmd/bugs
Contribute
- Fork and clone the repository
- Make and test your changes
- Open a pull request against the
develop
branch
Contributors
See contributors page
Legal note
OSX/Darwin/Apple builds:
Please ensure you have read and understood the Xcode license
terms before continuing.