From 8021063a495f5074c2adcdc00cf155935dc35c04 Mon Sep 17 00:00:00 2001 From: Christian Ullrich Date: Mon, 7 Feb 2022 14:05:49 +0100 Subject: [PATCH] Build Boost with _WIN32_WINNT=_WIN32_WINNT_WIN10. In addition to a new pair of triplets ({x86,x64}-windows-win10) this requires patching Boost.Log to add an import library. See https://github.com/boostorg/log/issues/177 for details. --- ports/boost-log/portfile.cmake | 3 +++ ports/boost-log/synchronization-lib.patch | 12 ++++++++++++ ports/boost-log/synchronization-lib2.patch | 22 ++++++++++++++++++++++ triplets/x64-windows-win10.cmake | 6 ++++++ triplets/x86-windows-win10.cmake | 6 ++++++ 5 files changed, 49 insertions(+) create mode 100644 ports/boost-log/synchronization-lib.patch create mode 100644 ports/boost-log/synchronization-lib2.patch create mode 100644 triplets/x64-windows-win10.cmake create mode 100644 triplets/x86-windows-win10.cmake diff --git a/ports/boost-log/portfile.cmake b/ports/boost-log/portfile.cmake index fdeb4e6713..22bf38d088 100644 --- a/ports/boost-log/portfile.cmake +++ b/ports/boost-log/portfile.cmake @@ -6,6 +6,9 @@ vcpkg_from_github( REF boost-${VERSION} SHA512 aaae39126ae047721f71b7a55dc7a325af78c9af0b4e2d6f6d0cd7a440a0dc839acfa683c6dcb736434819e205e9d95ead56364dec60d069367d9976a45c4d17 HEAD_REF master + PATCHES + "synchronization-lib.patch" + "synchronization-lib2.patch" ) set(FEATURE_OPTIONS "") diff --git a/ports/boost-log/synchronization-lib.patch b/ports/boost-log/synchronization-lib.patch new file mode 100644 index 0000000000..6db64f4471 --- /dev/null +++ b/ports/boost-log/synchronization-lib.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1d7df88..a22d546 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -330,6 +330,7 @@ if (WIN32 OR CYGWIN) + ws2_32 + mswsock + advapi32 ++ synchronization + ) + endif() + diff --git a/ports/boost-log/synchronization-lib2.patch b/ports/boost-log/synchronization-lib2.patch new file mode 100644 index 0000000000..57c994bf5d --- /dev/null +++ b/ports/boost-log/synchronization-lib2.patch @@ -0,0 +1,22 @@ +diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 +index c1555a3..eaed8a6 100644 +--- a/build/Jamfile.v2 ++++ b/build/Jamfile.v2 +@@ -32,7 +32,8 @@ lib advapi32 ; + lib secur32 ; + lib ws2_32 ; + lib mswsock ; +-explicit psapi advapi32 secur32 ws2_32 mswsock ; ++lib synchronization ; ++explicit psapi advapi32 secur32 ws2_32 mswsock synchronization ; + + # UNIX libs + lib rt ; +@@ -212,6 +213,7 @@ project boost/log + windows:ws2_32 + windows:mswsock + windows:advapi32 ++ windows:synchronization + + cygwin:BOOST_USE_WINDOWS_H + # Boost.Interprocess does not compile on Cygwin: https://github.com/boostorg/interprocess/issues/76 diff --git a/triplets/x64-windows-win10.cmake b/triplets/x64-windows-win10.cmake new file mode 100644 index 0000000000..14ac09fae6 --- /dev/null +++ b/triplets/x64-windows-win10.cmake @@ -0,0 +1,6 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} /DBOOST_USE_WINAPI_VERSION=0x0602 /D_WIN32_WINNT=0x0602 /DWINVER=0x0602") +set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} /DBOOST_USE_WINAPI_VERSION=0x0602 /D_WIN32_WINNT=0x0602 /DWINVER=0x0602") diff --git a/triplets/x86-windows-win10.cmake b/triplets/x86-windows-win10.cmake new file mode 100644 index 0000000000..cb1f72336f --- /dev/null +++ b/triplets/x86-windows-win10.cmake @@ -0,0 +1,6 @@ +set(VCPKG_TARGET_ARCHITECTURE x86) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} /DBOOST_USE_WINAPI_VERSION=0x0602 /D_WIN32_WINNT=0x0602 /DWINVER=0x0602") +set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} /DBOOST_USE_WINAPI_VERSION=0x0602 /D_WIN32_WINNT=0x0602 /DWINVER=0x0602")