AimRT/cmake/GetOpenTelemetryCpp.cmake

144 lines
4.2 KiB
CMake
Raw Permalink Normal View History

2024-09-23 16:01:31 +08:00
# Copyright (c) 2023, AgiBot Inc.
# All rights reserved.
include(FetchContent)
message(STATUS "get opentelemetry_cpp ...")
set(opentelemetry_cpp_DOWNLOAD_URL
"https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.16.1.tar.gz"
CACHE STRING "")
if(opentelemetry_cpp_LOCAL_SOURCE)
FetchContent_Declare(opentelemetry_cpp SOURCE_DIR ${opentelemetry_cpp_LOCAL_SOURCE})
else()
FetchContent_Declare(
opentelemetry_cpp
URL ${opentelemetry_cpp_DOWNLOAD_URL}
DOWNLOAD_EXTRACT_TIMESTAMP TRUE)
endif()
# Wrap it in a function to restrict the scope of the variables
function(get_opentelemetry_cpp)
FetchContent_GetProperties(opentelemetry_cpp)
if(NOT opentelemetry_cpp_POPULATED)
set(BUILD_TESTING OFF)
2024-09-23 16:01:31 +08:00
set(WITH_BENCHMARK OFF)
2024-09-23 16:01:31 +08:00
set(WITH_EXAMPLES OFF)
2024-09-23 16:01:31 +08:00
set(WITH_FUNC_TESTS OFF)
2024-09-23 16:01:31 +08:00
set(WITH_NO_DEPRECATED_CODE ON)
2024-09-23 16:01:31 +08:00
set(WITH_DEPRECATED_SDK_FACTORY OFF)
2024-09-23 16:01:31 +08:00
set(WITH_OTLP_HTTP ON)
2024-09-23 16:01:31 +08:00
set(WITH_STL
"CXX20"
CACHE STRING "")
2024-10-14 09:45:07 +08:00
set(OTELCPP_PROTO_PATH
${opentelemetry_proto_SOURCE_DIR}
CACHE PATH "")
2024-09-23 16:01:31 +08:00
set(PROTOBUF_PROTOC_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE})
2024-09-23 16:01:31 +08:00
set(BUILD_SHARED_LIBS OFF)
2024-09-23 16:01:31 +08:00
FetchContent_MakeAvailable(opentelemetry_cpp)
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_api)
add_library(opentelemetry-cpp::api ALIAS opentelemetry_api)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_sdk)
add_library(opentelemetry-cpp::sdk ALIAS opentelemetry_sdk)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_ext)
add_library(opentelemetry-cpp::ext ALIAS opentelemetry_ext)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_version)
add_library(opentelemetry-cpp::version ALIAS opentelemetry_version)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_common)
add_library(opentelemetry-cpp::common ALIAS opentelemetry_common)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_trace)
add_library(opentelemetry-cpp::trace ALIAS opentelemetry_trace)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_metrics)
add_library(opentelemetry-cpp::metrics ALIAS opentelemetry_metrics)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_logs)
add_library(opentelemetry-cpp::logs ALIAS opentelemetry_logs)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_ostream_span)
add_library(opentelemetry-cpp::ostream_span_exporter ALIAS opentelemetry_exporter_ostream_span)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_ostream_metrics)
add_library(opentelemetry-cpp::ostream_metrics_exporter ALIAS opentelemetry_exporter_ostream_metrics)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_ostream_logs)
add_library(opentelemetry-cpp::ostream_log_record_exporter ALIAS opentelemetry_exporter_ostream_logs)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_otlp_recordable)
add_library(opentelemetry-cpp::otlp_recordable ALIAS opentelemetry_otlp_recordable)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_otlp_http_client)
add_library(opentelemetry-cpp::otlp_http_client ALIAS opentelemetry_exporter_otlp_http_client)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_otlp_http)
add_library(opentelemetry-cpp::otlp_http_exporter ALIAS opentelemetry_exporter_otlp_http)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_otlp_http_log)
add_library(opentelemetry-cpp::otlp_http_log_record_exporter ALIAS opentelemetry_exporter_otlp_http_log)
endif()
2024-09-23 16:01:31 +08:00
if(TARGET opentelemetry_exporter_otlp_http_metric)
add_library(opentelemetry-cpp::otlp_http_metric_exporter ALIAS opentelemetry_exporter_otlp_http_metric)
endif()
if(TARGET opentelemetry_http_client_curl)
add_library(opentelemetry-cpp::http_client_curl ALIAS opentelemetry_http_client_curl)
endif()
2024-09-23 16:01:31 +08:00
endif()
endfunction()
2024-09-23 16:01:31 +08:00
get_opentelemetry_cpp()
2024-09-23 16:01:31 +08:00
# import targets:
# opentelemetry-cpp::api
# opentelemetry-cpp::sdk
# opentelemetry-cpp::ext
# opentelemetry-cpp::version
# opentelemetry-cpp::common
# opentelemetry-cpp::trace
# opentelemetry-cpp::metrics
# opentelemetry-cpp::logs
# opentelemetry-cpp::ostream_span_exporter
# opentelemetry-cpp::ostream_metrics_exporter
# opentelemetry-cpp::ostream_log_record_exporter
# opentelemetry-cpp::otlp_recordable
# opentelemetry-cpp::otlp_http_client
# opentelemetry-cpp::otlp_http_exporter
# opentelemetry-cpp::otlp_http_log_record_exporter
# opentelemetry-cpp::otlp_http_metric_exporter
# opentelemetry-cpp::http_client_curl