@@ -260,84 +260,94 @@ if(MSVC)
260260 endif ()
261261endif ()
262262
263- if ( NOT WITH_API_ONLY)
264- include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/threads.cmake" )
265- endif ()
263+ #
264+ # API ONLY Dependencies
265+ #
266266
267267if (WITH_GSL)
268268 include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/ms-gsl.cmake" )
269269endif ()
270270
271271#
272- # Do we need HTTP CLIENT CURL ?
272+ # SDK and Exporter Dependencies
273273#
274274
275- if (WITH_OTLP_HTTP
276- OR WITH_ELASTICSEARCH
277- OR WITH_ZIPKIN
278- OR BUILD_W3CTRACECONTEXT_TEST
279- OR WITH_EXAMPLES_HTTP)
280- set (WITH_HTTP_CLIENT_CURL ON )
281- else ()
282- set (WITH_HTTP_CLIENT_CURL OFF )
283- endif ()
275+ if (NOT WITH_API_ONLY)
284276
285- #
286- # Do we need ZLIB ?
287- #
277+ if (WITH_OPENTRACING)
278+ include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/opentracing-cpp.cmake" )
279+ endif ()
288280
289- if ((NOT WITH_API_ONLY)
290- AND WITH_HTTP_CLIENT_CURL
291- AND WITH_OTLP_HTTP_COMPRESSION)
292- include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/zlib.cmake" )
293- endif ()
281+ # Always include Threads for the SDK
294282
295- #
296- # Do we need CURL ?
297- #
283+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/threads.cmake" )
298284
299- if (( NOT WITH_API_ONLY) AND WITH_HTTP_CLIENT_CURL)
300- include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/curl.cmake" )
301- endif ()
285+ #
286+ # Do we need HTTP CLIENT CURL ?
287+ #
302288
303- if (WITH_OTLP_GRPC
304- OR WITH_OTLP_HTTP
305- OR WITH_OTLP_FILE)
289+ set (WITH_HTTP_CLIENT_CURL OFF )
290+ if (WITH_OTLP_HTTP
291+ OR WITH_ELASTICSEARCH
292+ OR WITH_ZIPKIN
293+ OR BUILD_W3CTRACECONTEXT_TEST
294+ OR WITH_EXAMPLES_HTTP)
295+ set (WITH_HTTP_CLIENT_CURL ON )
296+ endif ()
306297
307- if (WITH_OTLP_GRPC)
308- include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/grpc.cmake" )
298+ #
299+ # Do we need ZLIB ?
300+ #
301+
302+ if (WITH_HTTP_CLIENT_CURL AND WITH_OTLP_HTTP_COMPRESSION)
303+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/zlib.cmake" )
309304 endif ()
310305
311- include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/protobuf.cmake" )
312- include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/opentelemetry-proto.cmake" )
313- endif ()
306+ #
307+ # Do we need CURL ?
308+ #
314309
315- #
316- # Do we need NLOHMANN_JSON ?
317- #
310+ if (WITH_HTTP_CLIENT_CURL)
311+ include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/curl.cmake" )
312+ endif ()
318313
319- if (WITH_ELASTICSEARCH
320- OR WITH_ZIPKIN
321- OR WITH_OTLP_HTTP
322- OR WITH_OTLP_FILE
323- OR BUILD_W3CTRACECONTEXT_TEST
324- OR WITH_ETW)
325- set (USE_NLOHMANN_JSON ON )
326- else ()
327- set (USE_NLOHMANN_JSON OFF )
328- endif ()
314+ #
315+ # Do we need gRPC, Protobuf, and opentelemetry-proto ?
316+ #
329317
330- if (( NOT WITH_API_ONLY) AND USE_NLOHMANN_JSON)
331- include ( "${opentelemetry-cpp_SOURCE_DIR}/cmake/nlohmann-json.cmake" )
332- endif ( )
318+ if (WITH_OTLP_GRPC
319+ OR WITH_OTLP_HTTP
320+ OR WITH_OTLP_FILE )
333321
334- if (WITH_PROMETHEUS)
335- include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/prometheus-cpp.cmake" )
336- endif ()
322+ # Include gRPC before Protobuf We'll use the gRPC submodules for Protobuf
323+ # and Abseil with FetchContent
337324
338- if (WITH_OPENTRACING)
339- include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/opentracing-cpp.cmake" )
340- endif ()
325+ if (WITH_OTLP_GRPC)
326+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/grpc.cmake" )
327+ endif ()
328+
329+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/protobuf.cmake" )
330+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/opentelemetry-proto.cmake" )
331+ endif ()
332+
333+ #
334+ # Do we need NLOHMANN_JSON ?
335+ #
336+
337+ if (WITH_ELASTICSEARCH
338+ OR WITH_ZIPKIN
339+ OR WITH_OTLP_HTTP
340+ OR WITH_OTLP_FILE
341+ OR BUILD_W3CTRACECONTEXT_TEST
342+ OR WITH_ETW)
343+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/nlohmann-json.cmake" )
344+ endif ()
345+
346+ if (WITH_PROMETHEUS)
347+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/prometheus-cpp.cmake" )
348+ endif ()
349+
350+ endif (NOT WITH_API_ONLY)
341351
342352if (OTELCPP_MAINTAINER_MODE)
343353 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
@@ -461,11 +471,12 @@ otel_print_build_config()
461471
462472add_subdirectory (api)
463473
464- if (WITH_OPENTRACING)
465- add_subdirectory (opentracing-shim)
466- endif ()
467-
468474if (NOT WITH_API_ONLY)
475+
476+ if (WITH_OPENTRACING)
477+ add_subdirectory (opentracing-shim)
478+ endif ()
479+
469480 add_subdirectory (sdk)
470481 add_subdirectory (ext )
471482 add_subdirectory (exporters)
0 commit comments