cmake: don't fetch sls/catch2 in a viewer-only build
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m20s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m43s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m34s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m3s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m57s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m27s
Build Packages / build:rpm (rocky8) (push) Successful in 10m17s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m17s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m22s
Build Packages / build:rpm (rocky9) (push) Successful in 11m10s
Build Packages / Generate python client (push) Successful in 19s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 51s
Build Packages / XDS test (durin plugin) (push) Successful in 7m16s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 6m38s
Build Packages / DIALS test (push) Successful in 12m31s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m5s
Build Packages / Unit tests (push) Successful in 54m23s

Under JFJOCH_VIEWER_ONLY, only the viewer's transitive deps are built, so
sls_detector_package (detector_control/receiver) and catch2 (tests) are
never used -- and sls does not configure under MSVC, which is the whole
point of the viewer-only mode. Skip fetching just those two; zstd, hdf5,
spdlog, libzmq and httplib are still required (JFJochReader links httplib).

Verified: cmake -DJFJOCH_VIEWER_ONLY=ON configures with sls/catch2 absent
and `make jfjoch_viewer` still links.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 21:02:28 +02:00
co-authored by Claude Opus 4.8
parent 3c6439530d
commit 0585fab9bf
+8 -1
View File
@@ -164,7 +164,14 @@ SET(CMAKE_POLICY_VERSION_MINIMUM 3.5)
# libzmq must be made available BEFORE sls_detector_package for the override above to take effect.
FetchContent_MakeAvailable(libzmq)
FetchContent_MakeAvailable(zstd sls_detector_package catch2 hdf5 spdlog httplib)
IF (JFJOCH_VIEWER_ONLY)
# A viewer-only build still needs zstd/hdf5/spdlog/httplib (JFJochReader uses httplib).
# Only sls_detector_package (detector) and catch2 (tests) are not built here -- and sls
# in particular does not configure under MSVC -- so skip just those two.
FetchContent_MakeAvailable(zstd hdf5 spdlog httplib)
ELSE()
FetchContent_MakeAvailable(zstd sls_detector_package catch2 hdf5 spdlog httplib)
ENDIF()
IF (JFJOCH_VIEWER_ONLY)
# Minimal subtree: jfjoch_viewer and only the libraries it transitively links.