Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 0 additions & 67 deletions ports/ms-quic/fix-install.patch

This file was deleted.

99 changes: 52 additions & 47 deletions ports/ms-quic/fix-platform.patch
Original file line number Diff line number Diff line change
@@ -1,56 +1,61 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b670cf..f94f4c6 100644
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 999711e..46399d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -309,7 +309,7 @@ if(WIN32)
endif()
@@ -525,7 +525,7 @@ if(WIN32)
set(CMAKE_VS_SDK_LIBRARY_DIRECTORIES "$(LibraryPath);$(VC_LibraryPath_VC_${SYSTEM_PROCESSOR}_Desktop)")
else()
# Just doing a normal build. Use the PGD file if present.
- if(EXISTS "${QUIC_PGO_FILE}")
+ if(FALSE)
message(STATUS "Using profile-guided optimization")
configure_file("${QUIC_PGO_FILE}" "${QUIC_OUTPUT_DIR}/msquic.pgd" COPYONLY)
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /USEPROFILE:PGD=${QUIC_OUTPUT_DIR}/msquic.pgd")
@@ -387,21 +387,29 @@ endif()
if(QUIC_TLS STREQUAL "openssl")
if (WIN32)
if (QUIC_UWP_BUILD)
- message(FATAL_ERROR "UWP is not supported with OpenSSL")
- endif()
-
- if (${CMAKE_GENERATOR_PLATFORM} STREQUAL "arm64")
- set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM")
- elseif (${CMAKE_GENERATOR_PLATFORM} STREQUAL "arm")
- set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM")
- elseif (${CMAKE_GENERATOR_PLATFORM} STREQUAL "Win32")
- set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32")
- elseif (${CMAKE_GENERATOR_PLATFORM} STREQUAL "x64")
- set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A")
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ONECORE")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A-ONECORE")
+ endif()
else()
- message(FATAL_ERROR "Unknown Generator Platform ${CMAKE_GENERATOR_PLATFORM}")
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A")
+ endif()
+ endif()
+ if(NOT DEFINED QUIC_OPENSSL_WIN_ARCH)
+ message(FATAL_ERROR "Unknown Platform ${VCPKG_TARGET_ARCHITECTURE}")
file(MAKE_DIRECTORY ${QUIC_PGO_DIR})
configure_file("${QUIC_PGO_FILE}" "${QUIC_PGO_DIR}/msquic.pgd" COPYONLY)
diff --git a/submodules/CMakeLists.txt b/submodules/CMakeLists.txt
index deadd19..3616eac 100644
--- a/submodules/CMakeLists.txt
+++ b/submodules/CMakeLists.txt
@@ -53,31 +53,29 @@ if (WIN32)

if (QUIC_UWP_BUILD)
# Translate target architecture into corresponding OpenSSL build flag
- if (${SYSTEM_PROCESSOR} STREQUAL "arm64")
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM")
Comment thread
FrankXie05 marked this conversation as resolved.
- elseif (${SYSTEM_PROCESSOR} STREQUAL "arm")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM")
- elseif (${SYSTEM_PROCESSOR} STREQUAL "win32")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ONECORE")
- elseif (${SYSTEM_PROCESSOR} STREQUAL "x64" OR ${SYSTEM_PROCESSOR} STREQUAL "amd64")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A-ONECORE")
- else()
- message(FATAL_ERROR "Unknown Generator Platform ${SYSTEM_PROCESSOR}")
endif()
-
set(OPENSSL_DIR ${QUIC_BUILD_DIR}/openssl)
else()
- # Translate target architecture into corresponding OpenSSL build flag
- if (${SYSTEM_PROCESSOR} STREQUAL "arm64")
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM")
- elseif (${SYSTEM_PROCESSOR} STREQUAL "arm")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM")
- elseif (${SYSTEM_PROCESSOR} STREQUAL "win32")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32")
- elseif (${SYSTEM_PROCESSOR} STREQUAL "x64" OR ${SYSTEM_PROCESSOR} STREQUAL "amd64")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A")
- else()
- message(FATAL_ERROR "Unknown Generator Platform ${SYSTEM_PROCESSOR}")
endif()
endif()
+ if(NOT DEFINED QUIC_OPENSSL_WIN_ARCH)
+ message(FATAL_ERROR "Unknown Platform ${VCPKG_TARGET_ARCHITECTURE}")
+ endif()

