@@ -47,6 +47,8 @@ include(CTest)
4747# Export the version information for Bazel.
4848include (CreateBazelConfig)
4949
50+ find_package (opentelemetry-cpp CONFIG)
51+
5052# the client library
5153add_library (
5254 google_cloud_cpp_bigtable # cmake-format: sort
@@ -199,6 +201,8 @@ add_library(
199201 internal /mutate_rows_limiter.h
200202 internal /operation_context.cc
201203 internal /operation_context.h
204+ internal /operation_context_factory.cc
205+ internal /operation_context_factory.h
202206 internal /prefix_range_end.cc
203207 internal /prefix_range_end.h
204208 internal /rate_limiter.cc
@@ -261,6 +265,14 @@ target_link_libraries(
261265 gRPC::grpc++
262266 gRPC::grpc
263267 protobuf::libprotobuf)
268+ if (opentelemetry-cpp_FOUND)
269+ target_compile_definitions (
270+ google_cloud_cpp_bigtable
271+ PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS)
272+ target_link_libraries (google_cloud_cpp_bigtable
273+ PUBLIC google-cloud-cpp::opentelemetry)
274+ set (EXTRA_MODULES "google_cloud_cpp_opentelemetry" "opentelemetry_metrics" )
275+ endif ()
264276google_cloud_cpp_add_common_options(google_cloud_cpp_bigtable)
265277target_include_directories (
266278 google_cloud_cpp_bigtable
@@ -305,7 +317,8 @@ google_cloud_cpp_add_pkgconfig(
305317 "Provides C++ APIs to access Google Cloud Bigtable."
306318 "google_cloud_cpp_grpc_utils"
307319 "google_cloud_cpp_common"
308- "google_cloud_cpp_bigtable_protos" )
320+ "google_cloud_cpp_bigtable_protos"
321+ ${EXTRA_MODULES} )
309322
310323# Create and install the CMake configuration files.
311324include (CMakePackageConfigHelpers)
@@ -501,6 +514,10 @@ if (BUILD_TESTING)
501514 gRPC::grpc++
502515 gRPC::grpc
503516 protobuf::libprotobuf)
517+ if (opentelemetry-cpp_FOUND)
518+ target_compile_definitions (
519+ ${target} PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS)
520+ endif ()
504521 google_cloud_cpp_add_common_options(${target} )
505522 add_test (NAME ${target} COMMAND ${target} )
506523 endforeach ()
0 commit comments