@@ -20,6 +20,9 @@ option(WITH_OTLP_GRPC "Whether to include the OTLP gRPC exporter" OFF)
2020if (NOT WITH_OTLP_HTTP AND NOT WITH_OTLP_GRPC)
2121 message (FATAL_ERROR "At least one of WITH_OTLP_HTTP and WITH_OTLP_GRPC must be ON" )
2222endif ()
23+ if (APPLE )
24+ option (SKIP_OTEL_CPP_PATCH "Whether to skip patching OpenTelemetry-cpp" OFF )
25+ endif ()
2326
2427# ######################################
2528# libmexclass FetchContent Configuration
@@ -64,13 +67,18 @@ else()
6467 set (OTEL_CPP_CXX_STANDARD 11)
6568endif ()
6669
67- set (patch_command git apply ${CMAKE_SOURCE_DIR} /otel-cpp.patch)
70+ if (NOT APPLE OR SKIP_OTEL_CPP_PATCH)
71+ set (patch_command "" )
72+ else ()
73+ set (patch_command git apply ${CMAKE_SOURCE_DIR} /otel-cpp.patch)
74+ endif ()
6875
6976ExternalProject_Add(
7077 ${OTEL_CPP_PROJECT_NAME}
7178 GIT_REPOSITORY ${OTEL_CPP_GIT_REPOSITORY}
7279 GIT_TAG ${OTEL_CPP_GIT_TAG}
7380 PREFIX ${OTEL_CPP_PREFIX}
81+ UPDATE_DISCONNECTED 1
7482 PATCH_COMMAND ${patch_command}
7583 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}
7684 INSTALL_DIR ${OTEL_CPP_PREFIX}
@@ -173,13 +181,20 @@ if(WITH_OTLP_GRPC)
173181 endif ()
174182endif ()
175183
184+ # On Windows, suppress a compiler warning about deprecation of result_of
185+ if (WIN32 )
186+ set (CUSTOM_CXX_FLAGS -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING)
187+ else ()
188+ set (CUSTOM_CXX_FLAGS "" )
189+ endif ()
190+
176191if (WIN32 )
177192 set (OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX} )
178193else ()
179194 set (OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX} )
180195endif ()
181196
182- target_compile_options (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} )
197+ target_compile_options (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} ${CUSTOM_CXX_FLAGS} )
183198
184199# link against OpenTelemetry-cpp libraries and their dependencies
185200target_link_libraries (${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX}
0 commit comments