mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-28 11:21:12 +08:00
[qt5-webengine] fix nonobvious failure (#24528)
* [qt5-webengine] Manually add nodejs to the path (microsoft#23574) The build process requires nodejs to be in PATH when webengine is built, and will build only the pdf-plugin if it's not (see #23574) * [qt5-webengine] Workaround MSVC2022 Internal Compiler Error (microsoft#23574) Add a patch based on https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/407582 which was merged into upstream. We can't take the upstream patch directly, because the patch was committed to the chromium (sub)repository which is a subdirectory in the release zip file, i.e. I had to modify the pathnames for the patch to apply * [qt5-webengine] Update diagnostics (microsoft#23574) I've spotted the linker using 16GB singlehandedly on the release (opposed to "debug") packaging, and emory consumption was almost permanently over 32GB while compiling, though peak memory consumption can be reduced by setting up low values for VCPKG_MAX_CONCURRENY Also, reword the build-prefix-too-long message * [qt5-webengine] Attempt enabling windows ci baselines (microsoft#23574) * [qt5-webengine] Regenerate version registries (microsoft#23574) * Also remove out of date comments from ci.baseline.txt referring to deleted lines. * Revert "Also remove out of date comments from ci.baseline.txt referring to deleted lines." This reverts commit 7a4d84643102231bf8e60f2340db970c8775a607. * [qt5-webengine] Re-add webengine blacklisting to ci.baseline (microsoft#23574) Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
This commit is contained in:
parent
f27af0410e
commit
63f1d5b4d0
@ -2,12 +2,13 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
|
|||||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length)
|
string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length)
|
||||||
if(buildtrees_path_length GREATER 35 AND CMAKE_HOST_WIN32)
|
if(buildtrees_path_length GREATER 35 AND CMAKE_HOST_WIN32)
|
||||||
vcpkg_buildpath_length_warning(35)
|
vcpkg_buildpath_length_warning(35)
|
||||||
message(FATAL_ERROR "terminating due to source length.")
|
message(WARNING "The ${PORT} source was will be extracted to ${CURRENT_BUILDTREES_DIR} , which has more then 35 characters in length.")
|
||||||
|
message(FATAL_ERROR "terminating due to ${CURRENT_BUILDTREES_DIR} being too long.")
|
||||||
endif()
|
endif()
|
||||||
#set(VCPKG_BUILD_TYPE release) #You probably want to set this to reduce build type and space requirements
|
#set(VCPKG_BUILD_TYPE release) #You probably want to set this to reduce build type and space requirements
|
||||||
message(STATUS "${PORT} requires a lot of free disk space (>100GB), ram (>8 GB) and time (>2h per configuration) to be successfully build.\n\
|
message(STATUS "${PORT} requires a lot of free disk space (>100GB), ram (>8 GB) and time (>2h per configuration) to be successfully build.\n\
|
||||||
-- As such ${PORT} is currently experimental.\n\
|
-- As such ${PORT} is currently experimental.\n\
|
||||||
-- If ${PORT} fails post build validation please open up an issue. \n\
|
-- If ${PORT} fails post build validation please try manually reducing VCPKG_MAX_CONCURRENY and open up an issue if it still cannot build. \n\
|
||||||
-- If it fails due to post validation the successfully installed files can be found in ${CURRENT_PACKAGES_DIR} \n\
|
-- If it fails due to post validation the successfully installed files can be found in ${CURRENT_PACKAGES_DIR} \n\
|
||||||
-- and just need to be copied into ${CURRENT_INSTALLED_DIR}")
|
-- and just need to be copied into ${CURRENT_INSTALLED_DIR}")
|
||||||
if(NOT VCPKG_TARGET_IS_WINDOWS)
|
if(NOT VCPKG_TARGET_IS_WINDOWS)
|
||||||
@ -20,11 +21,13 @@ vcpkg_find_acquire_program(BISON)
|
|||||||
vcpkg_find_acquire_program(GPERF)
|
vcpkg_find_acquire_program(GPERF)
|
||||||
vcpkg_find_acquire_program(PYTHON2)
|
vcpkg_find_acquire_program(PYTHON2)
|
||||||
vcpkg_find_acquire_program(NINJA)
|
vcpkg_find_acquire_program(NINJA)
|
||||||
|
set(NODEJS "${CURRENT_HOST_INSTALLED_DIR}/tools/node/node${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||||
get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY )
|
get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY )
|
||||||
get_filename_component(BISON_DIR "${BISON}" DIRECTORY )
|
get_filename_component(BISON_DIR "${BISON}" DIRECTORY )
|
||||||
get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY )
|
get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY )
|
||||||
get_filename_component(GPERF_DIR "${GPERF}" DIRECTORY )
|
get_filename_component(GPERF_DIR "${GPERF}" DIRECTORY )
|
||||||
get_filename_component(NINJA_DIR "${NINJA}" DIRECTORY )
|
get_filename_component(NINJA_DIR "${NINJA}" DIRECTORY )
|
||||||
|
get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY )
|
||||||
|
|
||||||
if(WIN32) # WIN32 HOST probably has win_flex and win_bison!
|
if(WIN32) # WIN32 HOST probably has win_flex and win_bison!
|
||||||
if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||||
@ -40,11 +43,13 @@ vcpkg_add_to_path(PREPEND "${BISON_DIR}")
|
|||||||
vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}")
|
vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}")
|
||||||
vcpkg_add_to_path(PREPEND "${GPERF_DIR}")
|
vcpkg_add_to_path(PREPEND "${GPERF_DIR}")
|
||||||
vcpkg_add_to_path(PREPEND "${NINJA_DIR}")
|
vcpkg_add_to_path(PREPEND "${NINJA_DIR}")
|
||||||
|
vcpkg_add_to_path(PREPEND "${NODEJS_DIR}")
|
||||||
|
|
||||||
set(PATCHES common.pri.patch
|
set(PATCHES common.pri.patch
|
||||||
gl.patch
|
gl.patch
|
||||||
build_1.patch
|
build_1.patch
|
||||||
build_2.patch)
|
build_2.patch
|
||||||
|
workaround-msvc2022-ice.patch)
|
||||||
|
|
||||||
set(OPTIONS)
|
set(OPTIONS)
|
||||||
if("proprietary-codecs" IN_LIST FEATURES)
|
if("proprietary-codecs" IN_LIST FEATURES)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "qt5-webengine",
|
"name": "qt5-webengine",
|
||||||
"version": "5.15.4",
|
"version": "5.15.4",
|
||||||
|
"port-version": 1,
|
||||||
"description": "Qt5 webengine Module;",
|
"description": "Qt5 webengine Module;",
|
||||||
"license": null,
|
"license": null,
|
||||||
"supports": "!static",
|
"supports": "!static",
|
||||||
@ -23,7 +24,8 @@
|
|||||||
"qt5-quickcontrols",
|
"qt5-quickcontrols",
|
||||||
"qt5-quickcontrols2",
|
"qt5-quickcontrols2",
|
||||||
"qt5-tools",
|
"qt5-tools",
|
||||||
"qt5-webchannel"
|
"qt5-webchannel",
|
||||||
|
"vcpkg-tool-nodejs"
|
||||||
],
|
],
|
||||||
"features": {
|
"features": {
|
||||||
"proprietary-codecs": {
|
"proprietary-codecs": {
|
||||||
|
101
ports/qt5-webengine/workaround-msvc2022-ice.patch
Normal file
101
ports/qt5-webengine/workaround-msvc2022-ice.patch
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
--- a/src/3rdparty/chromium/base/hash/md5_constexpr_internal.h
|
||||||
|
+++ b/src/3rdparty/chromium/base/hash/md5_constexpr_internal.h
|
||||||
|
@@ -281,15 +281,63 @@ struct MD5CE {
|
||||||
|
return IntermediateDataToMD5Digest(ProcessMessage(data, n));
|
||||||
|
}
|
||||||
|
|
||||||
|
- static constexpr uint64_t Hash64(const char* data, uint32_t n) {
|
||||||
|
- IntermediateData intermediate = ProcessMessage(data, n);
|
||||||
|
- return (static_cast<uint64_t>(SwapEndian(intermediate.a)) << 32) |
|
||||||
|
- static_cast<uint64_t>(SwapEndian(intermediate.b));
|
||||||
|
+ static constexpr uint64_t Hash64(const char* message, uint32_t n) {
|
||||||
|
+ const uint32_t m = GetPaddedMessageLength(n);
|
||||||
|
+ IntermediateData intermediate0 = kInitialIntermediateData;
|
||||||
|
+ for (uint32_t offset = 0; offset < m; offset += 64) {
|
||||||
|
+ RoundData data = {
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 4),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 8),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 12),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 16),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 20),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 24),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 28),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 32),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 36),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 40),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 44),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 48),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 52),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 56),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 60)};
|
||||||
|
+ IntermediateData intermediate1 = intermediate0;
|
||||||
|
+ for (uint32_t i = 0; i < 64; ++i)
|
||||||
|
+ intermediate1 = ApplyStep(i, data, intermediate1);
|
||||||
|
+ intermediate0 = Add(intermediate0, intermediate1);
|
||||||
|
+ }
|
||||||
|
+ return (static_cast<uint64_t>(SwapEndian(intermediate0.a)) << 32) |
|
||||||
|
+ static_cast<uint64_t>(SwapEndian(intermediate0.b));
|
||||||
|
}
|
||||||
|
|
||||||
|
- static constexpr uint32_t Hash32(const char* data, uint32_t n) {
|
||||||
|
- IntermediateData intermediate = ProcessMessage(data, n);
|
||||||
|
- return SwapEndian(intermediate.a);
|
||||||
|
+ static constexpr uint32_t Hash32(const char* message, uint32_t n) {
|
||||||
|
+ const uint32_t m = GetPaddedMessageLength(n);
|
||||||
|
+ IntermediateData intermediate0 = kInitialIntermediateData;
|
||||||
|
+ for (uint32_t offset = 0; offset < m; offset += 64) {
|
||||||
|
+ RoundData data = {
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 4),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 8),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 12),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 16),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 20),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 24),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 28),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 32),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 36),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 40),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 44),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 48),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 52),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 56),
|
||||||
|
+ GetPaddedMessageWord(message, n, m, offset + 60)};
|
||||||
|
+ IntermediateData intermediate1 = intermediate0;
|
||||||
|
+ for (uint32_t i = 0; i < 64; ++i)
|
||||||
|
+ intermediate1 = ApplyStep(i, data, intermediate1);
|
||||||
|
+ intermediate0 = Add(intermediate0, intermediate1);
|
||||||
|
+ }
|
||||||
|
+ return SwapEndian(intermediate0.a);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
--- a/src/3rdparty/chromium/net/third_party/quiche/src/quic/core/quic_versions.h
|
||||||
|
+++ b/src/3rdparty/chromium/net/third_party/quiche/src/quic/core/quic_versions.h
|
||||||
|
@@ -26,6 +26,7 @@
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
+#include "absl/base/macros.h"
|
||||||
|
#include "net/third_party/quiche/src/quic/core/quic_tag.h"
|
||||||
|
#include "net/third_party/quiche/src/quic/core/quic_types.h"
|
||||||
|
#include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
|
||||||
|
@@ -181,8 +182,14 @@ QUIC_EXPORT_PRIVATE constexpr bool ParsedQuicVersionIsValid(
|
||||||
|
transport_version == QUIC_VERSION_RESERVED_FOR_NEGOTIATION;
|
||||||
|
if (!transport_version_is_valid) {
|
||||||
|
// Iterators are not constexpr in C++14 which Chrome uses.
|
||||||
|
- constexpr auto supported_transport_versions = SupportedTransportVersions();
|
||||||
|
- for (size_t i = 0; i < supported_transport_versions.size(); ++i) {
|
||||||
|
+ constexpr QuicTransportVersion supported_transport_versions[] = {
|
||||||
|
+ QUIC_VERSION_IETF_DRAFT_29,
|
||||||
|
+ QUIC_VERSION_IETF_DRAFT_27,
|
||||||
|
+ QUIC_VERSION_51,
|
||||||
|
+ QUIC_VERSION_50,
|
||||||
|
+ QUIC_VERSION_46,
|
||||||
|
+ QUIC_VERSION_43};
|
||||||
|
+ for (size_t i = 0; i < ABSL_ARRAYSIZE(supported_transport_versions); ++i) {
|
||||||
|
const QuicTransportVersion& trans_vers = supported_transport_versions[i];
|
||||||
|
if (trans_vers == transport_version) {
|
||||||
|
transport_version_is_valid = true;
|
||||||
|
|
@ -5834,7 +5834,7 @@
|
|||||||
},
|
},
|
||||||
"qt5-webengine": {
|
"qt5-webengine": {
|
||||||
"baseline": "5.15.4",
|
"baseline": "5.15.4",
|
||||||
"port-version": 0
|
"port-version": 1
|
||||||
},
|
},
|
||||||
"qt5-webglplugin": {
|
"qt5-webglplugin": {
|
||||||
"baseline": "5.15.4",
|
"baseline": "5.15.4",
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"git-tree": "ac21a058fe59c5b0272cdfc2cc1791b9b9901a79",
|
||||||
|
"version": "5.15.4",
|
||||||
|
"port-version": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"git-tree": "f210713d4af04f690a79188949467c8ba9b2597e",
|
"git-tree": "f210713d4af04f690a79188949467c8ba9b2597e",
|
||||||
"version": "5.15.4",
|
"version": "5.15.4",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user