Skip to content

Add macOS arm64 build#258

Open
rakleed wants to merge 1 commit intoWillyJL:mainfrom
rakleed:feat/macOS-arm64
Open

Add macOS arm64 build#258
rakleed wants to merge 1 commit intoWillyJL:mainfrom
rakleed:feat/macOS-arm64

Conversation

@rakleed
Copy link
Copy Markdown

@rakleed rakleed commented Feb 28, 2026

Closes #257

I checked the compiled build for arm64, and it works correctly.

Here's how Claude Code explained why these changes will be enough:

Details

Dependency analysis and fixes

Dependencies without ARM64 wheels on macOS:

Package Status Resolution
imgui==2.0.0 ❌ x86_64 only pip automatically builds from source (sdist contains pre-generated C files, Cython not required)
zipfile-deflate64-macos==0.1.0 ⚠️ universal2 for cp39 only pip builds from source on Python 3.12 (same as on Intel)

All other dependencies (zstd, bencode2, pillow-avif-plugin, lxml, cx-Freeze, etc.) already have native ARM64 or universal2 wheels.

Changes made to .github/workflows/build.yml:

  1. Added new runner macos-15 (Apple Silicon / ARM64) to the build matrix
  2. Added artifact field to each matrix entry for unique artifact names: Windows, Linux, macOS, macOS-ARM64 — replacing the previous runner.os which produced the same name macOS for both macOS builds

Why this works:

On the ARM64 runner (macos-15), pip won't find compatible wheels for imgui==2.0.0 (x86_64 only) and will automatically fall back to building from sdist. The sdist already contains pre-generated C files, and Xcode Command Line Tools (pre-installed on GitHub runners) will compile them into a native ARM64 binary.

@cantunborn
Copy link
Copy Markdown

This is working. Tested on my fork. Also improves launch time significantly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Native Apple Silicon (arm64/universal2) macOS build

2 participants