mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-18 22:42:37 +00:00
First successful link of orca-slicer in this fork's history (158 MB, 738/738
objects, plus OrcaSlicer_profile_validator). 1633005bba got the test binary
green; the GUI had still never linked.
The blocker was in the deps image, not the code. That commit's message says
OCCT V7_6_0, Boost 1.84.0 and OpenCV 4.6.0 "are pinned identically in both
forks and were reused as-is". That is true of the VERSIONS and false of the
FLAGS: this fork's deps/OpenCV/OpenCV.cmake passes -DWITH_JPEG=OFF,
-DWITH_TIFF=OFF and -DBUILD_TIFF=OFF, and snaporca's does not. So the reused
build shipped lib/opencv4/3rdparty/liblibjpeg-turbo.a, which collides with the
deps' own lib/libjpeg.a — wx pulls that in via wxUSE_LIBJPEG=sys — on
jpeg_stdio_dest. Under -flto that duplicate is fatal, not a warning. snaporca
never sees it because its GUI does not link libopencv_world.a at all.
Fixed by rebuilding OpenCV 4.6.0 in orcacad-deps with this fork's own flags
(read out of the recipe rather than retyped), from the source already cached in
the image, into a clean build dir so no stale cache entry survived, and deleting
the orphaned bundled jpeg archive. The rebuilt libopencv_world.a has no jpeg or
tiff symbol references and its CMake config no longer names either library.
--allow-multiple-definition would have hidden this while leaving OpenCV carrying
codecs mainline deliberately turns off.
Lesson for the next dep: comparing deps recipes by version is not enough, diff
the CMAKE_ARGS.
Two more mounts, same root cause as the CMakeLists.txt mount this script
already documents — the baked tree is snaporca's:
- build_linux.sh, which builds `--target Snapmaker_Orca`; here the target is
OrcaSlicer and its output name is orca-slicer, so configure passed and ninja
then died on "unknown target". The binary check was looking for the wrong
name too.
- scripts/, because the packaging step needs scripts/appimage_lib_policy.sh;
without it a fully successful link still exited non-zero with "missing
AppImage helper" and the binary check never ran.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>