mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-18 22:42:37 +00:00
Mirrors snaporca-cad a016dffb48 + 4b828c4798 so the two forks do not drift:
- Sidebar on Orca's widget set: ComboBox for all 25 pickers, StaticBox
frames for the tool cards / feature tree / bodies list, framed double
spins, and no stack of full-width action buttons (Prepare's left panel
is parameters only).
- Toolbar: document group + undo/redo + mode-gated tools, commit far
right, ordered via keyed slots, at Prepare's 40 px / 4 px geometry.
- Polygon options and a new Move/Rotate card (distance, axis, angle) in
the sidebar instead of inline in the toolbar row.
- DesignSketchTool: stop consuming the LeftDown over a solid. Orca starts
a rotate drag on the press, so swallowing it killed orbit/pan whenever a
body was on screen. The pick now resolves on LeftUp within 4 px.
DesignSketchTool.{cpp,hpp} were byte-identical across the forks and are
copied verbatim. DesignPanel.cpp needed one hand-merge: mainline's
DropDown is Item-based (DropDown::Item{text,tip,icon}, DropDown(items&))
where snaporca passes parallel vectors, so feat_dropdown/ToolFlyout keep
the mainline form. Checked field-by-field against this fork's
Widgets/DropDown.hpp.
scripts/docker-iter-build.sh: mount the root CMakeLists.txt and cmake/
rather than inheriting the baked copies, which silently drops the
SLIC3R_CAD gate, and stop defaulting to snaporca's build volume - sharing
it made the two forks overwrite each other's cache and binary.
NOT COMPILED. This fork needs Eigen 5.0.1 (find_package(Eigen3 5.0.1
REQUIRED)) while the available snaporca-deps image supplies 3.3, so it
needs its own deps build to verify. The behaviour above was verified only
on the snaporca side.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVzKmX6Y1aEteit1HTXG4Q
42 lines
1.9 KiB
Bash
Executable File
42 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Incremental slicer build against the snaporca-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=snaporca-deps scripts/docker-iter-build.sh
|
|
#
|
|
# On success the binary is inside the persistent volume at
|
|
# /OrcaSlicer/build/package/bin/snapmaker-orca (copy it out with a follow-up
|
|
# `docker run --rm -v snaporca_buildcache:/b alpine cp ...` or via this script's tail).
|
|
set -euo pipefail
|
|
|
|
REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
IMAGE="${IMAGE:-snaporca-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".
|
|
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 "$BUILD_VOL":/OrcaSlicer/build \
|
|
"$IMAGE" \
|
|
bash -lc 'cd /OrcaSlicer && ./build_linux.sh -sr'
|
|
|
|
echo "=== build finished; checking for binary ==="
|
|
docker run --rm -v "$BUILD_VOL":/b "$IMAGE" \
|
|
bash -lc 'ls -lh /b/package/bin/snapmaker-orca 2>/dev/null && file /b/package/bin/snapmaker-orca || echo "NO BINARY"'
|