4.9 KiB
BUILD_MAC_KX.md — building OrcaSlicer-KX on macOS (Apple Silicon)
macOS build guide for this fork. Upstream (viewit) ships only Linux & Windows binaries; this fork exists to add the macOS build (see Releases for the
.app). The upstreamCLAUDE.md/AGENTS.mdare left untouched.
Verified recipe: run as-is on 2026-07-02 on a Mac M2 (arm64, macOS 25.x).
It produced a working .app that launches. Timings below are real, measured.
What this is
Fork of OrcaSlicer-KX (https://gitea.it-drui.de/viewit/OrcaSlicer-KX), itself
a fork of SoftFever/OrcaSlicer with patches for the Anycubic Kobra X. Current
checkout: tag v2.4.1-kx1.
The fork's changes vs upstream are branding (logo/icon/splash/about), redirecting
the updater to Gitea, and bugfix backports. They do not touch anything
platform-specific (no CMake, no build scripts, no src/platform, no *.mm, no
Info.plist). The macOS icon (resources/Icon.icns,
resources/images/OrcaSlicer.icns) already ships regenerated with KX branding. So
building on Mac is not a port, it's a recompile using upstream's own
build_release_macos.sh.
Upstream only publishes Linux (AppImage) and Windows (zip) — there is no
official .dmg. This clone is for producing the Mac build yourself.
Requirements (one time)
- Xcode Command Line Tools (NOT full Xcode.app — see the
-xnote). Check:xcode-select -pprints a path. - Homebrew with:
brew install cmake ninja automake texinfo libtool pkg-config
(automake texinfo libtool are needed by the deps stage; cmake+ninja by the build.)
Why -x (Ninja) and not the default
build_release_macos.sh defaults to the Xcode CMake generator, which requires
full Xcode.app (~15 GB from the App Store). The -x flag switches to
Ninja, which works with just the Command Line Tools. Always use it here.
Build (arm64 / Apple Silicon)
Two stages, run from the repo root (~/Developer/OrcaSlicer-KX):
# Stage 1 — dependencies (Boost, wxWidgets, TBB, OCCT, OpenCV, ...)
# 202 static libs → deps/build/arm64/OrcaSlicer_dep
./build_release_macos.sh -d -x -a arm64 # measured: ~14.5 min
# Stage 2 — the slicer itself → build/arm64/OrcaSlicer/OrcaSlicer.app
./build_release_macos.sh -s -x -a arm64 # measured: ~18 min
Flags: -d deps only · -s slicer only · -x Ninja · -a arch. On an M2 with
16 GB, -1 (single job) is not needed; if a Mac with less RAM OOMs while linking,
add -1.
Output: build/arm64/OrcaSlicer/OrcaSlicer.app (native arm64, ~367 MB,
version 2.4.1-kx1).
Normal output that is NOT an error
- "CMake Deprecation" warnings and
Performing Test ... - Failedlines in the deps stage are compiler feature detection, not failures. The build still finishes with exit 0 and[202/202] Completed. - The signature is ad-hoc / linker-signed. Strict
codesign -vandspctlcomplain ("code has no resources but signature indicates they must be present"). This is harmless: a local build is not quarantined, so it opens with a double-click, no Gatekeeper block.
Install into /Applications
There is usually an official /Applications/OrcaSlicer.app. To avoid overwriting
it, copy under a different name:
ditto build/arm64/OrcaSlicer/OrcaSlicer.app /Applications/OrcaSlicer-KX.app
open /Applications/OrcaSlicer-KX.app # verify it boots
(ditto preserves the bundle + ad-hoc signature better than cp -R.)
Update to a new tag (e.g. kx2)
git fetch --tags
git checkout <new-tag>
./build_release_macos.sh -s -x -a arm64 # deps are cached ⇒ only the slicer recompiles (~18 min)
If the new tag changes a dependency, run the -d stage again first.
Publishing the macOS release
The distributable is a zip of the .app (matching how upstream ships Windows):
ditto -c -k --keepParent build/arm64/OrcaSlicer/OrcaSlicer.app \
OrcaSlicer-KX-v2.4.1-kx1-macOS-arm64.zip
Attach it to a Gitea Release on this fork. Gotcha: a freshly created Gitea fork
may have the Releases unit disabled (has_releases:false), which makes asset
downloads return 404 even though the upload succeeded. Enable it once:
PATCH /api/v1/repos/<owner>/<repo> with {"has_releases": true}.
Gotchas
- Updater points to Gitea, not upstream — commit
7ed0173hardcodeshttps://gitea.it-drui.de/api/v1/repos/viewit/OrcaSlicer-KX/releases/latest. There is no macOS artifact there, so "check for updates" won't find a macOS build. Harmless; updating = recompiling (above). - Universal / Intel:
-a x86_64(Intel),-a universal(fat binary; requires prior arm64 and x86_64 builds). On Apple Silicon,arm64is the right choice. - Not notarized — distributing to third parties would need an Apple Developer account ($99/yr) + notarization. Not needed for local use.