deps: build libslvs as a dependency instead of vendoring it in src

Review request on PR #15238: "Move the SLVS to deps if the source code remains
unmodified. If any changes were made to the source code, move it to deps_src."

It is unmodified — all 20 files under src/libslic3r/slvs were byte-identical to
JacobStoren/SolveSpaceLib@4d87045, the extraction of solvespace.com's libslvs.
So deps/ it is, fetched by hash like every other dependency.

Only the CMakeLists is ours: upstream's builds a demo executable and installs
nothing, so deps/SLVS/CMakeLists.txt.in replaces it via PATCH_COMMAND — the same
shape deps/OpenCSG already uses. The public header keeps its spelling, so
SketchSolver.cpp still says `#include <slvs.h>` and needs no edit.

The CI deps cache is keyed on hashFiles('deps/**'), so it rebuilds itself.

Verified: dep_SLVS builds and installs, libslic3r links against SLVS::slvs, and
the CAD suite is unchanged at 2518 assertions in 194 test cases.
This commit is contained in:
Tommaso Bianchi
2026-08-20 17:44:19 +02:00
parent 6fc3c99e31
commit 5d120921d5
25 changed files with 83 additions and 10047 deletions
+2
View File
@@ -350,6 +350,7 @@ include(GLEW/GLEW.cmake)
include(GLFW/GLFW.cmake)
include(OpenCSG/OpenCSG.cmake)
include(SLVS/SLVS.cmake)
include(TBB/TBB.cmake)
@@ -436,6 +437,7 @@ set(_dep_list
dep_NLopt
dep_OpenVDB
dep_OpenCSG
dep_SLVS
dep_OpenCV
dep_Eigen
dep_CGAL