Skip to content

Apple Silicon (ARM) support + build fixes for modern Processing and JDK - #47

Open
trackme518 wants to merge 1 commit into
Syphon:masterfrom
trackme518:arm-silicon-support
Open

trackme518 wants to merge 1 commit into
Syphon:masterfrom
trackme518:arm-silicon-support

Conversation

@trackme518

Copy link
Copy Markdown

Added support for macOS Apple Silicon (arm64), while remaining compatible with Intel macOS

The library currently ships x86_64-only native binaries, so it fails to load in arm64 JVMs (Processing 4 on Apple Silicon). The native build is fixed in the companion pull request Syphon/Java#9, which adds build_universal.sh: universal x86_64 + arm64 binaries built with Command Line Tools only (no Xcode), with Apple's removed JavaNativeFoundation framework replaced by vendored sources, and the Syphon framework submodule updated c404f3c (v5, 2017) → f476167 (post-5.0, +99 commits on main, incl. the 32BGRA pixel-format fix and core-profile state restore needed on Apple GPUs).

⚠️ The java submodule pointer is intentionally not bumped in this PR yet, because the rebuilt binaries live in Syphon/Java#9. Once that is merged, I will push a commit updating the submodule to the merged commit.

This PR (Processing-side changes)

  • resources/build.properties – Processing 4.1+ moved its jars to Contents/app/resources/core/library and versions the file names; classpath now uses glob patterns. Bump library version to 10 / 4.1, tested.processingVersion 4.5.6.
  • resources/build.xml – javadoc step fixed for current JDKs: the classpath referenced a nonexistent core.jar (and had a broken {project.bin} expansion), the legacy ExampleTaglet (com.sun.javadoc API, removed in recent JDKs) is replaced by javadoc's standard -tag example option, and the dead processing.org javadoc link is removed.

Compatibility & verification

  • Universal binaries (lipo): x86_64 arm64 — works unchanged on Intel and Apple Silicon macOS.
  • Tested on macOS 26 with Processing 4.5.6: SendFrames, ReceiveFrames, SendScreen examples work on arm64; x86_64 verified via Rosetta.

- build.properties: Processing 4.1+ ships versioned jars under
  Contents/app/resources/core/library; use glob patterns for core and
  jogl-all. Bump library version to 10 (4.1), tested against 4.5.6.
- build.xml: javadoc classpath referenced a nonexistent core.jar and
  had a broken {project.bin} expansion; use the build classpath.
  Replace the legacy ExampleTaglet (com.sun.javadoc API removed in
  recent JDKs) with javadoc's standard -tag option, and drop the dead
  processing.org javadoc link.

Companion to the Syphon/Java pull request adding the universal
(Apple Silicon + Intel) native build; the java submodule pointer
should be updated to the merged commit.
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.

1 participant