mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-18 14:32:36 +00:00
Mirror of snaporca ac85277bac..0e7cb3ec78 (six changes, applied as a patch to DesignPanel.cpp rather than copied, so this fork's 30 permitted divergent lines survive — parity re-checked afterwards: the five shared files are byte-identical, DesignCanvas.cpp and DesignPanel.cpp differ by exactly 16 and 30 lines). - The straight slot's inline field says Radius, which is what it sets. It stores the half-width and passed the typed number through unchanged, so 30 produced a 60 mm slot. - The offer opens from the keyboard (Menu, Shift+F10), anchored on the viewport rather than wherever the pointer happens to be. The card hint names the new route. - The sketch card's Plane combo is gone; the plane comes from the viewport. Also stops build_candidate collapsing a face plane to a base plane while editing. - Mass properties and the dead Edit row are wired into the offer; DesignOffer.hpp is regenerated from tool_atlas.json, verified by re-running the generator and diffing. - docs/rig_build_traps.md + scripts/rig-build.sh, which derives its fork identity from project() so it cannot be pointed at the other fork's image or volume. - docs/design_tab.md refreshed (44 commits stale) + a PR description, with this fork's own merge-base and diff shape rather than snaporca's. Built green in the deps container with the new script and verified on the rig: Menu and Shift+F10 both open the offer at the viewport centre with the pointer parked off-canvas, and the sketch card shows no Plane row. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LyRwbuq6fjn3VV9U9UvhBM
58 lines
3.1 KiB
Bash
Executable File
58 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Incremental slicer build against the orcacad-deps base image.
|
|
#
|
|
# The deps-baked image (built from scripts/Dockerfile.deps) carries the pinned
|
|
# dependencies at /OrcaSlicer/deps/build/destdir. This script mounts the LIVE source
|
|
# tree and resources over the baked copy so code/CMake edits apply immediately, and
|
|
# persists /OrcaSlicer/build in a named volume so ninja recompiles only what changed.
|
|
#
|
|
# Result: edit -> rebuild in seconds-to-minutes instead of a full Docker rebuild.
|
|
#
|
|
# Usage (run on the build host, e.g. behemoth, from anywhere):
|
|
# scripts/docker-iter-build.sh
|
|
# IMAGE=orcacad-deps scripts/docker-iter-build.sh
|
|
#
|
|
# On success the binary is inside the persistent volume at
|
|
# /OrcaSlicer/build/package/bin/orca-slicer (copy it out with a follow-up
|
|
# `docker run --rm -v orcacad_buildcache:/b alpine cp ...` or via this script's tail).
|
|
# Rig build traps already paid for once each (stale project, NLopt cache, pybind11, OCCT_LIBS, SLIC3R_CAD gate): docs/rig_build_traps.md
|
|
set -euo pipefail
|
|
|
|
REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
# orcacad-deps, NOT snaporca-deps: see the note in kernel-test.sh — the wrong image
|
|
# fails at CMake configure, not at link time.
|
|
IMAGE="${IMAGE:-orcacad-deps}"
|
|
BUILD_VOL="${BUILD_VOL:-orcacad_buildcache}"
|
|
|
|
echo "REPO=$REPO IMAGE=$IMAGE BUILD_VOL=$BUILD_VOL"
|
|
|
|
# The root CMakeLists.txt and cmake/ must be mounted too, not taken from the baked image:
|
|
# they carry the build-time gates (e.g. SLIC3R_CAD -> add_definitions(-DSLIC3R_CAD)) that the
|
|
# mounted headers are compiled against. With a stale baked copy the gate silently stays off and
|
|
# the build fails with "class GLCanvas3D has no member named set_design_sketch_tool".
|
|
#
|
|
# build_linux.sh must be mounted for the same reason, and here the stale copy is guaranteed
|
|
# wrong rather than merely risky: orcacad-deps is layered on snaporca-deps, so the baked script
|
|
# is the OTHER fork's and builds `--target Snapmaker_Orca`. This fork's target is `OrcaSlicer`,
|
|
# so without this mount configure succeeds and then ninja dies on "unknown target".
|
|
# scripts/ likewise: build_linux.sh's packaging step sources scripts/appimage_lib_policy.sh,
|
|
# which the baked snaporca tree does not have, so a fully successful link still exited
|
|
# non-zero with "missing AppImage helper" and the binary check never ran.
|
|
docker run --rm \
|
|
-v "$REPO/src":/OrcaSlicer/src \
|
|
-v "$REPO/resources":/OrcaSlicer/resources \
|
|
-v "$REPO/CMakeLists.txt":/OrcaSlicer/CMakeLists.txt \
|
|
-v "$REPO/cmake":/OrcaSlicer/cmake \
|
|
-v "$REPO/deps_src":/OrcaSlicer/deps_src \
|
|
-v "$REPO/build_linux.sh":/OrcaSlicer/build_linux.sh \
|
|
-v "$REPO/scripts":/OrcaSlicer/scripts \
|
|
-v "$BUILD_VOL":/OrcaSlicer/build \
|
|
"$IMAGE" \
|
|
bash -lc 'cd /OrcaSlicer && ./build_linux.sh -sr'
|
|
|
|
# src/CMakeLists.txt:151 renames the OrcaSlicer target's output to "orca-slicer" — not
|
|
# "snapmaker-orca", which is the other fork's binary name.
|
|
echo "=== build finished; checking for binary ==="
|
|
docker run --rm -v "$BUILD_VOL":/b "$IMAGE" \
|
|
bash -lc 'ls -lh /b/package/bin/orca-slicer 2>/dev/null && file /b/package/bin/orca-slicer || echo "NO BINARY"'
|