{"id":13499805,"url":"https://github.com/fyne-io/fyne-cross","last_synced_at":"2025-04-08T01:34:30.153Z","repository":{"id":37914093,"uuid":"304339684","full_name":"fyne-io/fyne-cross","owner":"fyne-io","description":"Cross compiler tool for Fyne apps","archived":false,"fork":false,"pushed_at":"2025-03-24T02:47:12.000Z","size":1027,"stargazers_count":263,"open_issues_count":61,"forks_count":54,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-01T00:33:48.957Z","etag":null,"topics":["cross-platform","docker","fyne","go","golang","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fyne-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["fyne-io","Jacalz","lucor"]}},"created_at":"2020-10-15T13:44:57.000Z","updated_at":"2025-03-30T06:22:12.000Z","dependencies_parsed_at":"2023-11-20T00:27:18.568Z","dependency_job_id":"db959659-3b63-458f-b2bc-82921314b723","html_url":"https://github.com/fyne-io/fyne-cross","commit_stats":{"total_commits":565,"total_committers":26,"mean_commits":21.73076923076923,"dds":0.463716814159292,"last_synced_commit":"a4d0a4706d7a3d8abfbb8463b6ed2510af2f2e2d"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fyne-io%2Ffyne-cross","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fyne-io%2Ffyne-cross/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fyne-io%2Ffyne-cross/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fyne-io%2Ffyne-cross/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fyne-io","download_url":"https://codeload.github.com/fyne-io/fyne-cross/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247760847,"owners_count":20991531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","docker","fyne","go","golang","hacktoberfest"],"created_at":"2024-07-31T22:00:43.055Z","updated_at":"2025-04-08T01:34:30.126Z","avatar_url":"https://github.com/fyne-io.png","language":"Go","funding_links":["https://github.com/sponsors/fyne-io","https://github.com/sponsors/Jacalz","https://github.com/sponsors/lucor"],"categories":["Go"],"sub_categories":[],"readme":"# Fyne Cross\n\n[![CI](https://github.com/fyne-io/fyne-cross/workflows/CI/badge.svg)](https://github.com/fyne-io/fyne-cross/actions?query=workflow%3ACI) [![Go Report Card](https://goreportcard.com/badge/github.com/fyne-io/fyne-cross)](https://goreportcard.com/report/github.com/fyne-io/fyne-cross) [![GoDoc](https://godoc.org/github.com/fyne-io/fyne-cross?status.svg)](http://godoc.org/github.com/fyne-io/fyne-cross) [![version](https://img.shields.io/github/v/tag/fyne-io/fyne-cross?label=version)]()\n\nfyne-cross is a simple tool to cross compile and create distribution packages\nfor [Fyne](https://fyne.io) applications using docker images that include Linux,\nthe MinGW compiler for Windows, FreeBSD, and a macOS SDK, along with the Fyne\nrequirements.\n\nSupported targets are:\n\n- darwin/amd64\n- darwin/arm64\n- freebsd/amd64\n- freebsd/arm64\n- linux/amd64\n- linux/386\n- linux/arm\n- linux/arm64\n- windows/amd64\n- windows/arm64\n- windows/386\n- android ([multiple architectures](https://developer.android.com/ndk/guides/abis))\n- android/386\n- android/amd64\n- android/arm\n- android/arm64\n- ios\n\n\u003e Note:\n\u003e\n\u003e - iOS compilation is supported only on darwin hosts. See [fyne pre-requisites](https://developer.fyne.io/started/#prerequisites) for details.\n\u003e - macOS packaging for public distribution (release mode) is supported only on darwin hosts.\n\u003e - windows packaging for public distribution (release mode) is supported only on windows hosts.\n\u003e - starting from v1.1.0:\n\u003e   - cross-compile from NOT `darwin` (i.e. linux) to `darwin`: requires a copy of the macOS SDK on the host. The fyne-cross `darwin-sdk-extractor` command can be used to extract the SDK from the XCode CLI Tool file, see the [Extract the macOS SDK](#extract_macos_sdk) section below.\n\u003e   - cross-compile from `darwin` to `darwin` by default will use under the hood the fyne CLI tool and requires Go and the macOS SDK installed on the host.\n\u003e - starting from v1.4.0, Arm64 hosts are supported for all platforms except Android.\n\n## Requirements\n\n- go \u003e= 1.19\n- docker\n\n### Installation\n\n```sh\ngo install github.com/fyne-io/fyne-cross@latest\n```\n\nTo install a fyne-cross with kubernetes engine support:\n\n```sh\ngo install -tags k8s github.com/fyne-io/fyne-cross@latest\n```\n\n\u003e `fyne-cross` will be installed in GOPATH/bin, unless GOBIN is set.\n\n### Updating docker images\n\nTo update to a newer docker image the `--pull` flag can be specified.\nIf set, fyne-cross will attempt to pull the image required to cross compile the application for the specified target.\n\nFor example:\n\n```sh\nfyne-cross linux --pull\n```\n\nwill pull only the `fyne-cross:base-latest` image required to cross compile for linux target.\n\n## Usage\n\n```sh\nfyne-cross \u003ccommand\u003e [options]\n\nThe commands are:\n\n darwin        Build and package a fyne application for the darwin OS\n linux         Build and package a fyne application for the linux OS\n windows       Build and package a fyne application for the windows OS\n android       Build and package a fyne application for the android OS\n ios           Build and package a fyne application for the iOS OS\n freebsd       Build and package a fyne application for the freebsd OS\n version       Print the fyne-cross version information\n\nUse \"fyne-cross \u003ccommand\u003e -help\" for more information about a command.\n```\n\n### Wildcards\n\nThe `arch` flag support wildcards in case want to compile against all supported GOARCH for a specified GOOS\n\nExample:\n\n```sh\nfyne-cross windows -arch=*\n```\n\nis equivalent to\n\n```sh\nfyne-cross windows -arch=amd64,386\n```\n\n## Example\n\nThe example below cross compile and package the [fyne examples application](https://github.com/fyne-io/examples)\n\n```\ngit clone https://github.com/fyne-io/examples.git\ncd examples\n```\n\n### Compile and package the main example app\n\n```sh\nfyne-cross linux\n```\n\n\u003e Note: by default fyne-cross will compile the package into the current dir.\n\u003e\n\u003e The command above is equivalent to: `fyne-cross linux .`\n\n### Compile and package a particular example app\n\n```sh\nfyne-cross linux -output bugs ./cmd/bugs\n```\n\n## \u003ca name=\"extract_macos_sdk\"\u003e\u003c/a\u003eExtract the macOS SDK for OSX/Darwin/Apple cross-compiling\n\ncross-compile from NOT `darwin` (i.e. linux) to `darwin` requires a copy of the macOS SDK on the host.\n\nThe fyne-cross `darwin-sdk-extractor` command can be used to extract the SDK from the XCode CLI Tool file.\n\n**[Please ensure you have read and understood the Xcode license terms before continuing.](https://www.apple.com/legal/sla/docs/xcode.pdf)**\n\nTo extract the SDKs:\n\n1. [Download Command Line Tools for Xcode](https://developer.apple.com/download/all/?q=Command%20Line%20Tools) 12.5.1 (macOS SDK 11.3)\n2. Run: `fyne-cross darwin-sdk-extract --xcode-path /path/to/Command_Line_Tools_for_Xcode_12.5.1.dmg`\n\n- Once extraction has been done, you should have a SDKs directory created.\n  This directory should contains at least 2 SDKs (ex. `SDKs/MacOSX11.3.sdk/` and `SDKs/MacOSX10.15.sdk/`)\n\n3. Specify explicitly which SDK you want to use in your fyne-cross command with --macosx-sdk-path:\n   `fyne-cross darwin --macosx-sdk-path /full/path/to/SDKs/MacOSX11.3.sdk -app-id your.app.id`\n\n\u003e Note: current version supports only MacOS SDK 11.3\n\n## Contribute\n\n- Fork and clone the repository\n- Make and test your changes\n- Open a pull request against the `develop` branch\n\n### Contributors\n\nSee [contributors](https://github.com/fyne-io/fyne-cross/graphs/contributors) page\n\n## Credits\n\n- [osxcross](https://github.com/tpoechtrager/osxcross) for the macOS Cross toolchain for Linux\n- [golang-cross](https://github.com/docker/golang-cross) for the inspiration and the docker images used in the initial versions\n- [xgo](https://github.com/karalabe/xgo) for the inspiration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffyne-io%2Ffyne-cross","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffyne-io%2Ffyne-cross","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffyne-io%2Ffyne-cross/lists"}