123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- #.rst:
- # opentelemetry-cpp-config.cmake
- # --------
- # Finding opentelemetry-cpp in CMake projects
- # ========================================
- #
- # - find_package(opentelemetry-cpp CONFIG REQUIRED) to import all installed targets and dependencies
- # - find_package(opentelemetry-cpp CONFIG COMPONENTS ...) to import specific components' targets and dependencies
- #
- # Example usage
- # -------------------
- #
- # 1. **No Components Specified**
- #
- # When no components are provided, all components and their targets are imported.
- #
- # .. code-block:: cmake
- #
- # find_package(opentelemetry-cpp CONFIG REQUIRED)
- #
- #
- # 2. **Components Specified**
- #
- # When a component is specified, its third-party dependencies are found;
- # then, targets from that component, along with the components on which it depends, are imported.
- #
- # .. code-block:: cmake
- #
- # find_package(opentelemetry-cpp CONFIG REQUIRED COMPONENTS exporters_otlp_grpc)
- #
- #
- #.. note::
- # To troubleshoot issues with ``find_package(opentelemetry-cpp CONFIG REQUIRED)``, run CMake with debug logging enabled:
- #
- # .. code-block:: bash
- #
- # cmake --log-level=DEBUG -S <source_dir> -B <build_dir>
- #
- # To get more verbose output from CMake’s package search, run CMake with the following flag:
- #
- # .. code-block:: bash
- #
- # cmake -DCMAKE_FIND_DEBUG_MODE=ON -S <source_dir> -B <build_dir>
- #
- #
- # CMake Variables Defined
- # --------------------
- #
- # This module defines the following variables:
- #
- # ::
- #
- # OPENTELEMETRY_CPP_INCLUDE_DIRS - Include directories of opentelemetry-cpp.
- # OPENTELEMETRY_CPP_LIBRARY_DIRS - Link directories of opentelemetry-cpp.
- # OPENTELEMETRY_CPP_LIBRARIES - List of libraries when using opentelemetry-cpp.
- # OPENTELEMETRY_CPP_FOUND - True if opentelemetry-cpp found.
- # OPENTELEMETRY_ABI_VERSION_NO - ABI version of opentelemetry-cpp.
- # OPENTELEMETRY_VERSION - Version of opentelemetry-cpp.
- # OPENTELEMETRY_CPP_COMPONENTS_INSTALLED - List of components installed.
- # opentelemetry-cpp_FOUND - True if opentelemetry-cpp found.
- # opentelemetry-cpp_<component>_FOUND - True if the requested component is found.
- # ::
- #
- #
- # CMake Components and Targets Supported
- # --------------------
- # opentelemetry-cpp supports the following components and targets. This install may include a subset.
- #
- # COMPONENTS
- # api
- # sdk
- # ext_common
- # ext_http_curl
- # ext_dll
- # exporters_in_memory
- # exporters_ostream
- # exporters_otlp_common
- # exporters_otlp_file
- # exporters_otlp_grpc
- # exporters_otlp_http
- # exporters_prometheus
- # exporters_elasticsearch
- # exporters_etw
- # exporters_zipkin
- # shims_opentracing
- #
- # ::
- #
- # TARGETS
- # opentelemetry-cpp::api - Imported target of COMPONENT api
- # opentelemetry-cpp::sdk - Imported target of COMPONENT sdk
- # opentelemetry-cpp::version - Imported target of COMPONENT sdk
- # opentelemetry-cpp::common - Imported target of COMPONENT sdk
- # opentelemetry-cpp::resources - Imported target of COMPONENT sdk
- # opentelemetry-cpp::trace - Imported target of COMPONENT sdk
- # opentelemetry-cpp::metrics - Imported target of COMPONENT sdk
- # opentelemetry-cpp::logs - Imported target of COMPONENT sdk
- # opentelemetry-cpp::ext - Imported target of COMPONENT ext_common
- # opentelemetry-cpp::http_client_curl - Imported target of COMPONENT ext_http_curl
- # opentelemetry-cpp::opentelemetry_cpp - Imported target of COMPONENT ext_dll
- # opentelemetry-cpp::in_memory_span_exporter - Imported target of COMPONENT exporters_in_memory
- # opentelemetry-cpp::in_memory_metric_exporter - Imported target of COMPONENT exporters_in_memory
- # opentelemetry-cpp::ostream_log_record_exporter - Imported target of COMPONENT exporters_ostream
- # opentelemetry-cpp::ostream_metrics_exporter - Imported target of COMPONENT exporters_ostream
- # opentelemetry-cpp::ostream_span_exporter - Imported target of COMPONENT exporters_ostream
- # opentelemetry-cpp::proto - Imported target of COMPONENT exporters_otlp_common
- # opentelemetry-cpp::otlp_recordable - Imported target of COMPONENT exporters_otlp_common
- # opentelemetry-cpp::otlp_file_client - Imported target of COMPONENT exporters_otlp_file
- # opentelemetry-cpp::otlp_file_exporter - Imported target of COMPONENT exporters_otlp_file
- # opentelemetry-cpp::otlp_file_log_record_exporter - Imported target of COMPONENT exporters_otlp_file
- # opentelemetry-cpp::otlp_file_metric_exporter - Imported target of COMPONENT exporters_otlp_file
- # opentelemetry-cpp::proto_grpc - Imported target of COMPONENT exporters_otlp_grpc
- # opentelemetry-cpp::otlp_grpc_client - Imported target of COMPONENT exporters_otlp_grpc
- # opentelemetry-cpp::otlp_grpc_exporter - Imported target of COMPONENT exporters_otlp_grpc
- # opentelemetry-cpp::otlp_grpc_log_record_exporter - Imported target of COMPONENT exporters_otlp_grpc
- # opentelemetry-cpp::otlp_grpc_metrics_exporter - Imported target of COMPONENT exporters_otlp_grpc
- # opentelemetry-cpp::otlp_http_client - Imported target of COMPONENT exporters_otlp_http
- # opentelemetry-cpp::otlp_http_exporter - Imported target of COMPONENT exporters_otlp_http
- # opentelemetry-cpp::otlp_http_log_record_exporter - Imported target of COMPONENT exporters_otlp_http
- # opentelemetry-cpp::otlp_http_metric_exporter - Imported target of COMPONENT exporters_otlp_http
- # opentelemetry-cpp::prometheus_exporter - Imported target of COMPONENT exporters_prometheus
- # opentelemetry-cpp::elasticsearch_log_record_exporter - Imported target of COMPONENT exporters_elasticsearch
- # opentelemetry-cpp::etw_exporter - Imported target of COMPONENT exporters_etw
- # opentelemetry-cpp::zipkin_trace_exporter - Imported target of COMPONENT exporters_zipkin
- # opentelemetry-cpp::opentracing_shim - Imported target of COMPONENT shims_opentracing
- #
- # Additional Files Used in Component to Component and Third-Party Dependency Resolution
- # --------------------------------------------------------
- #
- # - **thirdparty-dependency-definitions.cmake**
- # This file lists the third-party dependencies supported by opentelemetry-cpp and components that may require them.
- # Dependencies are found in the order defined in this file when find_package(opentelemetry-cpp …) is invoked.
- #
- # **Found using CMake CONFIG search mode:**
- #
- # - **absl**
- # - **nlohmann_json**
- # - **Protobuf**
- # - **gRPC**
- # - **prometheus-cpp**
- # - **OpenTracing**
- #
- # **Found using the CMake MODULE search mode:**
- #
- # - **Threads**
- # - **ZLIB**
- # - **CURL**
- #
- # - **component-definitions.cmake**
- # This file defines the available opentelemetry-cpp components, the targets associated with each
- # component, and the inter-component dependencies.
- #
- # =============================================================================
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- # =============================================================================
- set(OPENTELEMETRY_ABI_VERSION_NO
- "1"
- CACHE STRING "opentelemetry-cpp ABI version" FORCE)
- set(OPENTELEMETRY_VERSION
- "1.21.0"
- CACHE STRING "opentelemetry-cpp version" FORCE)
- ####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
- ####### Any changes to this file will be overwritten by the next CMake run ####
- ####### The input file was opentelemetry-cpp-config.cmake.in ########
- get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
- macro(set_and_check _var _file)
- set(${_var} "${_file}")
- if(NOT EXISTS "${_file}")
- message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
- endif()
- endmacro()
- macro(check_required_components _NAME)
- foreach(comp ${${_NAME}_FIND_COMPONENTS})
- if(NOT ${_NAME}_${comp}_FOUND)
- if(${_NAME}_FIND_REQUIRED_${comp})
- set(${_NAME}_FOUND FALSE)
- endif()
- endif()
- endforeach()
- endmacro()
- ####################################################################################
- # Include the opentelemetry-cpp file that includes component defintions, thirdparty definitons and functions to support finding this package and dependencies.
- include("${CMAKE_CURRENT_LIST_DIR}/find-package-support-functions.cmake")
- set(_INSTALLED_COMPONENTS "")
- get_installed_components(_INSTALLED_COMPONENTS)
- set(OPENTELEMETRY_CPP_COMPONENTS_INSTALLED ${_INSTALLED_COMPONENTS} CACHE STRING "opentelemetry-cpp components installed" FORCE)
- set(_REQUESTED_COMPONENTS "")
- get_requested_components(_INSTALLED_COMPONENTS _REQUESTED_COMPONENTS)
- find_required_dependencies(_REQUESTED_COMPONENTS)
- set_and_check(OPENTELEMETRY_CPP_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include")
- set_and_check(OPENTELEMETRY_CPP_LIBRARY_DIRS "${PACKAGE_PREFIX_DIR}/lib")
- # include the target files selected and set the component found flag
- foreach(_COMPONENT IN LISTS _REQUESTED_COMPONENTS)
- include("${CMAKE_CURRENT_LIST_DIR}/opentelemetry-cpp-${_COMPONENT}-target.cmake")
- set(${CMAKE_FIND_PACKAGE_NAME}_${_COMPONENT}_FOUND TRUE
- CACHE BOOL "whether ${CMAKE_FIND_PACKAGE_NAME} component ${_COMPONENT} is found" FORCE)
- endforeach()
- # get installed and requested targets
- set(_OPENTELEMETRY_CPP_TARGETS "")
- get_targets(_REQUESTED_COMPONENTS _OPENTELEMETRY_CPP_TARGETS)
- check_targets_imported(_OPENTELEMETRY_CPP_TARGETS)
- # Set OPENTELEMETRY_CPP_* variables
- set(OPENTELEMETRY_CPP_LIBRARIES)
- set(DLL_TARGET "opentelemetry-cpp::opentelemetry_cpp")
- foreach(_TARGET IN LISTS _OPENTELEMETRY_CPP_TARGETS)
- if(TARGET "${_TARGET}" AND NOT "${_TARGET}" STREQUAL "${DLL_TARGET}")
- list(APPEND OPENTELEMETRY_CPP_LIBRARIES "${_TARGET}")
- endif()
- endforeach()
- # handle the QUIETLY and REQUIRED arguments and set opentelemetry-cpp_FOUND to
- # TRUE if all variables listed contain valid results, e.g. valid file paths.
- include("FindPackageHandleStandardArgs")
- find_package_handle_standard_args(
- ${CMAKE_FIND_PACKAGE_NAME}
- FOUND_VAR ${CMAKE_FIND_PACKAGE_NAME}_FOUND
- REQUIRED_VARS OPENTELEMETRY_CPP_INCLUDE_DIRS OPENTELEMETRY_CPP_LIBRARIES)
- if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
- set(OPENTELEMETRY_CPP_FOUND
- ${${CMAKE_FIND_PACKAGE_NAME}_FOUND}
- CACHE BOOL "whether opentelemetry-cpp is found" FORCE)
- else()
- unset(OPENTELEMETRY_CPP_FOUND)
- unset(OPENTELEMETRY_CPP_FOUND CACHE)
- endif()
- check_required_components(${CMAKE_FIND_PACKAGE_NAME})
|