@@ -57,12 +57,19 @@ if(DEFINED OTEL_CPP_PREFIX)
5757else ()
5858 set (OTEL_CPP_PREFIX ${CMAKE_BINARY_DIR} /otel-cpp)
5959endif ()
60+
61+ if (WITH_OTLP_GRPC)
62+ set (OTEL_CPP_CXX_STANDARD 14) # Abseil requires at least Cxx14
63+ else ()
64+ set (OTEL_CPP_CXX_STANDARD 11)
65+ endif ()
66+
6067ExternalProject_Add(
6168 ${OTEL_CPP_PROJECT_NAME}
6269 GIT_REPOSITORY ${OTEL_CPP_GIT_REPOSITORY}
6370 GIT_TAG ${OTEL_CPP_GIT_TAG}
6471 PREFIX ${OTEL_CPP_PREFIX}
65- CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
72+ CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD= ${OTEL_CPP_CXX_STANDARD}
6673 INSTALL_DIR ${OTEL_CPP_PREFIX}
6774 INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX}
6875)
@@ -163,27 +170,33 @@ if(WITH_OTLP_GRPC)
163170 endif ()
164171endif ()
165172
173+ if (WIN32 )
174+ set (OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX} )
175+ else ()
176+ set (OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX} )
177+ endif ()
178+
166179target_compile_options (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} )
167180
168181# link against OpenTelemetry-cpp libraries and their dependencies
169- target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/opentelemetry_common${CMAKE_LINK_LIBRARY_SUFFIX }
170- ${OTEL_CPP_PREFIX} /lib/opentelemetry_otlp_recordable${CMAKE_LINK_LIBRARY_SUFFIX }
171- ${OTEL_CPP_PREFIX} /lib/opentelemetry_proto${CMAKE_LINK_LIBRARY_SUFFIX }
172- ${OTEL_CPP_PREFIX} /lib/opentelemetry_resources${CMAKE_LINK_LIBRARY_SUFFIX }
173- ${OTEL_CPP_PREFIX} /lib/opentelemetry_trace${CMAKE_LINK_LIBRARY_SUFFIX }
174- ${OTEL_CPP_PREFIX} /lib/opentelemetry_version${CMAKE_LINK_LIBRARY_SUFFIX }
175- ${OTEL_CPP_PREFIX} /lib/opentelemetry_logs${CMAKE_LINK_LIBRARY_SUFFIX }
182+ target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX }
183+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX }
184+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX }
185+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_resources${CMAKE_STATIC_LIBRARY_SUFFIX }
186+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_trace${CMAKE_STATIC_LIBRARY_SUFFIX }
187+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_version${CMAKE_STATIC_LIBRARY_SUFFIX }
188+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_logs${CMAKE_STATIC_LIBRARY_SUFFIX }
176189 ${Protobuf_LIBRARIES} )
177190if (WITH_OTLP_HTTP)
178- target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/opentelemetry_exporter_otlp_http${CMAKE_LINK_LIBRARY_SUFFIX }
179- ${OTEL_CPP_PREFIX} /lib/opentelemetry_exporter_otlp_http_client${CMAKE_LINK_LIBRARY_SUFFIX }
180- ${OTEL_CPP_PREFIX} /lib/opentelemetry_http_client_curl${CMAKE_LINK_LIBRARY_SUFFIX }
191+ target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http${CMAKE_STATIC_LIBRARY_SUFFIX }
192+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http_client${CMAKE_STATIC_LIBRARY_SUFFIX }
193+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_http_client_curl${CMAKE_STATIC_LIBRARY_SUFFIX }
181194 ${CURL_LIBRARIES} )
182195endif ()
183196if (WITH_OTLP_GRPC)
184- target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/opentelemetry_exporter_otlp_grpc${CMAKE_LINK_LIBRARY_SUFFIX }
185- ${OTEL_CPP_PREFIX} /lib/opentelemetry_exporter_otlp_grpc_client${CMAKE_LINK_LIBRARY_SUFFIX }
186- ${OTEL_CPP_PREFIX} /lib/opentelemetry_proto_grpc${CMAKE_LINK_LIBRARY_SUFFIX }
197+ target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc${CMAKE_STATIC_LIBRARY_SUFFIX }
198+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc_client${CMAKE_STATIC_LIBRARY_SUFFIX }
199+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto_grpc${OTEL_PROTO_LIBRARY_SUFFIX }
187200 gRPC::grpc++
188201 absl::synchronization)
189202endif ()
@@ -193,6 +206,7 @@ if(UNIX AND NOT APPLE AND NOT CYGWIN)
193206 set (OPENTELEMETRY_PROXY_LINK_OPTIONS -Wl,--whole-archive
194207 "${OTEL_CPP_PREFIX} /lib/libopentelemetry_trace.a"
195208 "${OTEL_CPP_PREFIX} /lib/libopentelemetry_common.a"
209+ "${OTEL_CPP_PREFIX} /lib/libopentelemetry_otlp_recordable.a"
196210 ${ABSL_LIBRARIES}
197211 ${UPB_LIBRARIES} -Wl,--no -whole-archive)
198212 target_link_options (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OPENTELEMETRY_PROXY_LINK_OPTIONS} )
0 commit comments