@@ -122,21 +122,45 @@ FetchContent_MakeAvailable(
122122# OpenTelemetry-cpp
123123# ###########################
124124
125+ # Determine OTEL_CPP_PREFIX
125126if (DEFINED OTEL_CPP_INSTALLED_DIR)
126127 # OTEL_CPP_INSTALLED_DIR should point to an installed location of OpenTelemetry-cpp
127128 string (REPLACE "\\ " "/" OTEL_CPP_PREFIX ${OTEL_CPP_INSTALLED_DIR} )
128129else ()
129- # No installed location supplied. Fetch it as an external project
130- include (ExternalProject)
131- set (OTEL_CPP_PROJECT_NAME opentelemetry-cpp)
132- set (OTEL_CPP_GIT_REPOSITORY "https://github.com/open-telemetry/opentelemetry-cpp.git" )
133- set (OTEL_CPP_GIT_TAG "a799f4a" )
134-
135130 if (DEFINED OTEL_CPP_PREFIX)
136131 string (REPLACE "\\ " "/" OTEL_CPP_PREFIX ${OTEL_CPP_PREFIX} )
137132 else ()
138133 set (OTEL_CPP_PREFIX ${CMAKE_BINARY_DIR} /otel-cpp)
139134 endif ()
135+ endif ()
136+
137+ set (OTEL_CPP_LIBRARIES ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX}
138+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX}
139+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX}
140+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_resources${CMAKE_STATIC_LIBRARY_SUFFIX}
141+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_trace${CMAKE_STATIC_LIBRARY_SUFFIX}
142+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_version${CMAKE_STATIC_LIBRARY_SUFFIX}
143+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_logs${CMAKE_STATIC_LIBRARY_SUFFIX}
144+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_metrics${CMAKE_STATIC_LIBRARY_SUFFIX} )
145+ if (WITH_OTLP_HTTP)
146+ set (OTEL_CPP_LIBRARIES ${OTEL_CPP_LIBRARIES} ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http${CMAKE_STATIC_LIBRARY_SUFFIX}
147+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http_client${CMAKE_STATIC_LIBRARY_SUFFIX}
148+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http_metric${CMAKE_STATIC_LIBRARY_SUFFIX}
149+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_http_client_curl${CMAKE_STATIC_LIBRARY_SUFFIX} )
150+ endif ()
151+ if (WITH_OTLP_GRPC)
152+ set (OTEL_CPP_LIBRARIES ${OTEL_CPP_LIBRARIES} ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc${CMAKE_STATIC_LIBRARY_SUFFIX}
153+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc_client${CMAKE_STATIC_LIBRARY_SUFFIX}
154+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc_metrics${CMAKE_STATIC_LIBRARY_SUFFIX}
155+ ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto_grpc${OTEL_PROTO_LIBRARY_SUFFIX} )
156+ endif ()
157+
158+ if (NOT DEFINED OTEL_CPP_INSTALLED_DIR)
159+ # No installed location supplied. Fetch it as an external project
160+ include (ExternalProject)
161+ set (OTEL_CPP_PROJECT_NAME opentelemetry-cpp)
162+ set (OTEL_CPP_GIT_REPOSITORY "https://github.com/open-telemetry/opentelemetry-cpp.git" )
163+ set (OTEL_CPP_GIT_TAG "a799f4a" )
140164
141165 set (OTEL_CPP_CXX_STANDARD 14)
142166
@@ -154,6 +178,7 @@ else()
154178 UPDATE_DISCONNECTED 1
155179 PATCH_COMMAND ${patch_command}
156180 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} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR}
181+ BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES}
157182 INSTALL_DIR ${OTEL_CPP_PREFIX}
158183 INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX}
159184 )
@@ -291,32 +316,15 @@ endif()
291316target_compile_options (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} ${CUSTOM_CXX_FLAGS} )
292317
293318# link against OpenTelemetry-cpp libraries and their dependencies
294- set (OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX}
295- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX}
296- ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX}
297- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_resources${CMAKE_STATIC_LIBRARY_SUFFIX}
298- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_trace${CMAKE_STATIC_LIBRARY_SUFFIX}
299- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_version${CMAKE_STATIC_LIBRARY_SUFFIX}
300- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_logs${CMAKE_STATIC_LIBRARY_SUFFIX}
301- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_metrics${CMAKE_STATIC_LIBRARY_SUFFIX}
302- ${Protobuf_LIBRARIES} ${Matlab_MEX_LIBRARY} )
319+ set (OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OTEL_CPP_LIBRARIES} ${Protobuf_LIBRARIES} ${Matlab_MEX_LIBRARY} )
303320if (WITH_OTLP_HTTP)
304- set (OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_LINK_LIBRARIES} ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http${CMAKE_STATIC_LIBRARY_SUFFIX}
305- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http_client${CMAKE_STATIC_LIBRARY_SUFFIX}
306- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_http_metric${CMAKE_STATIC_LIBRARY_SUFFIX}
307- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_http_client_curl${CMAKE_STATIC_LIBRARY_SUFFIX}
308- ${CURL_LIBRARIES} )
321+ set (OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} ${CURL_LIBRARIES} )
309322endif ()
310323if (WITH_OTLP_GRPC)
311- set (OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_LINK_LIBRARIES} ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc${CMAKE_STATIC_LIBRARY_SUFFIX}
312- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc_client${CMAKE_STATIC_LIBRARY_SUFFIX}
313- ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_exporter_otlp_grpc_metrics${CMAKE_STATIC_LIBRARY_SUFFIX}
314- ${OTEL_CPP_PREFIX} /lib/${CMAKE_SHARED_LIBRARY_PREFIX} opentelemetry_proto_grpc${OTEL_PROTO_LIBRARY_SUFFIX}
315- gRPC::grpc++
316- absl::synchronization)
324+ set (OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} gRPC::grpc++ absl::synchronization)
317325endif ()
318326
319- target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_LINK_LIBRARIES } )
327+ target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES } )
320328
321329# On Linux, when linking with certain static libraries, need to force include entire archive to avoid the linker mistakenly leaving out symbols
322330if (UNIX AND NOT APPLE AND NOT CYGWIN )
0 commit comments