@@ -25,14 +25,23 @@ else()
2525 set (VCPKG_PREFIX ${CMAKE_BINARY_DIR} /vcpkg)
2626 endif ()
2727
28- # On Mac, there is a conflict between libcurl and the version in MATLAB, so
29- # use libcurl as a shared library and load the MATLAB version at runtime
28+ # Define custom triplets for vcpkg
3029 if (APPLE )
30+ # On Mac, there is a conflict between libcurl and the version in MATLAB, so
31+ # use libcurl as a shared library and load the MATLAB version at runtime
3132 # run uname -m to determine whether arm64 or x86_64
3233 exec_program (uname ARGS -m OUTPUT_VARIABLE MAC_HOST_SYSTEM)
3334 set (VCPKG_OTEL_TRIPLET ${MAC_HOST_SYSTEM} -osx-otel-matlab)
3435 set (VCPKG_OVERLAY_TRIPLETS ${CMAKE_SOURCE_DIR} /cmake/vcpkg_triplets)
3536 set (VCPKG_TARGET_TRIPLET ${VCPKG_OTEL_TRIPLET} )
37+ set (TRIPLET_DEFINITIONS -DVCPKG_OVERLAY_TRIPLETS="${VCPKG_OVERLAY_TRIPLETS} " -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} )
38+ elseif (WIN32 )
39+ # On Windows, there is a conflict between abseil_dll.dll and the version used by Simulink.
40+ # The shared library doesn't seem ABI stable and different versions cannot be used interchangeably.
41+ # To sidestep the problem, use static library.
42+ set (VCPKG_OVERLAY_TRIPLETS ${CMAKE_SOURCE_DIR} /cmake/vcpkg_triplets)
43+ set (VCPKG_TARGET_TRIPLET x64-windows-otel-matlab)
44+ set (TRIPLET_DEFINITIONS -DVCPKG_OVERLAY_TRIPLETS="${VCPKG_OVERLAY_TRIPLETS} " -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} )
3645 endif ()
3746
3847 set (VCPKG_FETCH_CONTENT_NAME vcpkg)
@@ -188,7 +197,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR)
188197 PREFIX ${OTEL_CPP_PREFIX}
189198 UPDATE_DISCONNECTED 1
190199 PATCH_COMMAND ${patch_command}
191- 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} -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}
200+ 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} -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} ${TRIPLET_DEFINITIONS}
192201 BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES}
193202 INSTALL_DIR ${OTEL_CPP_PREFIX}
194203 INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX} --config $<CONFIG>
@@ -369,13 +378,11 @@ if(WIN32)
369378 endif ()
370379
371380 if (WITH_OTLP_GRPC)
372- # The TARGET_FILE generator command fails to return the DLL libraries for Abseil and OpenSSL.
381+ # The TARGET_FILE generator command fails to return the DLL libraries for OpenSSL.
373382 # As a result, we have to hardcode those library names instead.
374- set (ABSL_DLL abseil_dll.dll)
375383 set (OPENSSL_DLL libssl-3-x64.dll)
376384 set (OPENSSL_CRYPTO_DLL libcrypto-3-x64.dll)
377385 set (OPENTELEMETRY_PROXY_RUNTIME_LIBRARIES ${OPENTELEMETRY_PROXY_RUNTIME_LIBRARIES}
378- $<TARGET_FILE_DIR:c-ares::cares>/../bin/${ABSL_DLL}
379386 $<TARGET_FILE:c-ares::cares>
380387 $<TARGET_FILE_DIR:OpenSSL::SSL>/../bin/${OPENSSL_DLL}
381388 $<TARGET_FILE_DIR:OpenSSL::SSL>/../bin/${OPENSSL_CRYPTO_DLL}
0 commit comments