Skip to content

Commit bacbaee

Browse files
authored
Merge pull request #223 from mathworks/grpc
tighten up dependencies in CMakeLists
2 parents b0f5493 + eebad7d commit bacbaee

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

CMakeLists.txt

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
185187
endif()
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

Comments
 (0)