Cross Compile Fyne Applications


Keywords
cross-platform, docker, fyne, go
License
BSD-3-Clause
Install
go get github.com/lucor/fyne-cross/v2

Documentation

ARCHIVED

fyne-cross is now an official Fyne project and has been moved to: https://github.com/fyne-io/fyne-cross

Fyne Cross

CI Go Report Card GoDoc version

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.