mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-23 15:10:34 +00:00
fix(telemetry): link in-memory exporter archive by path, not component
The opentelemetry-cpp::exporter_in_memory component declares no libs (the Conan recipe ships libopentelemetry_exporter_in_memory.a but does not associate it with the component), so linking that target put nothing on the link line and xrpl_tests still failed with an undefined reference to InMemorySpanExporterFactory::Create. Locate the archive with find_library (HINTS the OTel package lib dir) and link it by path, ahead of the umbrella so its undefined SDK references resolve. Verified: the archive now appears on the generated link line and xrpl_tests links + the SpanGuardScope tests pass. Supersedes the no-op component-target link in the prior commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -67,15 +67,23 @@ endif()
|
||||
# The telemetry test module exercises SpanGuard/Telemetry, which link against
|
||||
# the OpenTelemetry SDK when the telemetry build option is enabled.
|
||||
if(telemetry)
|
||||
# The umbrella opentelemetry-cpp target does NOT include the in-memory
|
||||
# exporter in its link set, so link that component explicitly: the
|
||||
# SpanGuardScope tests drive an InMemorySpanExporter to read exported
|
||||
# spans. Test-only -- production code never uses this exporter.
|
||||
# The SpanGuardScope tests drive an InMemorySpanExporter to read exported
|
||||
# spans (test-only; production never uses it). The Conan package ships
|
||||
# libopentelemetry_exporter_in_memory.a but declares the component with no
|
||||
# libs, so neither the umbrella target nor opentelemetry-cpp::exporter_in_memory
|
||||
# puts the archive on the link line. Locate it by path and link it BEFORE
|
||||
# the umbrella so its undefined SDK references resolve against the umbrella.
|
||||
find_library(
|
||||
OTEL_IN_MEMORY_EXPORTER_LIB
|
||||
NAMES opentelemetry_exporter_in_memory
|
||||
HINTS "${opentelemetry-cpp_PACKAGE_FOLDER_RELEASE}/lib"
|
||||
REQUIRED
|
||||
)
|
||||
target_link_libraries(
|
||||
xrpl_tests
|
||||
PRIVATE
|
||||
"${OTEL_IN_MEMORY_EXPORTER_LIB}"
|
||||
opentelemetry-cpp::opentelemetry-cpp
|
||||
opentelemetry-cpp::exporter_in_memory
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user