Enable native arm64 macOS build - #130
Open
pdaddyo wants to merge 3 commits into
Open
Conversation
The bundled deps/osx libraries are x86_64-only and the macOS port had bit-rotted against modern Apple Clang. These changes let the engine, tools, and editor build and run natively on Apple Silicon. - byte_serializer: add long/unsigned long overloads on Apple — LP64 makes size_t distinct from uint64_t (which is long long there), so otherwise serializing a size_t is ambiguous/unmatched - os_mac: parseProgramPath returns the full executable path so the caller's parentPath() lands on the right asset dir (was one level too high) - opengl: guard glObjectLabel calls — it's null on macOS GL 4.1 (no KHR_debug) - zlib/zutil: don't define the classic-Mac fdopen stub on modern macOS, where TARGET_OS_MAC is always 1 - avf: update MovieAPI/MoviePlayer signatures to take const HalleyAPI&, matching the current base interface - shader_importer_dxc: guard D3D12-only code behind _MSC_VER - vector_test: add typename on dependent types (Apple Clang requires it) - cmake: link Security + CoreFoundation (needed for httplib TLS) on Apple
The bundled deps/osx libraries are x86_64-only, so building on Apple Silicon uses current Homebrew dependencies plus a from-source ShaderConductor. Add a README section covering the deps, the ShaderConductor build flags needed under modern Apple Clang, and the CMake configure invocation.
pdaddyo
marked this pull request as ready for review
June 17, 2026 00:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The bundled
deps/osxlibraries are x86_64-only and the macOS port had bit-rotted against modern Apple Clang. These changes let the engine, tools, and editor build and run natively on Apple Silicon (arm64), and document the process.Build fixes
long/unsigned longoperator<</>>overloads on Apple — under LP64size_tis distinct fromuint64_t(which islong longthere), so serializing asize_twas otherwise unmatchedparseProgramPathreturns the full executable path so the caller'sparentPath()resolves the asset dir correctly (was one level too high)glObjectLabelcalls — it's null on macOS OpenGL 4.1 (noKHR_debug)fdopenstub on modern macOS, whereTARGET_OS_MACis always 1MovieAPI/MoviePlayersignatures to takeconst HalleyAPI&, matching the current base interface_MSC_VERtypenameon dependent types (required by Apple Clang)Security+CoreFoundation(needed for httplib TLS) on AppleDocs
Notes
Opening as a draft for review.