diff --git a/CHANGELOG.md b/CHANGELOG.md index 82eaf5a2ba..e245aba928 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,9 @@ Increment the: * [CMAKE] Add generated protobuf headers to the opentelemetry_proto target [#3400](https://github.com/open-telemetry/opentelemetry-cpp/pull/3400) +* [CMAKE] Remove include_directories usage and rely on target properties + [#3426](https://github.com/open-telemetry/opentelemetry-cpp/pull/3426) + ## [1.20 2025-04-01] * [BUILD] Update opentelemetry-proto version diff --git a/CMakeLists.txt b/CMakeLists.txt index ed69b37b8e..4e65f0493a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -859,8 +859,6 @@ if(DEFINED OPENTELEMETRY_BUILD_DLL) add_definitions(-DOPENTELEMETRY_BUILD_EXPORT_DLL) endif() -include_directories(api/include) - add_subdirectory(api) if(WITH_OPENTRACING) @@ -893,9 +891,6 @@ endif() if(NOT WITH_API_ONLY) set(BUILD_TESTING ${BUILD_TESTING}) - include_directories(sdk/include) - include_directories(sdk) - include_directories(ext/include) add_subdirectory(sdk) add_subdirectory(ext) diff --git a/examples/common/foo_library/foo_library.cc b/examples/common/foo_library/foo_library.cc index d17e516f6c..8c90bfec5c 100644 --- a/examples/common/foo_library/foo_library.cc +++ b/examples/common/foo_library/foo_library.cc @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/sdk/version/version.h" #include "opentelemetry/trace/provider.h" #include "opentelemetry/trace/scope.h" #include "opentelemetry/trace/tracer.h" @@ -16,7 +15,7 @@ namespace nostd::shared_ptr get_tracer() { auto provider = trace::Provider::GetTracerProvider(); - return provider->GetTracer("foo_library", OPENTELEMETRY_SDK_VERSION); + return provider->GetTracer("foo_library"); } void f1() diff --git a/examples/common/logs_foo_library/foo_library.cc b/examples/common/logs_foo_library/foo_library.cc index 14b9d8f5fe..caf1cf73d6 100644 --- a/examples/common/logs_foo_library/foo_library.cc +++ b/examples/common/logs_foo_library/foo_library.cc @@ -5,7 +5,6 @@ #include "opentelemetry/logs/logger_provider.h" #include "opentelemetry/logs/provider.h" #include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/sdk/version/version.h" #include "opentelemetry/trace/provider.h" #include "opentelemetry/trace/scope.h" #include "opentelemetry/trace/span.h" @@ -21,7 +20,7 @@ namespace opentelemetry::nostd::shared_ptr get_tracer() { auto provider = trace::Provider::GetTracerProvider(); - return provider->GetTracer("foo_library", OPENTELEMETRY_SDK_VERSION); + return provider->GetTracer("foo_library"); } opentelemetry::nostd::shared_ptr get_logger() diff --git a/exporters/prometheus/CMakeLists.txt b/exporters/prometheus/CMakeLists.txt index dfb4885f97..5dd75be48a 100644 --- a/exporters/prometheus/CMakeLists.txt +++ b/exporters/prometheus/CMakeLists.txt @@ -1,7 +1,6 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -include_directories(include) if(NOT TARGET prometheus-cpp::core) find_package(prometheus-cpp CONFIG REQUIRED) endif() diff --git a/exporters/zipkin/CMakeLists.txt b/exporters/zipkin/CMakeLists.txt index 3b6cb203e2..548a9fd44d 100644 --- a/exporters/zipkin/CMakeLists.txt +++ b/exporters/zipkin/CMakeLists.txt @@ -1,8 +1,6 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -include_directories(include) -add_definitions(-DWITH_CURL) add_library( opentelemetry_exporter_zipkin_trace src/zipkin_exporter.cc src/zipkin_exporter_factory.cc src/recordable.cc) diff --git a/ext/test/http/CMakeLists.txt b/ext/test/http/CMakeLists.txt index 51e0996eda..0312108f97 100644 --- a/ext/test/http/CMakeLists.txt +++ b/ext/test/http/CMakeLists.txt @@ -22,7 +22,7 @@ if(WITH_HTTP_CLIENT_CURL) target_link_libraries(${FILENAME} opentelemetry_http_client_curl opentelemetry_common ${CURL_IMPORTED_TARGET_NAME}) else() - include_directories(${CURL_INCLUDE_DIRS}) + target_include_directories(${FILENAME} PRIVATE ${CURL_INCLUDE_DIRS}) target_link_libraries(${FILENAME} ${CURL_LIBRARIES} opentelemetry_http_client_curl opentelemetry_common) endif() @@ -35,7 +35,7 @@ endif() set(URL_PARSER_FILENAME url_parser_test) add_executable(${URL_PARSER_FILENAME} ${URL_PARSER_FILENAME}.cc) -target_link_libraries(${URL_PARSER_FILENAME} opentelemetry_api ${GMOCK_LIB} +target_link_libraries(${URL_PARSER_FILENAME} opentelemetry_ext ${GMOCK_LIB} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) gtest_add_tests( TARGET ${URL_PARSER_FILENAME} diff --git a/ext/test/w3c_tracecontext_http_test_server/CMakeLists.txt b/ext/test/w3c_tracecontext_http_test_server/CMakeLists.txt index 85e3c3eea0..f4cfb7ee09 100644 --- a/ext/test/w3c_tracecontext_http_test_server/CMakeLists.txt +++ b/ext/test/w3c_tracecontext_http_test_server/CMakeLists.txt @@ -1,8 +1,6 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -include_directories(${CMAKE_SOURCE_DIR}/exporters/ostream/include) - add_executable(w3c_tracecontext_http_test_server main.cc) target_link_libraries( w3c_tracecontext_http_test_server diff --git a/functional/otlp/CMakeLists.txt b/functional/otlp/CMakeLists.txt index dd2c0c6130..d675b43415 100644 --- a/functional/otlp/CMakeLists.txt +++ b/functional/otlp/CMakeLists.txt @@ -1,8 +1,6 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -include_directories(${CMAKE_SOURCE_DIR}/exporters/otlp/include) - if(WITH_OTLP_GRPC) add_executable(func_otlp_grpc func_grpc_main.cc) target_link_libraries(func_otlp_grpc ${CMAKE_THREAD_LIBS_INIT} diff --git a/sdk/CMakeLists.txt b/sdk/CMakeLists.txt index 7f65318439..8e508cfca5 100644 --- a/sdk/CMakeLists.txt +++ b/sdk/CMakeLists.txt @@ -9,6 +9,9 @@ target_include_directories( set_target_properties(opentelemetry_sdk PROPERTIES EXPORT_NAME sdk) +target_link_libraries(opentelemetry_sdk INTERFACE opentelemetry_api) + +set(OTEL_SDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory(src) otel_add_component( diff --git a/sdk/src/common/CMakeLists.txt b/sdk/src/common/CMakeLists.txt index 8add0c634c..4a3b59aefa 100644 --- a/sdk/src/common/CMakeLists.txt +++ b/sdk/src/common/CMakeLists.txt @@ -14,6 +14,9 @@ add_library(opentelemetry_common ${COMMON_SRCS}) set_target_properties(opentelemetry_common PROPERTIES EXPORT_NAME common) set_target_version(opentelemetry_common) +target_include_directories(opentelemetry_common + PUBLIC "$") + target_link_libraries( opentelemetry_common PUBLIC opentelemetry_api opentelemetry_sdk Threads::Threads) diff --git a/sdk/src/resource/CMakeLists.txt b/sdk/src/resource/CMakeLists.txt index 4264d2eabf..48b647ec41 100644 --- a/sdk/src/resource/CMakeLists.txt +++ b/sdk/src/resource/CMakeLists.txt @@ -6,7 +6,7 @@ add_library(opentelemetry_resources resource.cc resource_detector.cc) set_target_properties(opentelemetry_resources PROPERTIES EXPORT_NAME resources) set_target_version(opentelemetry_resources) -target_link_libraries(opentelemetry_resources opentelemetry_common) +target_link_libraries(opentelemetry_resources PUBLIC opentelemetry_common) target_include_directories( opentelemetry_resources diff --git a/sdk/test/common/CMakeLists.txt b/sdk/test/common/CMakeLists.txt index fab78de90e..3228a55f6e 100644 --- a/sdk/test/common/CMakeLists.txt +++ b/sdk/test/common/CMakeLists.txt @@ -47,7 +47,7 @@ if(WITH_BENCHMARK) add_executable(circular_buffer_benchmark circular_buffer_benchmark.cc) target_link_libraries(circular_buffer_benchmark benchmark::benchmark - ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api) + ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common) add_executable(attributemap_hash_benchmark attributemap_hash_benchmark.cc) target_link_libraries(attributemap_hash_benchmark benchmark::benchmark diff --git a/sdk/test/instrumentationscope/CMakeLists.txt b/sdk/test/instrumentationscope/CMakeLists.txt index 8fc1c991a8..659728300b 100644 --- a/sdk/test/instrumentationscope/CMakeLists.txt +++ b/sdk/test/instrumentationscope/CMakeLists.txt @@ -6,7 +6,7 @@ include(GoogleTest) foreach(testname instrumentationscope_test) add_executable(${testname} "${testname}.cc") target_link_libraries(${testname} ${GTEST_BOTH_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api) + ${CMAKE_THREAD_LIBS_INIT} opentelemetry_sdk) gtest_add_tests( TARGET ${testname} TEST_PREFIX instrumentationscope.