JFJochHttpReader (the viewer's live-broker HTTP client) is the only HTTP client
in the reader library and the only piece that needs TLS + Kerberos. Moving it out
of the always-built JFJochReader keeps the broker/writer free of a TLS/Kerberos
stack; switching it from cpp-httplib to libcurl gives the viewer HTTPS and, later,
GSSAPI/Bearer auth.
- Move reader/JFJochHttpReader.{cpp,h} -> viewer/, compiled into jfjoch_viewer.
- Rewrite the 10 httplib call sites onto one libcurl easy-handle Request() helper
(GET + PUT, binary/JSON bodies; status/transport handling preserved).
- CMake: FetchContent libcurl, STATIC, HTTP(S)-only, only for viewer builds.
OS-native backends keep Windows self-contained (Schannel+SSPI); Linux uses
system OpenSSL + GSSAPI (krb5). Drop httplib from JFJochReader.
- Block httplib OpenSSL auto-link (HTTPLIB_USE_OPENSSL_IF_AVAILABLE OFF) so the
broker stops pulling in libssl/libcrypto for HTTPS it never serves.
- docker: add krb5 dev headers (libkrb5-dev / krb5-devel) for CURL_USE_GSSAPI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
874 B
CMake
24 lines
874 B
CMake
ADD_LIBRARY(JFJochReader STATIC
|
|
JFJochReader.cpp JFJochReader.h
|
|
JFJochHDF5Reader.cpp
|
|
JFJochHDF5Reader.h
|
|
HDF5ImageLocator.cpp
|
|
HDF5ImageLocator.h
|
|
HDF5ImageSource.cpp
|
|
HDF5ImageSource.h
|
|
HDF5MetadataSource.cpp
|
|
HDF5MetadataSource.h
|
|
JFJochReaderImage.cpp
|
|
JFJochReaderImage.h
|
|
JFJochReaderDataset.cpp
|
|
JFJochReaderDataset.h
|
|
JFJochReaderSpots.h
|
|
)
|
|
|
|
# NB: JFJochHttpReader (the viewer's live-broker HTTP client) lives in viewer/ and links libcurl;
|
|
# it is deliberately NOT part of this always-built library, so the broker/writer never pull in a
|
|
# TLS/Kerberos stack.
|
|
TARGET_LINK_LIBRARIES(JFJochReader JFJochImageAnalysis JFJochAPI JFJochCommon JFJochZMQ JFJochLogger
|
|
JFJochHDF5Wrappers CBORStream2FrameSerialize
|
|
${CMAKE_DL_LIBS})
|