]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/exporters/otlp/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / exporters / otlp / CMakeLists.txt
1 add_library(
2 opentelemetry_otlp_recordable
3 src/otlp_log_recordable.cc src/otlp_recordable.cc
4 src/otlp_recordable_utils.cc)
5 set_target_properties(opentelemetry_otlp_recordable PROPERTIES EXPORT_NAME
6 otlp_recordable)
7
8 target_include_directories(
9 opentelemetry_otlp_recordable
10 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
11 "$<INSTALL_INTERFACE:include>")
12
13 set(OPENTELEMETRY_OTLP_TARGETS opentelemetry_otlp_recordable)
14 target_link_libraries(
15 opentelemetry_otlp_recordable
16 PUBLIC opentelemetry_trace opentelemetry_resources opentelemetry_proto)
17
18 if(WITH_OTLP_GRPC)
19 find_package(gRPC REQUIRED)
20 add_library(opentelemetry_exporter_otlp_grpc src/otlp_grpc_exporter.cc)
21
22 set_target_properties(opentelemetry_exporter_otlp_grpc
23 PROPERTIES EXPORT_NAME otlp_grpc_exporter)
24
25 target_link_libraries(opentelemetry_exporter_otlp_grpc
26 PUBLIC opentelemetry_otlp_recordable gRPC::grpc++)
27
28 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc)
29
30 add_library(opentelemetry_exporter_otlp_grpc_log
31 src/otlp_grpc_log_exporter.cc)
32
33 set_target_properties(opentelemetry_exporter_otlp_grpc_log
34 PROPERTIES EXPORT_NAME otlp_grpc_log_exporter)
35
36 target_link_libraries(opentelemetry_exporter_otlp_grpc_log
37 PUBLIC opentelemetry_otlp_recordable gRPC::grpc++)
38
39 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_log)
40 endif()
41
42 if(WITH_OTLP_HTTP)
43 find_package(CURL REQUIRED)
44 add_library(opentelemetry_exporter_otlp_http_client src/otlp_http_client.cc)
45 set_target_properties(opentelemetry_exporter_otlp_http_client
46 PROPERTIES EXPORT_NAME otlp_http_client)
47 target_link_libraries(
48 opentelemetry_exporter_otlp_http_client
49 PUBLIC opentelemetry_sdk opentelemetry_proto opentelemetry_http_client_curl
50 nlohmann_json::nlohmann_json)
51 if(nlohmann_json_clone)
52 add_dependencies(opentelemetry_exporter_otlp_http_client
53 nlohmann_json::nlohmann_json)
54 endif()
55 target_include_directories(
56 opentelemetry_exporter_otlp_http_client
57 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
58 "$<INSTALL_INTERFACE:include>")
59
60 list(APPEND OPENTELEMETRY_OTLP_TARGETS
61 opentelemetry_exporter_otlp_http_client)
62
63 add_library(opentelemetry_exporter_otlp_http src/otlp_http_exporter.cc)
64
65 set_target_properties(opentelemetry_exporter_otlp_http
66 PROPERTIES EXPORT_NAME otlp_http_exporter)
67
68 target_link_libraries(
69 opentelemetry_exporter_otlp_http
70 PUBLIC opentelemetry_otlp_recordable
71 opentelemetry_exporter_otlp_http_client)
72
73 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_http)
74
75 if(WITH_LOGS_PREVIEW)
76 add_library(opentelemetry_exporter_otlp_http_log
77 src/otlp_http_log_exporter.cc)
78
79 set_target_properties(opentelemetry_exporter_otlp_http_log
80 PROPERTIES EXPORT_NAME otlp_http_log_exporter)
81
82 target_link_libraries(
83 opentelemetry_exporter_otlp_http_log
84 PUBLIC opentelemetry_otlp_recordable
85 opentelemetry_exporter_otlp_http_client)
86
87 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_http_log)
88
89 endif()
90 endif()
91
92 install(
93 TARGETS ${OPENTELEMETRY_OTLP_TARGETS}
94 EXPORT "${PROJECT_NAME}-target"
95 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
96 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
97 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
98
99 install(
100 DIRECTORY include/opentelemetry/exporters/otlp
101 DESTINATION include/opentelemetry/exporters
102 FILES_MATCHING
103 PATTERN "*.h")
104
105 if(BUILD_TESTING)
106 add_executable(otlp_recordable_test test/otlp_recordable_test.cc)
107 target_link_libraries(otlp_recordable_test ${GTEST_BOTH_LIBRARIES}
108 ${CMAKE_THREAD_LIBS_INIT} opentelemetry_otlp_recordable)
109 gtest_add_tests(
110 TARGET otlp_recordable_test
111 TEST_PREFIX exporter.otlp.
112 TEST_LIST otlp_recordable_test)
113
114 if(WITH_LOGS_PREVIEW)
115 add_executable(otlp_log_recordable_test test/otlp_log_recordable_test.cc)
116 target_link_libraries(
117 otlp_log_recordable_test ${GTEST_BOTH_LIBRARIES}
118 ${CMAKE_THREAD_LIBS_INIT} opentelemetry_otlp_recordable)
119 gtest_add_tests(
120 TARGET otlp_log_recordable_test
121 TEST_PREFIX exporter.otlp.
122 TEST_LIST otlp_log_recordable_test)
123 endif()
124
125 if(MSVC)
126 # Explicitly specify that we consume GTest from shared library. The rest of
127 # code logic below determines whether we link Release or Debug flavor of the
128 # library. These flavors have different prefix on Windows, gmock and gmockd
129 # respectively.
130 add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
131 if(GMOCK_LIB)
132 # unset GMOCK_LIB to force find_library to redo the lookup, as the cached
133 # entry could cause linking to incorrect flavor of gmock and leading to
134 # runtime error.
135 unset(GMOCK_LIB CACHE)
136 endif()
137 endif()
138 if(MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
139 find_library(GMOCK_LIB gmockd PATH_SUFFIXES lib)
140 else()
141 find_library(GMOCK_LIB gmock PATH_SUFFIXES lib)
142 endif()
143
144 if(WITH_OTLP_GRPC)
145 add_executable(otlp_grpc_exporter_test test/otlp_grpc_exporter_test.cc)
146 target_link_libraries(
147 otlp_grpc_exporter_test ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
148 ${GMOCK_LIB} opentelemetry_exporter_otlp_grpc)
149 gtest_add_tests(
150 TARGET otlp_grpc_exporter_test
151 TEST_PREFIX exporter.otlp.
152 TEST_LIST otlp_grpc_exporter_test)
153
154 if(WITH_LOGS_PREVIEW)
155 add_executable(otlp_grpc_log_exporter_test
156 test/otlp_grpc_log_exporter_test.cc)
157 target_link_libraries(
158 otlp_grpc_log_exporter_test ${GTEST_BOTH_LIBRARIES}
159 ${CMAKE_THREAD_LIBS_INIT} ${GMOCK_LIB}
160 opentelemetry_exporter_otlp_grpc_log opentelemetry_logs)
161 gtest_add_tests(
162 TARGET otlp_grpc_log_exporter_test
163 TEST_PREFIX exporter.otlp.
164 TEST_LIST otlp_grpc_log_exporter_test)
165 endif()
166 endif()
167
168 if(WITH_OTLP_HTTP)
169 add_executable(otlp_http_exporter_test test/otlp_http_exporter_test.cc)
170 target_link_libraries(
171 otlp_http_exporter_test ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
172 ${GMOCK_LIB} opentelemetry_exporter_otlp_http http_client_nosend)
173 gtest_add_tests(
174 TARGET otlp_http_exporter_test
175 TEST_PREFIX exporter.otlp.
176 TEST_LIST otlp_http_exporter_test)
177
178 if(WITH_LOGS_PREVIEW)
179 add_executable(otlp_http_log_exporter_test
180 test/otlp_http_log_exporter_test.cc)
181 target_link_libraries(
182 otlp_http_log_exporter_test
183 ${GTEST_BOTH_LIBRARIES}
184 ${CMAKE_THREAD_LIBS_INIT}
185 ${GMOCK_LIB}
186 opentelemetry_exporter_otlp_http_log
187 opentelemetry_logs
188 http_client_nosend)
189 gtest_add_tests(
190 TARGET otlp_http_log_exporter_test
191 TEST_PREFIX exporter.otlp.
192 TEST_LIST otlp_http_log_exporter_test)
193 endif()
194 endif()
195 endif() # BUILD_TESTING