set(OPENSSL_EXTRA_CONFIGURE_ARGS "")

add_library(OpenSSL_Crypto STATIC IMPORTED)

20 changes: 10 additions & 10 deletions ports/ms-quic/fix-warnings.patch
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f5abcb..aeae310 100644
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 397e35e..999711e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -184,7 +184,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${QUIC_OUTPUT_DIR})
@@ -203,7 +203,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${QUIC_OUTPUT_DIR})
set(QUIC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/inc)

if (WIN32)
- set(QUIC_WARNING_FLAGS /WX /W4 /sdl CACHE INTERNAL "")
- set(QUIC_WARNING_FLAGS /WX /W4 /sdl /wd4206 CACHE INTERNAL "")
+ set(QUIC_WARNING_FLAGS /W4 /sdl CACHE INTERNAL "")
set(QUIC_COMMON_FLAGS "")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
list(APPEND QUIC_COMMON_FLAGS /MP)
@@ -193,7 +193,7 @@ if (WIN32)
else()
set(QUIC_COMMON_FLAGS "")
set(QUIC_COMMON_DEFINES _GNU_SOURCE)

include(CheckCCompilerFlag)
@@ -306,7 +306,7 @@ else()
if (HAS_SYSCTL)
list(APPEND QUIC_COMMON_DEFINES HAS_SYSCTL)
endif()
- set(QUIC_WARNING_FLAGS -Werror -Wall -Wextra -Wformat=2 -Wno-type-limits
+ set(QUIC_WARNING_FLAGS -Wall -Wextra -Wformat=2 -Wno-type-limits
-Wno-unknown-pragmas -Wno-multichar -Wno-missing-field-initializers
Expand Down
78 changes: 43 additions & 35 deletions ports/ms-quic/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH QUIC_SOURCE_PATH
REPO microsoft/msquic
REF v1.2.0
SHA512 6f63d42d950cbba88764332b31818a8627e7d3ecf7393cdef77daedd35a7bb04ac39c642991afb7cca502a346999233023e3b36011916c67e348179838aa7042
REF "v${VERSION}"
SHA512 6590a18ec698cffc1c9639a2bd25f38d8786f46395dc217ddcb60b08ccf22da759df9bc4833fc621b97cf5418898f8b5125a409bac05d9bec8560722e7935c03
HEAD_REF master
PATCHES
fix-warnings.patch # Remove /WX, -Werror
fix-platform.patch # Make OpenSSL build use VCPKG_TARGET_ARCHITECTURE
fix-install.patch # Adjust install path of build outputs
)

vcpkg_from_github(
Expand All @@ -19,51 +18,50 @@ vcpkg_from_github(
SHA512 23510a11203b96476c194a1987c7d4e758375adef0f6dfe319cd8ec4b8dd9b12ea64c4099cf3ba35722b992dad75afb1cfc5126489a5fa59f5ee4d46bdfbeaf6
HEAD_REF OpenSSL_1_1_1k+quic
)
file(REMOVE_RECURSE ${QUIC_SOURCE_PATH}/submodules)
file(MAKE_DIRECTORY ${QUIC_SOURCE_PATH}/submodules)
file(RENAME ${OPENSSL_SOURCE_PATH} ${QUIC_SOURCE_PATH}/submodules/openssl)

vcpkg_find_acquire_program(PERL)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
vcpkg_add_to_path(${PERL_EXE_PATH})
file(REMOVE_RECURSE "${QUIC_SOURCE_PATH}/submodules/openssl")
file(RENAME "${OPENSSL_SOURCE_PATH}" "${QUIC_SOURCE_PATH}/submodules/openssl")

if(NOT VCPKG_HOST_IS_WINDOWS)
find_program(MAKE make)
get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY)
vcpkg_add_to_path(PREPEND ${MAKE_EXE_PATH})
endif()
if(VCPKG_TARGET_IS_WINDOWS)
LIST(APPEND QUIC_TLS "schannel")
else()
LIST(APPEND QUIC_TLS "openssl")
Comment on lines +25 to +28
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using schannel limits msquic to Windows 11 only and as per docs This configuration does not support 0-RTT due to Schannel's current lack of support.. I think it makes more sense to still default to openssl even for Windows.


if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
vcpkg_add_to_path(PREPEND ${NASM_EXE_PATH})
endif()
vcpkg_find_acquire_program(PERL)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
vcpkg_add_to_path(${PERL_EXE_PATH})

vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
vcpkg_add_to_path(PREPEND ${NASM_EXE_PATH})
endif()

vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools QUIC_BUILD_TOOLS
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT)

