Skip to content

Move x86_64 macOS build to arm64 host #84

@corbindavenport

Description

@corbindavenport

The macos-13 GitHub Actions runner image is the only one left for an Intel Mac, which is required for compiling Nexus Tools for x86_64 macOS, since Dart doesn't (yet) support that in cross-compile mode. If that image is removed, the automated builds can move to an am64 macOS image.

This seems to work by downloading the x86_64 macOS Dart SDK separately, extracting it somewhere, then running the dart compile exe command in Rosetta 2 with the arch command:

'/Users/corbin/Downloads/dart-sdk/bin/dart' compile exe './bin/main.dart' -o './nexustools'

The compiled architecture can be confirmed with the file command:

$ file ./nexustools
./nexustools: Mach-O 64-bit executable x86_64

Rosetta 2 might also need to be enabled on a fresh VM before compiling:

softwareupdate --install-rosetta --agree-to-license --verbose

Apple is supposed to keep Rosetta 2 alive until macOS 28, and I'm guessing macOS <28 runners will stick around for another few years.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions