@@ -36,11 +36,6 @@ project(opentelemetry-cpp)
3636# Mark variables as used so cmake doesn't complain about them
3737mark_as_advanced (CMAKE_TOOLCHAIN_FILE)
3838
39- # Note: CMAKE_FIND_PACKAGE_PREFER_CONFIG requires cmake 3.15. Prefer cmake
40- # CONFIG search mode to find dependencies. This is important to properly find
41- # protobuf versions 3.22.0 and above due to the abseil-cpp dependency.
42- set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE )
43-
4439# Don't use customized cmake modules if vcpkg is used to resolve dependence.
4540if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
4641 list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake/modules/" )
@@ -79,10 +74,6 @@ if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
7974 CACHE STRING "" )
8075endif ()
8176
82- if (VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
83- include ("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} " )
84- endif ()
85-
8677option (WITH_ABI_VERSION_1 "ABI version 1" ON )
8778option (WITH_ABI_VERSION_2 "EXPERIMENTAL: ABI version 2 preview" OFF )
8879
@@ -284,6 +275,10 @@ if(WITH_EXAMPLES_HTTP AND NOT WITH_EXAMPLES)
284275 message (FATAL_ERROR "WITH_EXAMPLES_HTTP=ON requires WITH_EXAMPLES=ON" )
285276endif ()
286277
278+ if (WITH_GSL)
279+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/ms-gsl.cmake" )
280+ endif ()
281+
287282find_package (Threads)
288283
289284function (set_target_version target_name)
@@ -310,49 +305,7 @@ endif()
310305include (GNUInstallDirs)
311306
312307if (WITH_PROMETHEUS)
313- find_package (prometheus-cpp CONFIG QUIET )
314- if (NOT prometheus-cpp_FOUND)
315- message (STATUS "Trying to use local prometheus-cpp from submodule" )
316- if (EXISTS ${PROJECT_SOURCE_DIR} /third_party/prometheus-cpp/.git)
317- set (SAVED_ENABLE_TESTING ${ENABLE_TESTING} )
318- set (SAVED_CMAKE_CXX_CLANG_TIDY ${CMAKE_CXX_CLANG_TIDY} )
319- set (SAVED_CMAKE_CXX_INCLUDE_WHAT_YOU_USE
320- ${CMAKE_CXX_INCLUDE_WHAT_YOU_USE} )
321- set (ENABLE_TESTING OFF )
322- set (CMAKE_CXX_CLANG_TIDY "" )
323- set (CMAKE_CXX_INCLUDE_WHAT_YOU_USE "" )
324- add_subdirectory (third_party/prometheus-cpp)
325- set (ENABLE_TESTING ${SAVED_ENABLE_TESTING} )
326- set (CMAKE_CXX_CLANG_TIDY ${SAVED_CMAKE_CXX_CLANG_TIDY} )
327- set (CMAKE_CXX_INCLUDE_WHAT_YOU_USE
328- ${SAVED_CMAKE_CXX_INCLUDE_WHAT_YOU_USE} )
329-
330- # Get the version of the prometheus-cpp submodule
331- find_package (Git QUIET )
332- if (Git_FOUND)
333- execute_process (
334- COMMAND ${GIT_EXECUTABLE} describe --tags --always
335- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} /third_party/prometheus-cpp
336- OUTPUT_VARIABLE prometheus-cpp_VERSION
337- OUTPUT_STRIP_TRAILING_WHITESPACE)
338- string (REGEX REPLACE "^v" "" prometheus-cpp_VERSION
339- "${prometheus-cpp_VERSION}" )
340- endif ()
341-
342- message (
343- STATUS
344- "Using local prometheus-cpp from submodule. Version = ${prometheus-cpp_VERSION}"
345- )
346- else ()
347- message (
348- FATAL_ERROR
349- "\n prometheus-cpp package was not found. Please either provide it manually or clone with submodules. "
350- "To initialize, fetch and checkout any nested submodules, you can use the following command:\n "
351- "git submodule update --init --recursive" )
352- endif ()
353- else ()
354- message (STATUS "Using external prometheus-cpp" )
355- endif ()
308+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/prometheus-cpp.cmake" )
356309endif ()
357310
358311if (WITH_OTLP_GRPC
@@ -497,6 +450,14 @@ if((NOT WITH_API_ONLY) AND USE_NLOHMANN_JSON)
497450 include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/nlohmann-json.cmake" )
498451endif ()
499452
453+ #
454+ # Do we need OpenTracing ?
455+ #
456+
457+ if (WITH_OPENTRACING)
458+ include ("${opentelemetry-cpp_SOURCE_DIR}/cmake/opentracing-cpp.cmake" )
459+ endif ()
460+
500461if (OTELCPP_MAINTAINER_MODE)
501462 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
502463 message (STATUS "Building with gcc in maintainer mode." )
@@ -678,11 +639,19 @@ message(STATUS "CMake: ${CMAKE_VERSION}")
678639message (STATUS "GTest: ${GTest_VERSION} (${GTest_PROVIDER} )" )
679640message (STATUS "benchmark: ${benchmark_VERSION} (${benchmark_PROVIDER} )" )
680641if (WITH_GSL)
681- message (STATUS "GSL: ${GSL_VERSION} " )
642+ message (
643+ STATUS "Microsoft.GSL: ${Microsoft.GSL_VERSION} (${Microsoft.GSL_PROVIDER})"
644+ )
682645endif ()
683646if (absl_FOUND)
684647 message (STATUS "Abseil: ${absl_VERSION} " )
685648endif ()
649+ if (opentelemetry-proto_VERSION)
650+ message (
651+ STATUS
652+ "opentelemetry-proto: ${opentelemetry-proto_VERSION} (${opentelemetry-proto_PROVIDER})"
653+ )
654+ endif ()
686655if (Protobuf_FOUND)
687656 message (STATUS "Protobuf: ${Protobuf_VERSION} " )
688657endif ()
@@ -696,10 +665,18 @@ if(ZLIB_FOUND)
696665 message (STATUS "ZLIB: ${ZLIB_VERSION} " )
697666endif ()
698667if (USE_NLOHMANN_JSON)
699- message (STATUS "nlohmann-json: ${nlohmann_json_VERSION} " )
668+ message (
669+ STATUS "nlohmann-json: ${nlohmann_json_VERSION} (${nlohmann_json_PROVIDER} )"
670+ )
671+ endif ()
672+ if (WITH_PROMETHEUS)
673+ message (
674+ STATUS
675+ "prometheus-cpp: ${prometheus-cpp_VERSION} (${prometheus-cpp_PROVIDER})" )
700676endif ()
701- if (prometheus-cpp_FOUND)
702- message (STATUS "prometheus-cpp: ${prometheus-cpp_VERSION}" )
677+ if (WITH_OPENTRACING)
678+ message (
679+ STATUS "opentracing-cpp: ${OpenTracing_VERSION} (${OpenTracing_PROVIDER} )" )
703680endif ()
704681message (STATUS "---------------------------------------------" )
705682
@@ -729,30 +706,6 @@ include_directories(api/include)
729706add_subdirectory (api)
730707
731708if (WITH_OPENTRACING)
732- find_package (OpenTracing CONFIG QUIET )
733- if (NOT OpenTracing_FOUND)
734- set (OPENTRACING_DIR "third_party/opentracing-cpp" )
735- message (STATUS "Trying to use local ${OPENTRACING_DIR} from submodule" )
736- if (EXISTS "${PROJECT_SOURCE_DIR} /${OPENTRACING_DIR} /.git" )
737- set (SAVED_BUILD_TESTING ${BUILD_TESTING} )
738- set (BUILD_TESTING OFF )
739- set (SAVED_CMAKE_CXX_INCLUDE_WHAT_YOU_USE
740- ${CMAKE_CXX_INCLUDE_WHAT_YOU_USE} )
741- set (CMAKE_CXX_INCLUDE_WHAT_YOU_USE "" )
742- add_subdirectory (${OPENTRACING_DIR} )
743- set (BUILD_TESTING ${SAVED_BUILD_TESTING} )
744- set (CMAKE_CXX_INCLUDE_WHAT_YOU_USE
745- ${SAVED_CMAKE_CXX_INCLUDE_WHAT_YOU_USE} )
746- else ()
747- message (
748- FATAL_ERROR
749- "\n opentracing-cpp package was not found. Please either provide it manually or clone with submodules. "
750- "To initialize, fetch and checkout any nested submodules, you can use the following command:\n "
751- "git submodule update --init --recursive" )
752- endif ()
753- else ()
754- message (STATUS "Using external opentracing-cpp" )
755- endif ()
756709 add_subdirectory (opentracing-shim)
757710endif ()
758711
0 commit comments