Skip to content

Commit 9b38749

Browse files
authored
[CONFIGURATION] File configuration - cmake install (open-telemetry#3668)
1 parent 66f5e70 commit 9b38749

File tree

22 files changed

+534
-52
lines changed

22 files changed

+534
-52
lines changed

ci/do_ci.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@ switch ($action) {
425425
"-DCMAKE_INSTALL_PREFIX=$INSTALL_TEST_DIR" `
426426
"-C $SRC_DIR/test_common/cmake/all-options-abiv1-preview.cmake" `
427427
-DOPENTELEMETRY_INSTALL=ON `
428+
-DWITH_CONFIGURATION=OFF `
428429
-DWITH_OPENTRACING=OFF `
429430
-DWITH_OTLP_GRPC_SSL_MTLS_PREVIEW=OFF `
430431
-DWITH_OTLP_GRPC_CREDENTIAL_PREVIEW=OFF `

ci/do_ci.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,17 +457,24 @@ elif [[ "$1" == "cmake.install.test" ]]; then
457457
EXPECTED_COMPONENTS=(
458458
"api"
459459
"sdk"
460+
"configuration"
460461
"ext_common"
461462
"ext_http_curl"
462463
"exporters_in_memory"
463464
"exporters_ostream"
465+
"exporters_ostream_builder"
464466
"exporters_otlp_common"
465467
"exporters_otlp_file"
468+
"exporters_otlp_file_builder"
466469
"exporters_otlp_grpc"
470+
"exporters_otlp_grpc_builder"
467471
"exporters_otlp_http"
472+
"exporters_otlp_http_builder"
468473
"exporters_prometheus"
474+
"exporters_prometheus_builder"
469475
"exporters_elasticsearch"
470476
"exporters_zipkin"
477+
"exporters_zipkin_builder"
471478
)
472479
EXPECTED_COMPONENTS_STRING=$(IFS=\;; echo "${EXPECTED_COMPONENTS[*]}")
473480
mkdir -p "${BUILD_DIR}/install_test"

cmake/ryml.cmake

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ if(NOT ryml_FOUND)
1616
)
1717
set(ryml_PROVIDER "fetch_repository")
1818

19-
set(RYML_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
20-
set(RYML_ENABLE_INSTALL OFF CACHE BOOL "" FORCE)
19+
set(RYML_BUILD_TOOLS OFF CACHE BOOL "" FORCE)
20+
set(RYML_BUILD_API OFF CACHE BOOL "" FORCE)
21+
set(RYML_DBG OFF CACHE BOOL "" FORCE)
22+
set(RYML_INSTALL ${OPENTELEMETRY_INSTALL} CACHE BOOL "" FORCE)
2123

2224
FetchContent_MakeAvailable(ryml)
2325

examples/configuration/CMakeLists.txt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4-
if(DEFINED OPENTELEMETRY_BUILD_DLL)
5-
add_definitions(-DOPENTELEMETRY_BUILD_IMPORT_DLL)
6-
endif()
7-
84
add_executable(
95
example_yaml
106
main.cc
@@ -32,7 +28,7 @@ target_link_libraries(
3228
opentelemetry-cpp::ostream_log_record_exporter_builder)
3329

3430
if(WITH_OTLP_HTTP)
35-
add_definitions(-DOTEL_HAVE_OTLP_HTTP)
31+
target_compile_definitions(example_yaml PRIVATE OTEL_HAVE_OTLP_HTTP)
3632
target_link_libraries(
3733
example_yaml
3834
PRIVATE opentelemetry-cpp::otlp_http_exporter_builder
@@ -41,16 +37,16 @@ if(WITH_OTLP_HTTP)
4137
endif()
4238

4339
if(WITH_OTLP_GRPC)
44-
add_definitions(-DOTEL_HAVE_OTLP_GRPC)
40+
target_compile_definitions(example_yaml PRIVATE OTEL_HAVE_OTLP_GRPC)
4541
target_link_libraries(
4642
example_yaml
4743
PRIVATE opentelemetry-cpp::otlp_grpc_exporter_builder
4844
opentelemetry-cpp::otlp_grpc_log_record_exporter_builder
49-
opentelemetry-cpp::otlp_grpc_metrics_exporter_builder)
45+
opentelemetry-cpp::otlp_grpc_metric_exporter_builder)
5046
endif()
5147

5248
if(WITH_OTLP_FILE)
53-
add_definitions(-DOTEL_HAVE_OTLP_FILE)
49+
target_compile_definitions(example_yaml PRIVATE OTEL_HAVE_OTLP_FILE)
5450
target_link_libraries(
5551
example_yaml
5652
PRIVATE opentelemetry-cpp::otlp_file_exporter_builder
@@ -59,18 +55,20 @@ if(WITH_OTLP_FILE)
5955
endif()
6056

6157
if(WITH_ZIPKIN)
62-
add_definitions(-DOTEL_HAVE_ZIPKIN)
58+
target_compile_definitions(example_yaml PRIVATE OTEL_HAVE_ZIPKIN)
6359
target_link_libraries(
6460
example_yaml PRIVATE opentelemetry-cpp::zipkin_trace_exporter_builder)
6561
endif()
6662

6763
if(WITH_PROMETHEUS)
68-
add_definitions(-DOTEL_HAVE_PROMETHEUS)
64+
target_compile_definitions(example_yaml PRIVATE OTEL_HAVE_PROMETHEUS)
6965
target_link_libraries(example_yaml
7066
PRIVATE opentelemetry-cpp::prometheus_exporter_builder)
7167
endif()
7268

7369
if(DEFINED OPENTELEMETRY_BUILD_DLL)
70+
target_compile_definitions(example_yaml
71+
PRIVATE OPENTELEMETRY_BUILD_IMPORT_DLL)
7472
target_link_libraries(example_yaml
7573
PRIVATE opentelemetry-cpp::opentelemetry_cpp)
7674
else()
@@ -79,3 +77,7 @@ else()
7977
PRIVATE opentelemetry-cpp::configuration opentelemetry-cpp::common
8078
opentelemetry-cpp::trace opentelemetry-cpp::logs)
8179
endif()
80+
81+
if(BUILD_TESTING)
82+
add_test(NAME examples.example_yaml COMMAND "$<TARGET_FILE:example_yaml>")
83+
endif()

exporters/otlp/CMakeLists.txt

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,10 @@ if(WITH_OTLP_GRPC)
138138
PROPERTIES EXPORT_NAME otlp_grpc_exporter_builder)
139139
set_target_version(opentelemetry_exporter_otlp_grpc_builder)
140140

141-
target_link_libraries(opentelemetry_exporter_otlp_grpc_builder
142-
PUBLIC opentelemetry_exporter_otlp_grpc)
141+
target_link_libraries(
142+
opentelemetry_exporter_otlp_grpc_builder
143+
PUBLIC opentelemetry_exporter_otlp_grpc
144+
opentelemetry_exporter_otlp_builder_utils)
143145

144146
list(APPEND OPENTELEMETRY_OTLP_GRPC_BUILDER_TARGETS
145147
opentelemetry_exporter_otlp_grpc_builder)
@@ -179,8 +181,10 @@ if(WITH_OTLP_GRPC)
179181
PROPERTIES EXPORT_NAME otlp_grpc_log_record_exporter_builder)
180182
set_target_version(opentelemetry_exporter_otlp_grpc_log_builder)
181183

182-
target_link_libraries(opentelemetry_exporter_otlp_grpc_log_builder
183-
PUBLIC opentelemetry_exporter_otlp_grpc_log)
184+
target_link_libraries(
185+
opentelemetry_exporter_otlp_grpc_log_builder
186+
PUBLIC opentelemetry_exporter_otlp_grpc_log
187+
opentelemetry_exporter_otlp_builder_utils)
184188

185189
list(APPEND OPENTELEMETRY_OTLP_GRPC_BUILDER_TARGETS
186190
opentelemetry_exporter_otlp_grpc_log_builder)
@@ -208,23 +212,25 @@ if(WITH_OTLP_GRPC)
208212
opentelemetry_exporter_otlp_grpc_metrics)
209213

210214
#
211-
# opentelemetry_exporter_otlp_grpc_metrics_builder
215+
# opentelemetry_exporter_otlp_grpc_metric_builder
212216
#
213217

214218
add_library(
215-
opentelemetry_exporter_otlp_grpc_metrics_builder
219+
opentelemetry_exporter_otlp_grpc_metric_builder
216220
${OPENTELEMETRY_OTLP_TARGETS_LIB_TYPE} src/otlp_grpc_push_metric_builder.cc)
217221

218222
set_target_properties(
219-
opentelemetry_exporter_otlp_grpc_metrics_builder
220-
PROPERTIES EXPORT_NAME otlp_grpc_metrics_exporter_builder)
221-
set_target_version(opentelemetry_exporter_otlp_grpc_metrics_builder)
223+
opentelemetry_exporter_otlp_grpc_metric_builder
224+
PROPERTIES EXPORT_NAME otlp_grpc_metric_exporter_builder)
225+
set_target_version(opentelemetry_exporter_otlp_grpc_metric_builder)
222226

223-
target_link_libraries(opentelemetry_exporter_otlp_grpc_metrics_builder
224-
PUBLIC opentelemetry_exporter_otlp_grpc_metrics)
227+
target_link_libraries(
228+
opentelemetry_exporter_otlp_grpc_metric_builder
229+
PUBLIC opentelemetry_exporter_otlp_grpc_metrics
230+
opentelemetry_exporter_otlp_builder_utils)
225231

226232
list(APPEND OPENTELEMETRY_OTLP_GRPC_BUILDER_TARGETS
227-
opentelemetry_exporter_otlp_grpc_metrics_builder)
233+
opentelemetry_exporter_otlp_grpc_metric_builder)
228234

229235
endif()
230236

@@ -445,8 +451,10 @@ if(WITH_OTLP_FILE)
445451
PROPERTIES EXPORT_NAME otlp_file_exporter_builder)
446452
set_target_version(opentelemetry_exporter_otlp_file_builder)
447453

448-
target_link_libraries(opentelemetry_exporter_otlp_file_builder
449-
PUBLIC opentelemetry_exporter_otlp_file)
454+
target_link_libraries(
455+
opentelemetry_exporter_otlp_file_builder
456+
PUBLIC opentelemetry_exporter_otlp_file
457+
opentelemetry_exporter_otlp_builder_utils)
450458

451459
list(APPEND OPENTELEMETRY_OTLP_FILE_BUILDER_TARGETS
452460
opentelemetry_exporter_otlp_file_builder)
@@ -486,8 +494,10 @@ if(WITH_OTLP_FILE)
486494
PROPERTIES EXPORT_NAME otlp_file_log_record_exporter_builder)
487495
set_target_version(opentelemetry_exporter_otlp_file_log_builder)
488496

489-
target_link_libraries(opentelemetry_exporter_otlp_file_log_builder
490-
PUBLIC opentelemetry_exporter_otlp_file_log)
497+
target_link_libraries(
498+
opentelemetry_exporter_otlp_file_log_builder
499+
PUBLIC opentelemetry_exporter_otlp_file_log
500+
opentelemetry_exporter_otlp_builder_utils)
491501

492502
list(APPEND OPENTELEMETRY_OTLP_FILE_BUILDER_TARGETS
493503
opentelemetry_exporter_otlp_file_log_builder)
@@ -527,8 +537,10 @@ if(WITH_OTLP_FILE)
527537
PROPERTIES EXPORT_NAME otlp_file_metric_exporter_builder)
528538
set_target_version(opentelemetry_exporter_otlp_file_metric_builder)
529539

530-
target_link_libraries(opentelemetry_exporter_otlp_file_metric_builder
531-
PUBLIC opentelemetry_exporter_otlp_file_metric)
540+
target_link_libraries(
541+
opentelemetry_exporter_otlp_file_metric_builder
542+
PUBLIC opentelemetry_exporter_otlp_file_metric
543+
opentelemetry_exporter_otlp_builder_utils)
532544

533545
list(APPEND OPENTELEMETRY_OTLP_FILE_BUILDER_TARGETS
534546
opentelemetry_exporter_otlp_file_metric_builder)

exporters/otlp/src/otlp_builder_utils.cc

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,19 @@ OtlpHeaders OtlpBuilderUtils::ConvertHeadersConfigurationModel(
7979
}
8080
}
8181

82-
// Second, scan headers, which has high priority.
83-
for (const auto &kv : model->kv_map)
82+
if (model != nullptr)
8483
{
85-
const auto &search = headers.find(kv.first);
86-
if (search != headers.end())
84+
// Second, scan headers, which has high priority.
85+
for (const auto &kv : model->kv_map)
8786
{
88-
headers.erase(search);
89-
}
87+
const auto &search = headers.find(kv.first);
88+
if (search != headers.end())
89+
{
90+
headers.erase(search);
91+
}
9092

91-
headers.emplace(std::make_pair(kv.first, kv.second));
93+
headers.emplace(std::make_pair(kv.first, kv.second));
94+
}
9295
}
9396

9497
return headers;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
cmake_minimum_required(VERSION 3.16)
5+
project(opentelemetry-cpp-configuration-install-test LANGUAGES CXX)
6+
7+
find_package(opentelemetry-cpp REQUIRED COMPONENTS configuration
8+
exporters_ostream_builder)
9+
10+
if(NOT TARGET Threads::Threads)
11+
message(FATAL_ERROR "Threads::Threads target not found")
12+
endif()
13+
14+
find_package(GTest CONFIG REQUIRED)
15+
include(GoogleTest)
16+
17+
add_executable(configuration_test ${INSTALL_TEST_SRC_DIR}/test_configuration.cc)
18+
target_link_libraries(
19+
configuration_test
20+
PRIVATE opentelemetry-cpp::configuration
21+
opentelemetry-cpp::ostream_log_record_exporter_builder
22+
opentelemetry-cpp::ostream_metrics_exporter_builder
23+
opentelemetry-cpp::ostream_span_exporter_builder
24+
GTest::gtest
25+
GTest::gtest_main)
26+
27+
gtest_discover_tests(configuration_test)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
cmake_minimum_required(VERSION 3.16)
5+
project(opentelemetry-cpp-exporters-ostream-builder-install-test LANGUAGES CXX)
6+
7+
find_package(opentelemetry-cpp REQUIRED COMPONENTS exporters_ostream_builder)
8+
9+
find_package(GTest CONFIG REQUIRED)
10+
include(GoogleTest)
11+
12+
add_executable(exporters_ostream_builder_test
13+
${INSTALL_TEST_SRC_DIR}/test_exporters_ostream_builder.cc)
14+
target_link_libraries(
15+
exporters_ostream_builder_test
16+
PRIVATE opentelemetry-cpp::ostream_log_record_exporter_builder
17+
opentelemetry-cpp::ostream_metrics_exporter_builder
18+
opentelemetry-cpp::ostream_span_exporter_builder
19+
GTest::gtest
20+
GTest::gtest_main)
21+
22+
gtest_discover_tests(exporters_ostream_builder_test)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
cmake_minimum_required(VERSION 3.16)
5+
project(opentelemetry-cpp-exporters-otlp-file-builder-install-test
6+
LANGUAGES CXX)
7+
8+
find_package(opentelemetry-cpp REQUIRED COMPONENTS exporters_otlp_file_builder)
9+
10+
if(NOT TARGET protobuf::libprotobuf)
11+
message(FATAL_ERROR "protobuf::libprotobuf target not found")
12+
endif()
13+
14+
find_package(GTest CONFIG REQUIRED)
15+
include(GoogleTest)
16+
17+
add_executable(exporters_otlp_file_builder_test
18+
${INSTALL_TEST_SRC_DIR}/test_exporters_otlp_file_builder.cc)
19+
target_link_libraries(
20+
exporters_otlp_file_builder_test
21+
PRIVATE opentelemetry-cpp::otlp_file_exporter_builder
22+
opentelemetry-cpp::otlp_file_log_record_exporter_builder
23+
opentelemetry-cpp::otlp_file_metric_exporter_builder
24+
GTest::gtest
25+
GTest::gtest_main)
26+
27+
gtest_discover_tests(exporters_otlp_file_builder_test)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
cmake_minimum_required(VERSION 3.16)
5+
project(opentelemetry-cpp-exporters-otlp-grpc-builder-install-test
6+
LANGUAGES CXX)
7+
8+
find_package(opentelemetry-cpp REQUIRED COMPONENTS exporters_otlp_grpc_builder)
9+
10+
if(NOT TARGET protobuf::libprotobuf)
11+
message(FATAL_ERROR "protobuf::libprotobuf target not found")
12+
endif()
13+
14+
find_package(GTest CONFIG REQUIRED)
15+
include(GoogleTest)
16+
17+
add_executable(exporters_otlp_grpc_builder_test
18+
${INSTALL_TEST_SRC_DIR}/test_exporters_otlp_grpc_builder.cc)
19+
target_link_libraries(
20+
exporters_otlp_grpc_builder_test
21+
PRIVATE opentelemetry-cpp::otlp_grpc_exporter_builder
22+
opentelemetry-cpp::otlp_grpc_log_record_exporter_builder
23+
opentelemetry-cpp::otlp_grpc_metric_exporter_builder
24+
GTest::gtest
25+
GTest::gtest_main)
26+
27+
gtest_discover_tests(exporters_otlp_grpc_builder_test)

0 commit comments

Comments
 (0)