fix(macos): support macOS Tahoe (15+) SDK build#12
Open
claudiojara wants to merge 2 commits into
Open
Conversation
- build_release_macos.sh: auto-export SDKROOT from xcrun so autotools deps (GMP, MPFR) find libSystem on macOS 15+ SDKs - wxMediaCtrl2.h: replace constexpr+enum-cast with inline const (mirrors the pattern already in MediaPlayCtrl.h:74) - fixes clang error on SDK 26+ - .gitignore: add .tools/ (project-local CMake), dist/ (downloaded releases), tools/pjarczak_bambu_linux_host/runtime/ (generated)
package_macos_dmg.sh wraps hdiutil to produce an unsigned DMG from a prebuilt .app bundle, mirroring the CI flow for developers iterating on macOS. Auto-detects arch (arm64/x86_64/universal), reads version from version.inc, includes OrcaSlicer_profile_validator.app when present, and strips com.apple.provenance xattrs that confuse hdiutil on macOS 15+.
Author
|
Suggested label (couldn't add as external contributor): |
|
The fact that you used Claude to ship this PR is funny. Now Bambulab can sue Anthropic. This PR is correct. 🚢 it. |
stephanGarland
pushed a commit
to stephanGarland/OrcaSlicer-bambulab
that referenced
this pull request
May 13, 2026
Backport of PR FULU-Foundation#12 from upstream FULU-Foundation/OrcaSlicer-bambulab, authored by Claudio Jara <claudiojaraf@gmail.com>. Two build failures on macOS 15+ with current Xcode SDKs: 1. Autotools deps (GMP/MPFR) via ExternalProject_Add don't inherit CMAKE_OSX_DEPLOYMENT_TARGET. Fix: auto-export SDKROOT from `xcrun --show-sdk-path` when unset, so the configure step finds the active SDK. 2. Clang in SDK 26+ rejects the out-of-range enum cast in the constexpr initializer of MEDIASTATE_BUFFERING. Replace `static constexpr` with `static inline const`, mirroring the pattern already used elsewhere. Original PR: FULU-Foundation#12
8 tasks
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
Two minimal fixes so local macOS builds work on macOS 15+ (Sequoia/Tahoe) with current Xcode SDKs. Plus a small helper script for local DMG packaging.
What breaks today
On a clean macOS 15+ checkout,
./build_release_macos.sh -d -a arm64fails twice:1. Autotools deps cannot find
libSystemGMP / MPFR are built via cmake
ExternalProject_Addwhich forksconfigure— autotools does not inheritCMAKE_OSX_DEPLOYMENT_TARGET, and the macOS 15+ SDK requiresSDKROOTto be set explicitly:Fix (build_release_macos.sh): auto-export
SDKROOT="$(xcrun --show-sdk-path)"when unset. Harmless on older SDKs (xcrun returns the path regardless).2. clang on SDK 26 rejects
constexprenum-cast inwxMediaCtrl2.hOlder clang accepted the out-of-range cast in a
constexprcontext. Current clang (with the macOS 15+ SDK) rejects it:constexpr variable 'MEDIASTATE_BUFFERING' must be initialized by a constant expression.Fix (wxMediaCtrl2.h): mirror the existing working pattern in
src/slic3r/GUI/MediaPlayCtrl.h:74—static inline const wxMediaState ... = static_cast<wxMediaState>(6). Identical runtime behavior, noconstexprrequirement.Extras
.gitignore: ignore.tools/(project-local CMake),dist/(downloaded releases),tools/pjarczak_bambu_linux_host/runtime/(generated output)package_macos_dmg.sh(new): wrapshdiutilto produce an unsigned DMG from a prebuilt.app, mirroring the CI flow. Auto-detects arch (arm64/x86_64/universal), reads version fromversion.inc, stripscom.apple.provenancexattrs that confuse hdiutil on macOS 15+. Pure dev-side helper; safe to drop if not desired.Verified
build_macos_bridge.ymlon my fork (https://github.com/claudiojara/OrcaSlicer-bambulab/actions/runs/25776649189) — all four jobs passed, produced 237 MB universal DMG identical in size to the v1.0.0 release artifactTest plan
🤖 Related debugging session also surfaced an Apple Silicon runtime issue with
pjarczak_bambu_linux_hostthat is unrelated to these build fixes; filing a separate issue with the stack trace.