early-access version 2853
This commit is contained in:
94
externals/vcpkg/ports/qtwebengine/0ce5e91.diff
vendored
Executable file
94
externals/vcpkg/ports/qtwebengine/0ce5e91.diff
vendored
Executable file
@@ -0,0 +1,94 @@
|
||||
From 0ce5e91bdfa2cd7cac247911b9e8c4404c114937 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Varga <pvarga@inf.u-szeged.hu>
|
||||
Date: Thu, 21 Apr 2022 08:49:53 +0200
|
||||
Subject: [PATCH] Workaround MSVC2022 ICE in constexpr functions
|
||||
|
||||
It happens around initialization of STL containers in a constexpr
|
||||
function. In this case, aggregate initialization of std::array with
|
||||
double braces seems to cause the crash.
|
||||
|
||||
For some reason it doesn't seem to happen in 98-based. This workaround
|
||||
can be reverted after Microsoft fixes the issue:
|
||||
https://developercommunity.visualstudio.com/t/fatal-error-C1001:-Internal-compiler-err/1669485
|
||||
|
||||
Change-Id: I6bc2c71d328691cc74bc53c6d62f3d5df519b81e
|
||||
Pick-to: 90-based
|
||||
Fixes: QTBUG-101917
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
---
|
||||
|
||||
diff --git a/chromium/base/hash/md5_constexpr_internal.h b/chromium/base/hash/md5_constexpr_internal.h
|
||||
index b705bc8..5c9c004 100644
|
||||
--- a/chromium/base/hash/md5_constexpr_internal.h
|
||||
+++ b/chromium/base/hash/md5_constexpr_internal.h
|
||||
@@ -281,15 +281,63 @@
|
||||
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);
|
||||
}
|
||||
};
|
||||
|
138
externals/vcpkg/ports/qtwebengine/portfile.cmake
vendored
Executable file
138
externals/vcpkg/ports/qtwebengine/portfile.cmake
vendored
Executable file
@@ -0,0 +1,138 @@
|
||||
set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase")
|
||||
include("${SCRIPT_PATH}/qt_install_submodule.cmake")
|
||||
|
||||
set(TOOL_NAMES gn QtWebEngineProcess qwebengine_convert_dict)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
"proprietary-codecs" FEATURE_webengine_proprietary_codecs
|
||||
"spellchecker" FEATURE_webengine_spellchecker
|
||||
"geolocation" FEATURE_webengine_geolocation
|
||||
"webchannel" FEATURE_webengine_webchannel
|
||||
"geolocation" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Positioning
|
||||
"webchannel" CMAKE_REQUIRE_FIND_PACKAGE_Qt6WebChannel
|
||||
INVERTED_FEATURES
|
||||
"geolocation" CMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning
|
||||
"webchannel" CMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel
|
||||
)
|
||||
|
||||
if(VCPKG_TARGET_IS_OSX AND "spellchecker" IN_LIST FEATRUES)
|
||||
list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_native_spellchecker=ON")
|
||||
endif()
|
||||
|
||||
# webengine-extensions
|
||||
# webengine-printing-and-pdf
|
||||
# webengine-pepper-plugins
|
||||
set(deactivated_features webengine_webrtc_pipewire)
|
||||
foreach(_feat IN LISTS deactivated_features)
|
||||
list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=OFF")
|
||||
endforeach()
|
||||
set(enabled_features webengine_webrtc webengine_v8_snapshot_support)
|
||||
foreach(_feat IN LISTS enabled_features)
|
||||
list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=ON")
|
||||
endforeach()
|
||||
|
||||
if(VCPKG_TARGET_IS_LINUX)
|
||||
# qt_configure_add_summary_entry(ARGS "webengine-system-lcms2")
|
||||
# qt_configure_add_summary_entry(ARGS "webengine-system-libpci")
|
||||
# + ALSA and PULSEAUDIO
|
||||
set(system_libs re2 icu libwebp opus ffmpeg libvpx snappy glib zlib minizip libevent protobuf libxml libpng libjpeg harfbuzz freetype)
|
||||
foreach(_sys_lib IN LISTS system_libs)
|
||||
list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_system_${_sys_lib}=ON")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
vcpkg_find_acquire_program(FLEX)
|
||||
vcpkg_find_acquire_program(BISON)
|
||||
|
||||
#vcpkg_find_acquire_program(GN) # Qt builds its own internal version
|
||||
|
||||
find_program(NODEJS NAMES node PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/node" "bin" NO_DEFAULT_PATHS)
|
||||
find_program(NODEJS NAMES node)
|
||||
if(NOT NODEJS)
|
||||
message(FATAL_ERROR "node not found! Please install it via your system package manager!")
|
||||
endif()
|
||||
|
||||
get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY )
|
||||
vcpkg_add_to_path(PREPEND "${NODEJS_DIR}")
|
||||
get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY )
|
||||
vcpkg_add_to_path(PREPEND "${FLEX_DIR}")
|
||||
get_filename_component(BISON_DIR "${BISON}" DIRECTORY )
|
||||
vcpkg_add_to_path(PREPEND "${BISON_DIR}")
|
||||
|
||||
if(NOT QT_IS_LATEST)
|
||||
vcpkg_find_acquire_program(PYTHON2)
|
||||
get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY )
|
||||
vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}")
|
||||
list(APPEND FEATURE_OPTIONS "-DPython2_EXECUTABLE=${PYTHON2}")
|
||||
else()
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
x_vcpkg_get_python_packages(PYTHON_EXECUTABLE "${PYTHON3}" PACKAGES html5lib)
|
||||
endif()
|
||||
|
||||
vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf")
|
||||
set(GPERF "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
|
||||
if(WIN32) # WIN32 HOST probably has win_flex and win_bison!
|
||||
if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
file(CREATE_LINK "${FLEX}" "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
endif()
|
||||
if(NOT EXISTS "${BISON_DIR}/BISON${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
file(CREATE_LINK "${BISON}" "${BISON_DIR}/bison${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length)
|
||||
# We know that C:/buildrees/${PORT} is to long to build Release. Debug works however. Means 24 length is too much but 23 might work.
|
||||
if(buildtree_length GREATER 22 AND VCPKG_TARGET_IS_WINDOWS)
|
||||
message(WARNING "Buildtree path '${CURRENT_BUILDTREES_DIR}' is too long.\nConsider passing --x-buildtrees-root=<shortpath> to vcpkg!\nTrying to use '${CURRENT_BUILDTREES_DIR}/../tmp'")
|
||||
set(CURRENT_BUILDTREES_DIR "${CURRENT_BUILDTREES_DIR}/../tmp") # activly avoid long path issues in CI. -> Means CI will not return logs
|
||||
cmake_path(NORMAL_PATH CURRENT_BUILDTREES_DIR)
|
||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length_new)
|
||||
if(buildtree_length_new GREATER 22)
|
||||
message(FATAL_ERROR "Buildtree path is too long. Build will fail! Pass --x-buildtrees-root=<shortpath> to vcpkg!")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}")
|
||||
endif()
|
||||
|
||||
### Download third_party modules
|
||||
vcpkg_from_git(
|
||||
OUT_SOURCE_PATH SOURCE_PATH_WEBENGINE
|
||||
URL git://code.qt.io/qt/qtwebengine-chromium.git
|
||||
REF "${${PORT}_chromium_REF}"
|
||||
PATCHES
|
||||
0ce5e91.diff
|
||||
)
|
||||
|
||||
##### qt_install_submodule
|
||||
set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins)
|
||||
set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml)
|
||||
|
||||
qt_download_submodule(PATCHES ${${PORT}_PATCHES})
|
||||
if(QT_UPDATE_VERSION)
|
||||
return()
|
||||
endif()
|
||||
if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/chromium")
|
||||
file(RENAME "${SOURCE_PATH_WEBENGINE}/chromium" "${SOURCE_PATH}/src/3rdparty/chromium")
|
||||
endif()
|
||||
if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/gn")
|
||||
file(RENAME "${SOURCE_PATH_WEBENGINE}/gn" "${SOURCE_PATH}/src/3rdparty/gn")
|
||||
endif()
|
||||
|
||||
qt_cmake_configure( DISABLE_PARALLEL_CONFIGURE # due to in source changes.
|
||||
OPTIONS ${FEATURE_OPTIONS}
|
||||
-DGPerf_EXECUTABLE=${GPERF}
|
||||
-DBISON_EXECUTABLE=${BISON}
|
||||
-DFLEX_EXECUTABLE=${FLEX}
|
||||
#-DGn_EXECUTABLE=${GN}
|
||||
-DNodejs_EXECUTABLE=${NODEJS}
|
||||
OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG}
|
||||
OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE})
|
||||
|
||||
vcpkg_cmake_install(ADD_BIN_TO_PATH)
|
||||
|
||||
qt_fixup_and_cleanup(TOOL_NAMES ${TOOL_NAMES})
|
||||
|
||||
qt_install_copyright("${SOURCE_PATH}")
|
||||
|
||||
##### qt_install_submodule
|
160
externals/vcpkg/ports/qtwebengine/vcpkg.json
vendored
Executable file
160
externals/vcpkg/ports/qtwebengine/vcpkg.json
vendored
Executable file
@@ -0,0 +1,160 @@
|
||||
{
|
||||
"$comment": "x86-windows is not within the upstream support matrix of Qt6",
|
||||
"name": "qtwebengine",
|
||||
"version": "6.3.0",
|
||||
"port-version": 2,
|
||||
"description": "Qt WebEngine",
|
||||
"homepage": "https://www.qt.io/",
|
||||
"license": null,
|
||||
"supports": "!static & !((arm | x86) & windows)",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "ffmpeg",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "fontconfig",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "freetype",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "glib",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "gperf",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "harfbuzz",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "icu",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libevent",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libjpeg-turbo",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libpng",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libvpx",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libwebp",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "libxml2",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "minizip",
|
||||
"platform": "!windows"
|
||||
},
|
||||
"opengl-registry",
|
||||
{
|
||||
"name": "opus",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "protobuf",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "qtbase",
|
||||
"default-features": false,
|
||||
"features": [
|
||||
"gui",
|
||||
"network",
|
||||
"widgets"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "qtdeclarative",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "qtdeclarative",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "qttools",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"$comment": "Requires GN host tool build by the port itself! (special version check)",
|
||||
"name": "qtwebengine",
|
||||
"host": true,
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "re2",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "snappy",
|
||||
"platform": "!windows"
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-get-python-packages",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-tool-nodejs",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-tool-python2",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "zlib",
|
||||
"platform": "!windows"
|
||||
}
|
||||
],
|
||||
"default-features": [
|
||||
"default-features"
|
||||
],
|
||||
"features": {
|
||||
"default-features": {
|
||||
"description": "Platform-dependent default features"
|
||||
},
|
||||
"geolocation": {
|
||||
"description": "Build with Geolocation",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "qtlocation",
|
||||
"default-features": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"proprietary-codecs": {
|
||||
"description": "Enables the use of proprietary codecs such as h.264/h.265 and MP3."
|
||||
},
|
||||
"spellchecker": {
|
||||
"description": "Provides a spellchecker"
|
||||
},
|
||||
"webchannel": {
|
||||
"description": "Provides QtWebChannel integration",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "qtwebchannel",
|
||||
"default-features": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user