From 2319e87535de52896eab659ca74504eff0c08856 Mon Sep 17 00:00:00 2001 From: talregev Date: Tue, 10 Dec 2024 15:53:26 +0200 Subject: [PATCH 1/3] Refactor: (#4692) - Add namespace - Enable sanitize builds - Refactor platform unittest external cmake --- .github/workflows/build-reuse-win.yml | 4 ++-- src/bin/CMakeLists.txt | 2 +- src/platform/unittest/external/CMakeLists.txt | 14 ++++++-------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-reuse-win.yml b/.github/workflows/build-reuse-win.yml index 20fd3f893f..4bcf3c0332 100644 --- a/.github/workflows/build-reuse-win.yml +++ b/.github/workflows/build-reuse-win.yml @@ -87,11 +87,11 @@ jobs: shell: pwsh run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisablePerf -DynamicCRT ${{ inputs.sanitize }} - name: Build External Platform Test - if: inputs.build == '-Test' && inputs.sanitize != '-Sanitize' + if: inputs.build == '-Test' shell: pwsh run: | cmake --install build\${{ inputs.plat }}\${{ inputs.arch }}_${{ inputs.tls }} --config ${{ inputs.config }} - cmake src/platform/unittest/external -G "Visual Studio 17 2022" -A ${{ inputs.arch }} -B build_external "-DCMAKE_INSTALL_PREFIX:PATH=C:/Program Files/msquic" -DQUIC_TLS=${{ inputs.tls }} + cmake src/platform/unittest/external -G "Visual Studio 17 2022" -A ${{ inputs.arch }} -B build_external "-DCMAKE_INSTALL_PREFIX:PATH=C:/Program Files/msquic" cmake --build build_external --config ${{ inputs.config }} - name: Build For Perf if: inputs.build == '-Perf' diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt index 18048e3b72..8b02281524 100644 --- a/src/bin/CMakeLists.txt +++ b/src/bin/CMakeLists.txt @@ -272,7 +272,7 @@ configure_file(msquic-config.cmake.in ${CMAKE_BINARY_DIR}/msquic-config.cmake) install(FILES ${CMAKE_BINARY_DIR}/msquic-config.cmake DESTINATION share/msquic) if(BUILD_SHARED_LIBS) - install(EXPORT msquic DESTINATION share/msquic) + install(EXPORT msquic NAMESPACE msquic:: DESTINATION share/msquic) endif() if (MSVC AND NOT QUIC_ENABLE_SANITIZERS AND BUILD_SHARED_LIBS) diff --git a/src/platform/unittest/external/CMakeLists.txt b/src/platform/unittest/external/CMakeLists.txt index 805b18ff40..cfb1ccba9b 100644 --- a/src/platform/unittest/external/CMakeLists.txt +++ b/src/platform/unittest/external/CMakeLists.txt @@ -5,12 +5,9 @@ cmake_minimum_required(VERSION 3.16) project(msquic_platform_external) -find_package(msquic REQUIRED) -find_library(MSPLATFORM_LIBRARIES - NAMES msquic_platform) +find_package(msquic CONFIG REQUIRED) message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") -message(STATUS "MSPLATFORM_LIBRARIES: ${MSPLATFORM_LIBRARIES}") include(FetchContent) FetchContent_Declare( @@ -28,11 +25,12 @@ set(SOURCES ../TlsTest.cpp ) -if(QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "openssl3") - list(APPEND OTHER_TERGETS OpenSSL) -endif() +# Remove QUIC_EVENTS_MANIFEST_ETW and QUIC_LOGS_MANIFEST_ETW definitions. These definitions for internal use in msquic +get_target_property(defs msquic::inc INTERFACE_COMPILE_DEFINITIONS) +list(FILTER defs EXCLUDE REGEX "^(QUIC_EVENTS_MANIFEST_ETW|QUIC_LOGS_MANIFEST_ETW)$") +set_target_properties(msquic::inc PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${defs}") add_executable(msquicplatformtest ${SOURCES}) target_include_directories(msquicplatformtest PRIVATE ${CMAKE_INSTALL_PREFIX}/include) -target_link_libraries(msquicplatformtest PRIVATE msquic ${MSPLATFORM_LIBRARIES} ${OTHER_TERGETS} gtest ws2_32 schannel ntdll bcrypt ncrypt crypt32 iphlpapi advapi32 secur32 userenv onecore winmm wbemuuid clang_rt.asan_dbg_dynamic-x86_64 clang_rt.asan_dynamic-x86_64) +target_link_libraries(msquicplatformtest PRIVATE gtest msquic::msquic msquic::msquic_platform ws2_32 ntdll ncrypt crypt32 iphlpapi) target_compile_definitions(msquicplatformtest PRIVATE QUIC_EVENTS_STUB QUIC_LOGS_STUB _DISABLE_VECTOR_ANNOTATION _DISABLE_STRING_ANNOTATION) From a35f6441c4d50001deda5bb0190b204a1084001e Mon Sep 17 00:00:00 2001 From: Tal Regev Date: Wed, 11 Dec 2024 07:51:46 +0200 Subject: [PATCH 2/3] New version: 2.4.8 --- .azure/OneBranch.Package.yml | 2 +- CMakeLists.txt | 2 +- Cargo.toml | 2 +- scripts/package-distribution.ps1 | 2 +- scripts/package-nuget.ps1 | 2 +- scripts/write-versions.ps1 | 2 +- src/distribution/Info.plist | 2 +- src/inc/msquic.ver | 2 +- version.json | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.azure/OneBranch.Package.yml b/.azure/OneBranch.Package.yml index 1ee6729524..0a9944f1ca 100644 --- a/.azure/OneBranch.Package.yml +++ b/.azure/OneBranch.Package.yml @@ -95,7 +95,7 @@ extends: ob_createvpack_owneralias: quicdev ob_createvpack_description: msquic.$(Build.SourceBranchName) ob_createvpack_versionAs: string - ob_createvpack_version: 2.4.7-$(Build.BuildId) + ob_createvpack_version: 2.4.8-$(Build.BuildId) steps: - task: DownloadPipelineArtifact@2 inputs: diff --git a/CMakeLists.txt b/CMakeLists.txt index 522118f86c..6d96028071 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ message(STATUS "Platform version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") set(QUIC_MAJOR_VERSION 2) -set(QUIC_FULL_VERSION 2.4.7) +set(QUIC_FULL_VERSION 2.4.8) if (WIN32) set(CX_PLATFORM "windows") diff --git a/Cargo.toml b/Cargo.toml index 8134bb061b..321c6b1bb7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "msquic" -version = "2.4.7-beta" +version = "2.4.8-beta" edition = "2018" authors = ["Microsoft"] description = "Microsoft implementation of the IETF QUIC protocol" diff --git a/scripts/package-distribution.ps1 b/scripts/package-distribution.ps1 index 396d3acea6..b23dfe0f82 100644 --- a/scripts/package-distribution.ps1 +++ b/scripts/package-distribution.ps1 @@ -24,7 +24,7 @@ $ArtifactsBinDir = Join-Path $BaseArtifactsDir "bin" # All direct subfolders are OS's $Platforms = Get-ChildItem -Path $ArtifactsBinDir -$Version = "2.4.7" +$Version = "2.4.8" $WindowsBuilds = @() $AllBuilds = @() diff --git a/scripts/package-nuget.ps1 b/scripts/package-nuget.ps1 index 8a0688d1d6..58bc22726b 100644 --- a/scripts/package-nuget.ps1 +++ b/scripts/package-nuget.ps1 @@ -153,7 +153,7 @@ $DistDir = Join-Path $BaseArtifactsDir "dist" $CurrentCommitHash = Get-GitHash -RepoDir $RootDir $RepoRemote = Get-GitRemote -RepoDir $RootDir -$Version = "2.4.7" +$Version = "2.4.8" $BuildId = $env:BUILD_BUILDID if ($null -ne $BuildId) { diff --git a/scripts/write-versions.ps1 b/scripts/write-versions.ps1 index f4869fd92c..658cd14077 100644 --- a/scripts/write-versions.ps1 +++ b/scripts/write-versions.ps1 @@ -26,7 +26,7 @@ $ArtifactsDir = $BuildConfig.ArtifactsDir $SourceVersion = $env:BUILD_SOURCEVERSION; $SourceBranch = $env:BUILD_SOURCEBRANCH; $BuildId = $env:BUILD_BUILDID; -$VersionNumber = "2.4.7"; +$VersionNumber = "2.4.8"; class BuildData { [string]$SourceVersion; diff --git a/src/distribution/Info.plist b/src/distribution/Info.plist index d137c97e31..51ef4f0154 100644 --- a/src/distribution/Info.plist +++ b/src/distribution/Info.plist @@ -19,7 +19,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleVersion - 2.4.7 + 2.4.8 NSHumanReadableCopyright MIT CFBundleGetInfoString diff --git a/src/inc/msquic.ver b/src/inc/msquic.ver index a66f926596..f6fd781a27 100644 --- a/src/inc/msquic.ver +++ b/src/inc/msquic.ver @@ -12,7 +12,7 @@ #endif #ifndef VER_PATCH -#define VER_PATCH 7 +#define VER_PATCH 8 #endif #ifndef VER_BUILD_ID diff --git a/version.json b/version.json index df379a55ef..f85371b5ee 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{ "major": 2, "minor": 4, "patch": 7 } +{ "major": 2, "minor": 4, "patch": 8 } From 9be648886d41009a9387e5ab064c82524c6f7398 Mon Sep 17 00:00:00 2001 From: talregev Date: Fri, 13 Dec 2024 17:26:12 +0200 Subject: [PATCH 3/3] Add alias (#4704) --- src/bin/msquic-config.cmake.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/msquic-config.cmake.in b/src/bin/msquic-config.cmake.in index dd676243fe..fba676be99 100644 --- a/src/bin/msquic-config.cmake.in +++ b/src/bin/msquic-config.cmake.in @@ -2,3 +2,9 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/msquic.cmake) + +foreach(_t IN ITEMS msquic msquic_platform) + if(TARGET msquic::${_t} AND NOT TARGET ${_t}) + add_library(${_t} ALIAS msquic::${_t}) + endif() +endforeach()