diff --git a/scripts/docker-iter-build.sh b/scripts/docker-iter-build.sh index 481ed4a42e..af1665c9c3 100755 --- a/scripts/docker-iter-build.sh +++ b/scripts/docker-iter-build.sh @@ -13,7 +13,7 @@ # IMAGE=orcacad-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 +# /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). set -euo pipefail @@ -29,16 +29,28 @@ echo "REPO=$REPO IMAGE=$IMAGE BUILD_VOL=$BUILD_VOL" # 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/snapmaker-orca 2>/dev/null && file /b/package/bin/snapmaker-orca || echo "NO BINARY"' + bash -lc 'ls -lh /b/package/bin/orca-slicer 2>/dev/null && file /b/package/bin/orca-slicer || echo "NO BINARY"'