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
8 target_include_directories(
9 opentelemetry_otlp_recordable
10 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
11 "$<INSTALL_INTERFACE:include>")
13 set(OPENTELEMETRY_OTLP_TARGETS opentelemetry_otlp_recordable)
14 target_link_libraries(
15 opentelemetry_otlp_recordable
16 PUBLIC opentelemetry_trace opentelemetry_resources opentelemetry_proto)
19 find_package(gRPC REQUIRED)
20 add_library(opentelemetry_exporter_otlp_grpc src/otlp_grpc_exporter.cc)
22 set_target_properties(opentelemetry_exporter_otlp_grpc
23 PROPERTIES EXPORT_NAME otlp_grpc_exporter)
25 target_link_libraries(opentelemetry_exporter_otlp_grpc
26 PUBLIC opentelemetry_otlp_recordable gRPC::grpc++)
28 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc)
30 add_library(opentelemetry_exporter_otlp_grpc_log
31 src/otlp_grpc_log_exporter.cc)
33 set_target_properties(opentelemetry_exporter_otlp_grpc_log
34 PROPERTIES EXPORT_NAME otlp_grpc_log_exporter)
36 target_link_libraries(opentelemetry_exporter_otlp_grpc_log
37 PUBLIC opentelemetry_otlp_recordable gRPC::grpc++)
39 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_grpc_log)
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)
55 target_include_directories(
56 opentelemetry_exporter_otlp_http_client
57 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
58 "$<INSTALL_INTERFACE:include>")
60 list(APPEND OPENTELEMETRY_OTLP_TARGETS
61 opentelemetry_exporter_otlp_http_client)
63 add_library(opentelemetry_exporter_otlp_http src/otlp_http_exporter.cc)
65 set_target_properties(opentelemetry_exporter_otlp_http
66 PROPERTIES EXPORT_NAME otlp_http_exporter)
68 target_link_libraries(
69 opentelemetry_exporter_otlp_http
70 PUBLIC opentelemetry_otlp_recordable
71 opentelemetry_exporter_otlp_http_client)
73 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_http)
76 add_library(opentelemetry_exporter_otlp_http_log
77 src/otlp_http_log_exporter.cc)
79 set_target_properties(opentelemetry_exporter_otlp_http_log
80 PROPERTIES EXPORT_NAME otlp_http_log_exporter)
82 target_link_libraries(
83 opentelemetry_exporter_otlp_http_log
84 PUBLIC opentelemetry_otlp_recordable
85 opentelemetry_exporter_otlp_http_client)
87 list(APPEND OPENTELEMETRY_OTLP_TARGETS opentelemetry_exporter_otlp_http_log)
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})
100 DIRECTORY include/opentelemetry/exporters/otlp
101 DESTINATION include/opentelemetry/exporters
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)
110 TARGET otlp_recordable_test
111 TEST_PREFIX exporter.otlp.
112 TEST_LIST otlp_recordable_test)
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)
120 TARGET otlp_log_recordable_test
121 TEST_PREFIX exporter.otlp.
122 TEST_LIST otlp_log_recordable_test)
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
130 add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
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
135 unset(GMOCK_LIB CACHE)
138 if(MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
139 find_library(GMOCK_LIB gmockd PATH_SUFFIXES lib)
141 find_library(GMOCK_LIB gmock PATH_SUFFIXES lib)
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)
150 TARGET otlp_grpc_exporter_test
151 TEST_PREFIX exporter.otlp.
152 TEST_LIST otlp_grpc_exporter_test)
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)
162 TARGET otlp_grpc_log_exporter_test
163 TEST_PREFIX exporter.otlp.
164 TEST_LIST otlp_grpc_log_exporter_test)
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)
174 TARGET otlp_http_exporter_test
175 TEST_PREFIX exporter.otlp.
176 TEST_LIST otlp_http_exporter_test)
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}
186 opentelemetry_exporter_otlp_http_log
190 TARGET otlp_http_log_exporter_test
191 TEST_PREFIX exporter.otlp.
192 TEST_LIST otlp_http_log_exporter_test)
195 endif() # BUILD_TESTING