# Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 add_library(opentelemetry_api INTERFACE) target_include_directories( opentelemetry_api INTERFACE "$" "$") set_target_properties(opentelemetry_api PROPERTIES EXPORT_NAME api) if(OPENTELEMETRY_INSTALL) install( TARGETS opentelemetry_api EXPORT "${PROJECT_NAME}-target" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) set(LOGS_EXCLUDE_PATTERN "") if(NOT WITH_LOGS_PREVIEW) set(LOGS_EXCLUDE_PATTERN "logs") endif() install( DIRECTORY include/opentelemetry DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN "metrics" EXCLUDE) install( DIRECTORY include/opentelemetry DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN "${LOGS_EXCLUDE_PATTERN}" EXCLUDE) endif() if(BUILD_TESTING) add_subdirectory(test) endif() if(WITH_NO_DEPRECATED_CODE) target_compile_definitions(opentelemetry_api INTERFACE OPENTELEMETRY_NO_DEPRECATED_CODE) endif() if(WITH_ABSEIL) find_package(absl CONFIG REQUIRED) target_compile_definitions(opentelemetry_api INTERFACE HAVE_ABSEIL) target_link_libraries( opentelemetry_api INTERFACE absl::bad_variant_access absl::any absl::base absl::bits absl::city) endif() if(WITH_STL) message("Building with standard library types...") target_compile_definitions(opentelemetry_api INTERFACE HAVE_CPP_STDLIB) else() message("Building with nostd types...") endif() if(WITH_GSL) target_compile_definitions(opentelemetry_api INTERFACE HAVE_GSL) # Guidelines Support Library path. Used if we are not on not get C++20. # find_package(Microsoft.GSL QUIET) if(TARGET Microsoft.GSL::GSL) target_link_libraries(opentelemetry_api INTERFACE Microsoft.GSL::GSL) else() set(GSL_DIR third_party/ms-gsl) target_include_directories( opentelemetry_api INTERFACE "$") endif() endif() if(WITH_LOGS_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_LOGS_PREVIEW) endif() if(WITH_NO_GETENV) target_compile_definitions(opentelemetry_api INTERFACE NO_GETENV) endif() if(WIN32) target_compile_definitions(opentelemetry_api INTERFACE NOMINMAX) if(WITH_ETW) target_compile_definitions(opentelemetry_api INTERFACE HAVE_MSGPACK) endif() endif() if(WITH_ASYNC_EXPORT_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_ASYNC_EXPORT) endif() # A better place should be in sdk, not api if(WITH_OTLP_HTTP_SSL_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_OTLP_HTTP_SSL_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_HTTP_SSL_PREVIEW) if(WITH_OTLP_HTTP_SSL_TLS_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_OTLP_HTTP_SSL_TLS_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_HTTP_SSL_TLS_PREVIEW) endif() endif() if(WITH_METRICS_EXEMPLAR_PREVIEW) target_compile_definitions(opentelemetry_api INTERFACE ENABLE_METRICS_EXEMPLAR_PREVIEW) endif()