@@ -142,24 +142,6 @@ if(WITH_OTLP_GRPC)
142142 set (GRPC_SHARED "-DBUILD_SHARED_LIBS=ON" )
143143 endif ()
144144
145- include (ExternalProject)
146- ExternalProject_Add(
147- ${GRPC_PACKAGE_NAME}
148- GIT_REPOSITORY ${GRPC_GIT_REPOSITORY}
149- GIT_TAG ${GRPC_GIT_TAG}
150- PREFIX ${GRPC_PREFIX}
151- UPDATE_DISCONNECTED 1
152- PATCH_COMMAND ${GRPC_PATCH_CMD}
153- CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH} ${GRPC_SHARED} -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_CROSSCOMPILING=OFF -DgRPC_ZLIB_PROVIDER=package -DgRPC_ABSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_RE2_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} ${TRIPLET_DEFINITIONS}
154- INSTALL_DIR ${GRPC_INSTALL_DIR}
155- INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${GRPC_INSTALL_DIR} --config $<CONFIG>
156- )
157-
158- if (UNIX AND NOT APPLE AND NOT CYGWIN )
159- # needed for running protoc as part of the opentelemetry-cpp build
160- set (GRPC_LD_LIBRARY_PATH_ENV "LD_LIBRARY_PATH=${GRPC_INSTALL_LIB_DIR} " )
161- endif ()
162-
163145 if (WIN32 )
164146 set (GRPC_LINK_LIBRARIES ${GRPC_INSTALL_LIB_DIR} /address_sorting.lib
165147 ${GRPC_INSTALL_LIB_DIR} /gpr.lib
@@ -182,6 +164,26 @@ if(WITH_OTLP_GRPC)
182164 else ()
183165 set (GRPC_LINK_LIBRARIES ${GRPC_INSTALL_LIB_DIR} /libgrpc++${CMAKE_SHARED_LIBRARY_SUFFIX} )
184166 endif ()
167+
168+ include (ExternalProject)
169+ ExternalProject_Add(
170+ ${GRPC_PACKAGE_NAME}
171+ GIT_REPOSITORY ${GRPC_GIT_REPOSITORY}
172+ GIT_TAG ${GRPC_GIT_TAG}
173+ PREFIX ${GRPC_PREFIX}
174+ UPDATE_DISCONNECTED 1
175+ PATCH_COMMAND ${GRPC_PATCH_CMD}
176+ CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH} ${GRPC_SHARED} -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_CROSSCOMPILING=OFF -DgRPC_ZLIB_PROVIDER=package -DgRPC_ABSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_RE2_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} ${TRIPLET_DEFINITIONS}
177+ BUILD_BYPRODUCTS ${GRPC_LINK_LIBRARIES}
178+ INSTALL_DIR ${GRPC_INSTALL_DIR}
179+ INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${GRPC_INSTALL_DIR} --config $<CONFIG>
180+ )
181+
182+ if (UNIX AND NOT APPLE AND NOT CYGWIN )
183+ # needed for running protoc as part of the opentelemetry-cpp build
184+ set (GRPC_LD_LIBRARY_PATH_ENV "LD_LIBRARY_PATH=${GRPC_INSTALL_LIB_DIR} " )
185+ endif ()
186+
185187endif ()
186188
187189# ######################################
@@ -287,6 +289,10 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR)
287289 set (OTEL_CPP_PATCH_CMD "" )
288290 endif ()
289291
292+ if (WITH_OTLP_GRPC)
293+ set (OTEL_CPP_DEPENDS ${GRPC_PACKAGE_NAME} )
294+ endif ()
295+
290296 if (WIN32 OR APPLE )
291297 # Windows and Mac use the default build command
292298 # Note: examples are temporarily turned off (-DWITH_EXAMPLES=OFF) due to a build issue that is now fixed in #3284
@@ -296,6 +302,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR)
296302 GIT_REPOSITORY ${OTEL_CPP_GIT_REPOSITORY}
297303 GIT_TAG ${OTEL_CPP_GIT_TAG}
298304 PREFIX ${OTEL_CPP_PREFIX}
305+ DEPENDS ${OTEL_CPP_DEPENDS}
299306 UPDATE_DISCONNECTED 1
300307 PATCH_COMMAND ${OTEL_CPP_PATCH_CMD}
301308 CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH} -DgRPC_DIR=${GRPC_INSTALL_LIB_DIR} /cmake/grpc -DWITH_ABI_VERSION_1=OFF -DWITH_ABI_VERSION_2=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DWITH_OTLP_FILE=${WITH_OTLP_FILE} -DWITH_EXAMPLES=OFF -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} ${TRIPLET_DEFINITIONS}
@@ -312,6 +319,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR)
312319 GIT_REPOSITORY ${OTEL_CPP_GIT_REPOSITORY}
313320 GIT_TAG ${OTEL_CPP_GIT_TAG}
314321 PREFIX ${OTEL_CPP_PREFIX}
322+ DEPENDS ${OTEL_CPP_DEPENDS}
315323 UPDATE_DISCONNECTED 1
316324 PATCH_COMMAND ${OTEL_CPP_PATCH_CMD}
317325 CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH} -DgRPC_DIR=${GRPC_INSTALL_LIB_DIR} /cmake/grpc -DWITH_ABI_VERSION_1=OFF -DWITH_ABI_VERSION_2=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DWITH_OTLP_FILE=${WITH_OTLP_FILE} -DWITH_EXAMPLES=OFF -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} ${TRIPLET_DEFINITIONS}
0 commit comments