vcpkg_cmake_configure(
SOURCE_PATH ${QUIC_SOURCE_PATH}
SOURCE_PATH "${QUIC_SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE
OPTIONS
${FEATURE_OPTIONS}
-DQUIC_SOURCE_LINK=OFF
-DQUIC_TLS=openssl
-DQUIC_TLS_SECRETS_SUPPORT=ON
-DQUIC_TLS=${QUIC_TLS}
-DQUIC_USE_SYSTEM_LIBCRYPTO=OFF
-DQUIC_BUILD_PERF=OFF
-DQUIC_BUILD_TEST=OFF
-DQUIC_STATIC_LINK_CRT=${STATIC_CRT}
-DQUIC_BUILD_SHARED=ON
-DQUIC_UWP_BUILD=${VCPKG_TARGET_IS_UWP}
)

vcpkg_cmake_build(TARGET OpenSSL_Build) # separate build log for quictls/openssl
if(NOT VCPKG_HOST_IS_WINDOWS)
find_program(MAKE make)
get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY)
vcpkg_add_to_path(PREPEND ${MAKE_EXE_PATH})
endif()

#vcpkg_cmake_build(TARGET OpenSSL_Build) # separate build log for quictls/openssl
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME msquic CONFIG_PATH lib/cmake/msquic)
vcpkg_cmake_config_fixup(PACKAGE_NAME msquic CONFIG_PATH "share/msquic")

if("tools" IN_LIST FEATURES)
vcpkg_copy_tools(TOOL_NAMES quicattack quicinterop quicinteropserver quicipclient quicipserver
Expand All @@ -72,9 +70,19 @@ if("tools" IN_LIST FEATURES)
)
endif()

file(INSTALL ${QUIC_SOURCE_PATH}/LICENSE
DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright
)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share
${CURRENT_PACKAGES_DIR}/debug/include
vcpkg_install_copyright(FILE_LIST "${QUIC_SOURCE_PATH}/LICENSE")

if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/msquic.dll")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/msquic.dll" "${CURRENT_PACKAGES_DIR}/bin/msquic.dll")
endif()

if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/msquic.dll")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/msquic.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/msquic.dll")
endif()

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/debug/include"
)

2 changes: 1 addition & 1 deletion ports/ms-quic/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ms-quic",
"version": "1.2.0",
"version": "2.2.0",
"description": "Cross-platform, C implementation of the IETF QUIC protocol",
"homepage": "https://github.com/microsoft/msquic",
"license": "MIT",
Expand Down
5 changes: 0 additions & 5 deletions scripts/ci.baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -982,12 +982,7 @@ ms-gdkx:x64-windows-static-md=fail
ms-gltf:arm-neon-android=fail
ms-gltf:arm64-android=fail
ms-gltf:x64-android=fail
ms-quic:arm-uwp=fail
ms-quic:arm64-windows=fail
ms-quic:x64-uwp=fail
ms-quic:x64-windows-static-md=fail
ms-quic:x64-windows=fail
ms-quic:x86-windows=fail
monkeys-audio:arm64-windows=fail
monkeys-audio:x64-windows-static=fail
moos-core:arm-uwp=fail
Expand Down
2 changes: 1 addition & 1 deletion versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -5413,7 +5413,7 @@
"port-version": 0
},
"ms-quic": {
"baseline": "1.2.0",
"baseline": "2.2.0",
"port-version": 0
},
"msdfgen": {
Expand Down
5 changes: 5 additions & 0 deletions versions/m-/ms-quic.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "99a91eae18aecfb633c1de92757d2d537bd571d0",
"version": "2.2.0",
"port-version": 0
},
{
"git-tree": "3188e024233a7d1772922bc11d29d912c6427e25",
"version": "1.2.0",
Expand Down