From 97d39421ee9ac4b64077e0c12113579d66c53151 Mon Sep 17 00:00:00 2001 From: Alexey Shakula Date: Fri, 2 Dec 2022 17:03:36 -0500 Subject: [PATCH 1/3] mac shlib dependencies fixes [all symbols referenced by shlib must resolve for the shlib to successfully link] --- exporters/ostream/CMakeLists.txt | 4 ++-- exporters/otlp/CMakeLists.txt | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/exporters/ostream/CMakeLists.txt b/exporters/ostream/CMakeLists.txt index 1d1c20a6c6..c491aa8a1f 100644 --- a/exporters/ostream/CMakeLists.txt +++ b/exporters/ostream/CMakeLists.txt @@ -41,7 +41,7 @@ target_include_directories( opentelemetry_exporter_ostream_metrics PUBLIC "$") target_link_libraries(opentelemetry_exporter_ostream_metrics - PUBLIC opentelemetry_metrics) + PUBLIC opentelemetry_metrics opentelemetry_resources) install( TARGETS opentelemetry_exporter_ostream_metrics EXPORT "${PROJECT_NAME}-target" @@ -56,7 +56,7 @@ if(BUILD_TESTING) add_executable(ostream_metric_test test/ostream_metric_test.cc) target_link_libraries( ostream_metric_test ${GTEST_BOTH_LIBRARIES} - opentelemetry_exporter_ostream_metrics opentelemetry_resources) + opentelemetry_exporter_ostream_metrics) gtest_add_tests( TARGET ostream_metric_test TEST_PREFIX exporter. diff --git a/exporters/otlp/CMakeLists.txt b/exporters/otlp/CMakeLists.txt index 49db6058ae..0c45b4662a 100644 --- a/exporters/otlp/CMakeLists.txt +++ b/exporters/otlp/CMakeLists.txt @@ -17,7 +17,7 @@ target_include_directories( set(OPENTELEMETRY_OTLP_TARGETS opentelemetry_otlp_recordable) target_link_libraries( opentelemetry_otlp_recordable - PUBLIC opentelemetry_trace opentelemetry_resources opentelemetry_proto) + PUBLIC opentelemetry_common opentelemetry_trace opentelemetry_resources opentelemetry_proto) if(WITH_LOGS_PREVIEW) target_link_libraries(opentelemetry_otlp_recordable PUBLIC opentelemetry_logs) @@ -33,7 +33,7 @@ if(WITH_OTLP_GRPC) PROPERTIES EXPORT_NAME otlp_grpc_client) target_link_libraries( opentelemetry_exporter_otlp_grpc_client - PUBLIC opentelemetry_sdk opentelemetry_ext opentelemetry_proto) + PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_ext opentelemetry_proto) target_link_libraries(opentelemetry_exporter_otlp_grpc_client PRIVATE gRPC::grpc++) @@ -61,7 +61,8 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client) + opentelemetry_exporter_otlp_grpc_client + PRIVATE gRPC::grpc++) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc) @@ -90,7 +91,8 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc_metrics PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client) + opentelemetry_exporter_otlp_grpc_client + PRIVATE gRPC::grpc++) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_metrics) @@ -102,7 +104,7 @@ if(WITH_OTLP_HTTP) PROPERTIES EXPORT_NAME otlp_http_client) target_link_libraries( opentelemetry_exporter_otlp_http_client - PUBLIC opentelemetry_sdk opentelemetry_proto opentelemetry_http_client_curl + PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_proto opentelemetry_http_client_curl nlohmann_json::nlohmann_json) if(nlohmann_json_clone) add_dependencies(opentelemetry_exporter_otlp_http_client From eb5d69501f71409987aaa36cf1e1abd4636586ef Mon Sep 17 00:00:00 2001 From: Alexey Shakula Date: Fri, 30 Dec 2022 20:21:39 -0500 Subject: [PATCH 2/3] CR tip: have only otlp_grpc_client lib link against gRPC & make that link public --- exporters/otlp/CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/exporters/otlp/CMakeLists.txt b/exporters/otlp/CMakeLists.txt index 0c45b4662a..7c5b0460d6 100644 --- a/exporters/otlp/CMakeLists.txt +++ b/exporters/otlp/CMakeLists.txt @@ -36,7 +36,7 @@ if(WITH_OTLP_GRPC) PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_ext opentelemetry_proto) target_link_libraries(opentelemetry_exporter_otlp_grpc_client - PRIVATE gRPC::grpc++) + PUBLIC gRPC::grpc++) get_target_property(GRPC_INCLUDE_DIRECTORY gRPC::grpc++ INTERFACE_INCLUDE_DIRECTORIES) if(GRPC_INCLUDE_DIRECTORY) @@ -61,8 +61,7 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client - PRIVATE gRPC::grpc++) + opentelemetry_exporter_otlp_grpc_client) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc) @@ -91,8 +90,7 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc_metrics PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client - PRIVATE gRPC::grpc++) + opentelemetry_exporter_otlp_grpc_client) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_metrics) From 9665120ba9053a757b6b1237632ca371401d400a Mon Sep 17 00:00:00 2001 From: Alexey Shakula Date: Sat, 4 Feb 2023 09:42:55 -0500 Subject: [PATCH 3/3] Link gRPC::grpc++ into dependent libs privately --- exporters/ostream/CMakeLists.txt | 5 ++--- exporters/otlp/CMakeLists.txt | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/exporters/ostream/CMakeLists.txt b/exporters/ostream/CMakeLists.txt index c491aa8a1f..7c2fcd63ee 100644 --- a/exporters/ostream/CMakeLists.txt +++ b/exporters/ostream/CMakeLists.txt @@ -54,9 +54,8 @@ install( PATTERN "metric_exporter.h") if(BUILD_TESTING) add_executable(ostream_metric_test test/ostream_metric_test.cc) - target_link_libraries( - ostream_metric_test ${GTEST_BOTH_LIBRARIES} - opentelemetry_exporter_ostream_metrics) + target_link_libraries(ostream_metric_test ${GTEST_BOTH_LIBRARIES} + opentelemetry_exporter_ostream_metrics) gtest_add_tests( TARGET ostream_metric_test TEST_PREFIX exporter. diff --git a/exporters/otlp/CMakeLists.txt b/exporters/otlp/CMakeLists.txt index 7c5b0460d6..701880a2ad 100644 --- a/exporters/otlp/CMakeLists.txt +++ b/exporters/otlp/CMakeLists.txt @@ -17,7 +17,8 @@ target_include_directories( set(OPENTELEMETRY_OTLP_TARGETS opentelemetry_otlp_recordable) target_link_libraries( opentelemetry_otlp_recordable - PUBLIC opentelemetry_common opentelemetry_trace opentelemetry_resources opentelemetry_proto) + PUBLIC opentelemetry_common opentelemetry_trace opentelemetry_resources + opentelemetry_proto) if(WITH_LOGS_PREVIEW) target_link_libraries(opentelemetry_otlp_recordable PUBLIC opentelemetry_logs) @@ -33,10 +34,11 @@ if(WITH_OTLP_GRPC) PROPERTIES EXPORT_NAME otlp_grpc_client) target_link_libraries( opentelemetry_exporter_otlp_grpc_client - PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_ext opentelemetry_proto) + PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_ext + opentelemetry_proto) target_link_libraries(opentelemetry_exporter_otlp_grpc_client - PUBLIC gRPC::grpc++) + PRIVATE gRPC::grpc++) get_target_property(GRPC_INCLUDE_DIRECTORY gRPC::grpc++ INTERFACE_INCLUDE_DIRECTORIES) if(GRPC_INCLUDE_DIRECTORY) @@ -60,8 +62,8 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc - PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client) + PUBLIC opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client + PRIVATE gRPC::grpc++) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc) @@ -75,8 +77,8 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc_log - PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client) + PUBLIC opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client + PRIVATE gRPC::grpc++) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_log) @@ -89,8 +91,8 @@ if(WITH_OTLP_GRPC) target_link_libraries( opentelemetry_exporter_otlp_grpc_metrics - PUBLIC opentelemetry_otlp_recordable - opentelemetry_exporter_otlp_grpc_client) + PUBLIC opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client + PRIVATE gRPC::grpc++) list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_metrics) @@ -102,8 +104,8 @@ if(WITH_OTLP_HTTP) PROPERTIES EXPORT_NAME otlp_http_client) target_link_libraries( opentelemetry_exporter_otlp_http_client - PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_proto opentelemetry_http_client_curl - nlohmann_json::nlohmann_json) + PUBLIC opentelemetry_common opentelemetry_sdk opentelemetry_proto + opentelemetry_http_client_curl nlohmann_json::nlohmann_json) if(nlohmann_json_clone) add_dependencies(opentelemetry_exporter_otlp_http_client nlohmann_json::nlohmann_json)