forked from viewit/OrcaSlicer-KX
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c8a3a948b9 | |||
| b3102b3f70 |
134
BUILD_MAC_KX.md
Normal file
134
BUILD_MAC_KX.md
Normal file
@ -0,0 +1,134 @@
|
||||
# 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 upstream `CLAUDE.md`/`AGENTS.md` are 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 `-x` note).
|
||||
Check: `xcode-select -p` prints a path.
|
||||
- **Homebrew** with:
|
||||
|
||||
```bash
|
||||
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`):
|
||||
|
||||
```bash
|
||||
# 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 ... - Failed` lines 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 -v` and `spctl`
|
||||
complain ("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:
|
||||
|
||||
```bash
|
||||
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)
|
||||
|
||||
```bash
|
||||
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):
|
||||
|
||||
```bash
|
||||
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 `7ed0173` hardcodes
|
||||
`https://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, `arm64` is the right choice.
|
||||
- **Not notarized** — distributing to third parties would need an Apple Developer
|
||||
account ($99/yr) + notarization. Not needed for local use.
|
||||
49
README.md
49
README.md
@ -1,8 +1,8 @@
|
||||
# OrcaSlicer-KX
|
||||
|
||||
**OrcaSlicer mit KX-Bridge-Patches für den Anycubic Kobra X**
|
||||
**OrcaSlicer with KX-Bridge patches for the Anycubic Kobra X**
|
||||
|
||||
Fertige Binaries von [OrcaSlicer](https://github.com/SoftFever/OrcaSlicer) mit integrierten KX-spezifischen Erweiterungen — empfohlen für den Einsatz mit [KX-Bridge](https://gitea.it-drui.de/viewit/KX-Bridge-Release).
|
||||
Ready-to-use binaries of [OrcaSlicer](https://github.com/SoftFever/OrcaSlicer) with integrated KX-specific extensions — recommended for use with [KX-Bridge](https://gitea.it-drui.de/viewit/KX-Bridge-Release).
|
||||
|
||||
[](https://gitea.it-drui.de/viewit/OrcaSlicer-KX/releases)
|
||||
|
||||
@ -10,49 +10,50 @@ Fertige Binaries von [OrcaSlicer](https://github.com/SoftFever/OrcaSlicer) mit i
|
||||
|
||||
## Download
|
||||
|
||||
Aktuelle Version: **2.4.1-kx1** (Basis: OrcaSlicer 2.4.1 stable)
|
||||
Current version: **2.4.1-kx1** (base: OrcaSlicer 2.4.1 stable)
|
||||
|
||||
| Plattform | Datei | Hinweis |
|
||||
| Platform | File | Note |
|
||||
|-----------|-------|---------|
|
||||
| Linux x86_64 | `OrcaSlicer-KX-Linux-x86_64.AppImage` | `chmod +x` setzen, dann starten |
|
||||
| Windows x86_64 | `OrcaSlicer-KX-Windows-x86_64.zip` | Entpacken, `orca-slicer.exe` starten |
|
||||
| Linux x86_64 | `OrcaSlicer-KX-Linux-x86_64.AppImage` | `chmod +x`, then run |
|
||||
| Windows x86_64 | `OrcaSlicer-KX-Windows-x86_64.zip` | Unzip, run `orca-slicer.exe` |
|
||||
| macOS arm64 (Apple Silicon) | `OrcaSlicer-KX-<version>-macOS-arm64.zip` | on [this fork's Releases](https://gitea.it-drui.de/walterioo/OrcaSlicer-KX/releases) — not notarized, see the release notes |
|
||||
|
||||
macOS wird nicht bereitgestellt — bitte aus dem Upstream selbst bauen.
|
||||
The macOS build (Apple Silicon / arm64) is provided on this fork's [Releases](https://gitea.it-drui.de/walterioo/OrcaSlicer-KX/releases); build details are in `BUILD_MAC_KX.md`. Intel Macs are not shipped — rebuild with `-a x86_64`.
|
||||
|
||||
---
|
||||
|
||||
## Enthaltene Patches
|
||||
## Included patches
|
||||
|
||||
- **Moonraker-Bridge:** mehrstufiges Filament-Matching (Name, Sub-Brand, Vendor-Fallback) mit Vendor-Filter-Skip
|
||||
- **AMS-Leerslot-Fix:** leere AMS-Slots werden korrekt grau dargestellt (kein Absturz / falsches Filament)
|
||||
- **Filament-ID:** eindeutige `filament_id` für abgeleitete User-Presets (korrekte Bridge-Synchronisation)
|
||||
- **Kobra X Profile:** Drucker- und G-Code-Profile für den Anycubic Kobra X
|
||||
- **Moonraker bridge:** multi-stage filament matching (name, sub-brand, vendor fallback) with vendor-filter skip
|
||||
- **AMS empty-slot fix:** empty AMS slots are shown correctly in grey (no crash / wrong filament)
|
||||
- **Filament ID:** unique `filament_id` for derived user presets (correct bridge synchronization)
|
||||
- **Kobra X profiles:** printer and G-code profiles for the Anycubic Kobra X
|
||||
|
||||
---
|
||||
|
||||
## Filament-Presets & KX-Bridge
|
||||
## Filament presets & KX-Bridge
|
||||
|
||||
📄 [Anleitung: eigene Filament-Presets erstellen, prüfen und importieren](https://gitea.it-drui.de/viewit/KX-Bridge-Release/src/branch/master/docs/filament-preset-bridge-guide.md)
|
||||
📄 [Guide: create, validate and import your own filament presets](https://gitea.it-drui.de/viewit/KX-Bridge-Release/src/branch/master/docs/filament-preset-bridge-guide.md)
|
||||
|
||||
---
|
||||
|
||||
## Branch-Struktur
|
||||
## Branch structure
|
||||
|
||||
| Branch | Version | Rolle |
|
||||
| Branch | Version | Role |
|
||||
|--------|---------|-------|
|
||||
| `stable` / `kx-v2.4` | 2.4.1-kx1 | **aktuell stabil** |
|
||||
| `kx-v2.3` | 2.3.2-kx4 | eingefroren (Altstand) |
|
||||
| `stable` / `kx-v2.4` | 2.4.1-kx1 | **current stable** |
|
||||
| `kx-v2.3` | 2.3.2-kx4 | frozen (legacy) |
|
||||
|
||||
---
|
||||
|
||||
## Warum ein eigenes Repo?
|
||||
## Why a separate repo?
|
||||
|
||||
KX-Bridge selbst liegt unter [viewit/KX-Bridge-Release](https://gitea.it-drui.de/viewit/KX-Bridge-Release).
|
||||
OrcaSlicer steht unter AGPL-3.0 — ein separates Repo hält Lizenzen, Quellherkunft und Update-Zyklen sauber getrennt.
|
||||
KX-Bridge itself lives at [viewit/KX-Bridge-Release](https://gitea.it-drui.de/viewit/KX-Bridge-Release).
|
||||
OrcaSlicer is licensed under AGPL-3.0 — a separate repo keeps licenses, source provenance and update cycles cleanly separated.
|
||||
|
||||
---
|
||||
|
||||
## Lizenz & Quelle
|
||||
## License & source
|
||||
|
||||
Diese Builds sind Ableitungen von [OrcaSlicer](https://github.com/SoftFever/OrcaSlicer), lizenziert unter **GNU AGPL-3.0**.
|
||||
Der KX-Patch-Quellcode liegt auf Branch [`kx-v2.4`](https://gitea.it-drui.de/viewit/OrcaSlicer-KX/src/branch/kx-v2.4) dieses Repos.
|
||||
These builds are derivatives of [OrcaSlicer](https://github.com/SoftFever/OrcaSlicer), licensed under **GNU AGPL-3.0**.
|
||||
The KX patch source code lives on branch [`kx-v2.4`](https://gitea.it-drui.de/viewit/OrcaSlicer-KX/src/branch/kx-v2.4) of this repo.
|
||||
|
||||
Reference in New Issue
Block a user