From df3177778e3884457efd5e17410a1bca19962566 Mon Sep 17 00:00:00 2001 From: owent Date: Sat, 25 Oct 2025 10:42:27 +0800 Subject: [PATCH 1/4] Support build proto as shared lib on Windows --- cmake/opentelemetry-proto.cmake | 85 +++++++++++++++++++---------- cmake/tools.cmake | 97 +++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+), 29 deletions(-) diff --git a/cmake/opentelemetry-proto.cmake b/cmake/opentelemetry-proto.cmake index 648d21d2f2..0a1fe8d25a 100644 --- a/cmake/opentelemetry-proto.cmake +++ b/cmake/opentelemetry-proto.cmake @@ -2,17 +2,21 @@ # SPDX-License-Identifier: Apache-2.0 # -# The dependency on opentelemetry-proto can be provided by order -# of decreasing priority, options are: +# The dependency on opentelemetry-proto can be provided by order of decreasing +# priority, options are: # -# 1 - Fetch from local source directory defined by the OTELCPP_PROTO_PATH variable +# 1 - Fetch from local source directory defined by the OTELCPP_PROTO_PATH +# variable # -# 2 - Fetch from the opentelemetry-proto git submodule (opentelemetry-cpp/third_party/opentelemetry-proto) +# 2 - Fetch from the opentelemetry-proto git submodule +# (opentelemetry-cpp/third_party/opentelemetry-proto) # -# 3 - Fetch from github using the git tag set in opentelemetry-cpp/third_party_release +# 3 - Fetch from github using the git tag set in +# opentelemetry-cpp/third_party_release # -set(OPENTELEMETRY_PROTO_SUBMODULE "${opentelemetry-cpp_SOURCE_DIR}/third_party/opentelemetry-proto") +set(OPENTELEMETRY_PROTO_SUBMODULE + "${opentelemetry-cpp_SOURCE_DIR}/third_party/opentelemetry-proto") if(OTELCPP_PROTO_PATH) if(NOT EXISTS @@ -21,29 +25,32 @@ if(OTELCPP_PROTO_PATH) FATAL_ERROR "OTELCPP_PROTO_PATH does not point to a opentelemetry-proto repository") endif() - message(STATUS "fetching opentelemetry-proto from OTELCPP_PROTO_PATH=${OTELCPP_PROTO_PATH}") - FetchContent_Declare( - opentelemetry-proto - SOURCE_DIR ${OTELCPP_PROTO_PATH} + message( + STATUS + "fetching opentelemetry-proto from OTELCPP_PROTO_PATH=${OTELCPP_PROTO_PATH}" ) + FetchContent_Declare(opentelemetry-proto SOURCE_DIR ${OTELCPP_PROTO_PATH}) set(opentelemetry-proto_PROVIDER "fetch_source") - # If the opentelemetry-proto directory is a general directory then we don't have a good way to determine the version. Set it as unknown. + # If the opentelemetry-proto directory is a general directory then we don't + # have a good way to determine the version. Set it as unknown. set(opentelemetry-proto_VERSION "unknown") elseif(EXISTS ${OPENTELEMETRY_PROTO_SUBMODULE}/.git) - message(STATUS "fetching opentelemetry-proto from git submodule") - FetchContent_Declare( - opentelemetry-proto - SOURCE_DIR ${OPENTELEMETRY_PROTO_SUBMODULE} - ) + message(STATUS "fetching opentelemetry-proto from git submodule") + FetchContent_Declare(opentelemetry-proto SOURCE_DIR + ${OPENTELEMETRY_PROTO_SUBMODULE}) set(opentelemetry-proto_PROVIDER "fetch_source") - string(REGEX REPLACE "^v([0-9]+\\.[0-9]+\\.[0-9]+)$" "\\1" opentelemetry-proto_VERSION "${opentelemetry-proto_GIT_TAG}") + string(REGEX + REPLACE "^v([0-9]+\\.[0-9]+\\.[0-9]+)$" "\\1" + opentelemetry-proto_VERSION "${opentelemetry-proto_GIT_TAG}") else() FetchContent_Declare( - opentelemetry-proto - GIT_REPOSITORY https://github.com/open-telemetry/opentelemetry-proto.git - GIT_TAG "${opentelemetry-proto_GIT_TAG}") + opentelemetry-proto + GIT_REPOSITORY https://github.com/open-telemetry/opentelemetry-proto.git + GIT_TAG "${opentelemetry-proto_GIT_TAG}") set(opentelemetry-proto_PROVIDER "fetch_repository") - string(REGEX REPLACE "^v([0-9]+\\.[0-9]+\\.[0-9]+)$" "\\1" opentelemetry-proto_VERSION "${opentelemetry-proto_GIT_TAG}") + string(REGEX + REPLACE "^v([0-9]+\\.[0-9]+\\.[0-9]+)$" "\\1" + opentelemetry-proto_VERSION "${opentelemetry-proto_GIT_TAG}") endif() FetchContent_MakeAvailable(opentelemetry-proto) @@ -174,8 +181,10 @@ foreach(IMPORT_DIR ${PROTOBUF_IMPORT_DIRS}) list(APPEND PROTOBUF_INCLUDE_FLAGS "-I${IMPORT_DIR}") endforeach() -set(PROTOBUF_COMMON_FLAGS "--proto_path=${PROTO_PATH}" - "--cpp_out=${GENERATED_PROTOBUF_PATH}") +set(PROTOBUF_COMMON_FLAGS + "--proto_path=${PROTO_PATH}" + "--cpp_out=dllexport_decl=OPENTELEMETRY_PROTO_API:${GENERATED_PROTOBUF_PATH}" +) # --experimental_allow_proto3_optional is available from 3.13 and be stable and # enabled by default from 3.16 if(Protobuf_VERSION AND Protobuf_VERSION VERSION_LESS "3.16") @@ -276,13 +285,13 @@ add_custom_command( DEPENDS ${PROTOBUF_GENERATE_DEPENDS}) unset(OTELCPP_PROTO_TARGET_OPTIONS) -if(CMAKE_SYSTEM_NAME MATCHES "Windows|MinGW|WindowsStore") - list(APPEND OTELCPP_PROTO_TARGET_OPTIONS STATIC) -elseif((NOT protobuf_lib_type STREQUAL "STATIC_LIBRARY") - AND (NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)) +if((NOT protobuf_lib_type STREQUAL "STATIC_LIBRARY") + AND (NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)) list(APPEND OTELCPP_PROTO_TARGET_OPTIONS SHARED) + set(OTELCPP_PROTO_LIB_TYPE "SHARED_LIBRARY") else() list(APPEND OTELCPP_PROTO_TARGET_OPTIONS STATIC) + set(OTELCPP_PROTO_LIB_TYPE "STATIC_LIBRARY") endif() set(OPENTELEMETRY_PROTO_TARGETS opentelemetry_proto) @@ -299,6 +308,14 @@ add_library( ${METRICS_SERVICE_PB_CPP_FILE}) set_target_version(opentelemetry_proto) +if(OTELCPP_PROTO_LIB_TYPE STREQUAL "SHARED_LIBRARY") + project_build_tools_set_shared_library_declaration(OPENTELEMETRY_PROTO_API + opentelemetry_proto) +else() + project_build_tools_set_static_library_declaration(OPENTELEMETRY_PROTO_API + opentelemetry_proto) +endif() + target_include_directories( opentelemetry_proto PUBLIC "$" "$") @@ -323,10 +340,20 @@ if(WITH_OTLP_GRPC) ${LOGS_SERVICE_GRPC_PB_CPP_FILE} ${METRICS_SERVICE_GRPC_PB_CPP_FILE}) set_target_version(opentelemetry_proto_grpc) + if(OTELCPP_PROTO_LIB_TYPE STREQUAL "SHARED_LIBRARY") + if(CMAKE_SYSTEM_NAME MATCHES "Windows|MinGW|WindowsStore") + set_target_properties(opentelemetry_proto_grpc + PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + endif() + endif() + # Disable include-what-you-use and clang-tidy on generated code. set_target_properties( - opentelemetry_proto_grpc PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "" - CXX_CLANG_TIDY "") + opentelemetry_proto_grpc + PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "" + CXX_CLANG_TIDY "" + C_VISIBILITY_PRESET "default" + CXX_VISIBILITY_PRESET "default") list(APPEND OPENTELEMETRY_PROTO_TARGETS opentelemetry_proto_grpc) target_link_libraries(opentelemetry_proto_grpc PUBLIC opentelemetry_proto) diff --git a/cmake/tools.cmake b/cmake/tools.cmake index 43ac5156d4..03443bebed 100644 --- a/cmake/tools.cmake +++ b/cmake/tools.cmake @@ -222,3 +222,100 @@ function(project_build_tools_patch_default_imported_config) endif() endforeach() endfunction() + +function(project_build_tools_set_export_declaration OUTPUT_VARNAME) + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang|Intel|XL|XLClang") + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__attribute__((__dllexport__))" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "__attribute__((visibility(\"default\")))" + PARENT_SCOPE) + endif() + elseif(MSVC) + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__declspec(dllexport)" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "" + PARENT_SCOPE) + endif() + elseif(SunPro) + set(${OUTPUT_VARNAME} + "__global" + PARENT_SCOPE) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__declspec(dllexport)" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "" + PARENT_SCOPE) + endif() +endfunction() + +function(project_build_tools_set_import_declaration OUTPUT_VARNAME) + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang|Intel|XL|XLClang") + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__attribute__((__dllimport__))" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "" + PARENT_SCOPE) + endif() + elseif(MSVC) + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__declspec(dllimport)" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "" + PARENT_SCOPE) + endif() + elseif(SunPro) + set(${OUTPUT_VARNAME} + "__global" + PARENT_SCOPE) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(${OUTPUT_VARNAME} + "__declspec(dllimport)" + PARENT_SCOPE) + else() + set(${OUTPUT_VARNAME} + "" + PARENT_SCOPE) + endif() +endfunction() + +function(project_build_tools_set_shared_library_declaration DEFINITION_VARNAME) + project_build_tools_set_export_declaration(EXPORT_DECLARATION) + project_build_tools_set_import_declaration(IMPORT_DECLARATION) + foreach(TARGET_NAME ${ARGN}) + target_compile_definitions( + ${TARGET_NAME} INTERFACE "${DEFINITION_VARNAME}=${IMPORT_DECLARATION}") + target_compile_definitions( + ${TARGET_NAME} PRIVATE "${DEFINITION_VARNAME}=${EXPORT_DECLARATION}") + endforeach() +endfunction() + +function(project_build_tools_set_static_library_declaration DEFINITION_VARNAME) + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang|Intel|XL|XLClang") + foreach(TARGET_NAME ${ARGN}) + target_compile_definitions( + ${TARGET_NAME} + PUBLIC "${DEFINITION_VARNAME}=__attribute__((visibility(\"default\")))") + endforeach() + else() + foreach(TARGET_NAME ${ARGN}) + target_compile_definitions(${TARGET_NAME} PUBLIC "${DEFINITION_VARNAME}=") + endforeach() + endif() +endfunction() From c9e6d273750319e27603fb7792df875bb7c482b7 Mon Sep 17 00:00:00 2001 From: owent Date: Mon, 27 Oct 2025 00:06:35 +0800 Subject: [PATCH 2/4] Set default visibility of opentelemetry_proto to hidden --- cmake/opentelemetry-proto.cmake | 18 ++++++++++++++---- cmake/tools.cmake | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/cmake/opentelemetry-proto.cmake b/cmake/opentelemetry-proto.cmake index 0a1fe8d25a..a17f5e6051 100644 --- a/cmake/opentelemetry-proto.cmake +++ b/cmake/opentelemetry-proto.cmake @@ -321,8 +321,13 @@ target_include_directories( "$") # Disable include-what-you-use and clang-tidy on generated code. -set_target_properties(opentelemetry_proto PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "" - CXX_CLANG_TIDY "") +set_target_properties( + opentelemetry_proto + PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "" + CXX_CLANG_TIDY "" + C_VISIBILITY_PRESET "hidden" + CXX_VISIBILITY_PRESET "hidden" + VISIBILITY_INLINES_HIDDEN OFF) if(NOT Protobuf_INCLUDE_DIRS AND TARGET protobuf::libprotobuf) get_target_property(Protobuf_INCLUDE_DIRS protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) @@ -342,6 +347,9 @@ if(WITH_OTLP_GRPC) if(OTELCPP_PROTO_LIB_TYPE STREQUAL "SHARED_LIBRARY") if(CMAKE_SYSTEM_NAME MATCHES "Windows|MinGW|WindowsStore") + # The codes generated by gRPC plugin do not support dll export/import + # declarations. To work around this, we enable WINDOWS_EXPORT_ALL_SYMBOLS + # property to export all symbols when building a shared library. set_target_properties(opentelemetry_proto_grpc PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() @@ -353,7 +361,8 @@ if(WITH_OTLP_GRPC) PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "" CXX_CLANG_TIDY "" C_VISIBILITY_PRESET "default" - CXX_VISIBILITY_PRESET "default") + CXX_VISIBILITY_PRESET "default" + VISIBILITY_INLINES_HIDDEN OFF) list(APPEND OPENTELEMETRY_PROTO_TARGETS opentelemetry_proto_grpc) target_link_libraries(opentelemetry_proto_grpc PUBLIC opentelemetry_proto) @@ -365,7 +374,8 @@ if(WITH_OTLP_GRPC) # opentelemetry_exporter_otlp_grpc_client as a static library. get_target_property(grpc_lib_type gRPC::grpc++ TYPE) - if(grpc_lib_type STREQUAL "SHARED_LIBRARY") + if(grpc_lib_type STREQUAL "SHARED_LIBRARY" OR OTELCPP_PROTO_LIB_TYPE STREQUAL + "SHARED_LIBRARY") target_link_libraries(opentelemetry_proto_grpc PUBLIC gRPC::grpc++) endif() set_target_properties(opentelemetry_proto_grpc PROPERTIES EXPORT_NAME diff --git a/cmake/tools.cmake b/cmake/tools.cmake index 03443bebed..9988f73300 100644 --- a/cmake/tools.cmake +++ b/cmake/tools.cmake @@ -280,7 +280,7 @@ function(project_build_tools_set_import_declaration OUTPUT_VARNAME) "" PARENT_SCOPE) endif() - elseif(SunPro) + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") set(${OUTPUT_VARNAME} "__global" PARENT_SCOPE) From cb8840080722466b9148d792712844c3bd7a9864 Mon Sep 17 00:00:00 2001 From: owent Date: Mon, 27 Oct 2025 00:27:32 +0800 Subject: [PATCH 3/4] Passthrough lingking of opentelemetry_proto --- exporters/otlp/CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/exporters/otlp/CMakeLists.txt b/exporters/otlp/CMakeLists.txt index 23a5cd6b6c..bb7634a07c 100644 --- a/exporters/otlp/CMakeLists.txt +++ b/exporters/otlp/CMakeLists.txt @@ -250,10 +250,12 @@ if(WITH_OTLP_HTTP) target_link_libraries( opentelemetry_exporter_otlp_http_client - PUBLIC opentelemetry_sdk opentelemetry_ext - # Links flags of opentelemetry_http_client_curl should be public when - # building internal components - PRIVATE opentelemetry_proto + PUBLIC opentelemetry_sdk + opentelemetry_ext + # Links flags of opentelemetry_http_client_curl should be public when + # building internal components + "$" + PRIVATE "$" "$" "$" "$") @@ -409,7 +411,9 @@ if(WITH_OTLP_FILE) target_link_libraries( opentelemetry_exporter_otlp_file_client PUBLIC opentelemetry_sdk opentelemetry_common - PRIVATE opentelemetry_proto $) + "$" + PRIVATE "$" + "$") target_include_directories( opentelemetry_exporter_otlp_file_client From 39314effa305f032b30a8801758801b3beb35800 Mon Sep 17 00:00:00 2001 From: owent Date: Sat, 1 Nov 2025 10:41:19 +0800 Subject: [PATCH 4/4] Add PATH for unit test --- ci/do_ci.ps1 | 95 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 23 deletions(-) diff --git a/ci/do_ci.ps1 b/ci/do_ci.ps1 index 82c70ce8ef..e4ce73a08c 100644 --- a/ci/do_ci.ps1 +++ b/ci/do_ci.ps1 @@ -67,7 +67,7 @@ switch ($action) { cmake $SRC_DIR ` -DVCPKG_TARGET_TRIPLET=x64-windows ` -DOPENTELEMETRY_BUILD_DLL=1 ` - "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" + "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" $exit = $LASTEXITCODE if ($exit -ne 0) { exit $exit @@ -90,7 +90,7 @@ switch ($action) { -DCMAKE_CXX_STANDARD=20 ` -DVCPKG_TARGET_TRIPLET=x64-windows ` -DOPENTELEMETRY_BUILD_DLL=1 ` - "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" + "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" $exit = $LASTEXITCODE if ($exit -ne 0) { exit $exit @@ -125,6 +125,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -151,6 +159,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -175,6 +191,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -196,6 +220,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -218,6 +250,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -264,6 +304,14 @@ switch ($action) { if ($exit -ne 0) { exit $exit } + + $ALL_DLL_FILES = Get-ChildItem -Path "./*.dll" -Recurse + $ALL_DLL_DIRS = $(foreach ($dll_file in $ALL_DLL_FILES) { + $dll_file.Directory.FullName + }) | Sort-Object | Get-Unique + $env:PATH = ($ALL_DLL_DIRS -Join [IO.Path]::PathSeparator) + [IO.Path]::PathSeparator + $env:PATH + Write-Output "PATH=$env:PATH" + ctest -C Debug $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -316,21 +364,22 @@ switch ($action) { cd "$BUILD_DIR" if (Test-Path Env:\CXX_STANDARD) { - $CXX_STANDARD = [int](Get-Item Env:\CXX_STANDARD).Value - } else { - $CXX_STANDARD = 17 + $CXX_STANDARD = [int](Get-Item Env:\CXX_STANDARD).Value + } + else { + $CXX_STANDARD = 17 } if (-not $CXX_STANDARD) { - $CXX_STANDARD = 17 + $CXX_STANDARD = 17 } Write-Host "Using CXX_STANDARD: $CXX_STANDARD" $CMAKE_OPTIONS = @( - "-DCMAKE_CXX_STANDARD=$CXX_STANDARD", - "-DCMAKE_CXX_STANDARD_REQUIRED=ON", - "-DCMAKE_CXX_EXTENSIONS=OFF", - "-DVCPKG_TARGET_TRIPLET=x64-windows", - "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" + "-DCMAKE_CXX_STANDARD=$CXX_STANDARD", + "-DCMAKE_CXX_STANDARD_REQUIRED=ON", + "-DCMAKE_CXX_EXTENSIONS=OFF", + "-DVCPKG_TARGET_TRIPLET=x64-windows", + "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" ) cmake $SRC_DIR ` @@ -390,10 +439,10 @@ switch ($action) { cd "$BUILD_DIR\install_test" cmake $CMAKE_OPTIONS ` - "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" ` - "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" ` - "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" ` - -S "$SRC_DIR\install\test\cmake" + "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" ` + "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" ` + "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" ` + -S "$SRC_DIR\install\test\cmake" $exit = $LASTEXITCODE if ($exit -ne 0) { @@ -414,10 +463,10 @@ switch ($action) { Remove-Item -Recurse -Force "$INSTALL_TEST_DIR\*" $CMAKE_OPTIONS = @( - "-DCMAKE_CXX_STANDARD=17", - "-DVCPKG_TARGET_TRIPLET=x64-windows", - "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake", - "-DOPENTELEMETRY_BUILD_DLL=1" + "-DCMAKE_CXX_STANDARD=17", + "-DVCPKG_TARGET_TRIPLET=x64-windows", + "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake", + "-DOPENTELEMETRY_BUILD_DLL=1" ) cmake $SRC_DIR ` @@ -485,10 +534,10 @@ switch ($action) { cd "$BUILD_DIR\install_test" cmake $CMAKE_OPTIONS ` - "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" ` - "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" ` - "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" ` - -S "$SRC_DIR\install\test\cmake" + "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" ` + "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" ` + "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" ` + -S "$SRC_DIR\install\test\cmake" $exit = $LASTEXITCODE if ($exit -ne 0) {