Commit 3a3bcc45 authored by Pierre Lamot's avatar Pierre Lamot
Browse files

contrib: qt: update qt version to 5.15.1

  Qt 5.15 provide better startup performances on windows.
  This doesn't impact the qt minimal requirement to build VLC.
parent d0089999
From cf632f7a1a3a36b91d16ac9019620434ebda9e24 Mon Sep 17 00:00:00 2001
From: VideoLAN Buildbot <buildbot@videolan.org>
Date: Tue, 13 Feb 2018 09:31:44 +0000
Subject: [PATCH 1/2] Windows QPA: prefer lower value when rounding fractional
scaling
---
src/plugins/platforms/windows/qwindowsscreen.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp
index d56dc870ea..51c321f867 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.cpp
+++ b/src/plugins/platforms/windows/qwindowsscreen.cpp
@@ -260,7 +260,7 @@ qreal QWindowsScreen::pixelDensity() const
// the pixel density since it is reflects the Windows UI scaling.
// High DPI auto scaling should be disabled when the user chooses
// small fonts on a High DPI monitor, resulting in lower logical DPI.
- return qMax(1, qRound(logicalDpi().first / 96));
+ return qMax(1., ceil(logicalDpi().first / 96. - 0.5));
}
/*!
--
2.15.2 (Apple Git-101.1)
......@@ -15,8 +15,8 @@
#endif
Q_CORE_EXPORT void qDetectCpuFeatures();
-#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND)
+#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) && 0 // mingw32 32-bits crash
Q_CORE_EXPORT qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW;
-#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) && !defined(QT_BOOTSTRAPPED)
+#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) && !defined(QT_BOOTSTRAPPED) && 0 // mingw32 32-bits crash
Q_CORE_EXPORT qsizetype qRandomCpu(void *, qsizetype) noexcept;
#else
static inline qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW
static inline qsizetype qRandomCpu(void *, qsizetype) noexcept
......@@ -30,8 +30,8 @@ index 44140bc..53f4984 100644
"angle": {
"label": "ANGLE",
"autoDetect": "features.opengles2 || features.opengl-dynamic",
- "condition": "features.dxguid && tests.fxc && (features.direct3d9 || (config.winrt && features.direct3d11 && libs.d3dcompiler))",
+ "condition": "features.dxguid && tests.fxc && (features.direct3d9 || (features.direct3d11 && libs.d3dcompiler))",
- "condition": "!features.opengl-desktop && features.dxguid && tests.fxc && (features.direct3d9 || (config.winrt && features.direct3d11 && libs.d3dcompiler))",
+ "condition": "!features.opengl-desktop && features.dxguid && tests.fxc && (features.direct3d9 || (features.direct3d11 && libs.d3dcompiler))",
"output": [
"publicFeature",
{ "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" },
......
From 983132212c7f3541a8c5fbaf4c5309d92345107f Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@qt.io>
Date: Tue, 15 Sep 2020 06:17:32 +0200
Subject: [PATCH] Windows QPA: Fix build with mingw64/Win32 threading
For this build, cxx11_future is not available and thus
QThread::create() as introduced by
ed114b728d9dc5265333c593254d9f6527464a60 does not work.
Revert back to implementing a QThread.
Pick-to: 5.15
Fixes: QTBUG-86575
Task-number: QTBUG-85676
Change-Id: I86a91f6bcdfc88804b35bf617362d92f37e51dea
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
---
.../platforms/windows/qwindowsservices.cpp | 32 +++++++++++++++----
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/src/plugins/platforms/windows/qwindowsservices.cpp b/src/plugins/platforms/windows/qwindowsservices.cpp
index 8a95cc53a85..f8d2b8f04e0 100644
--- a/src/plugins/platforms/windows/qwindowsservices.cpp
+++ b/src/plugins/platforms/windows/qwindowsservices.cpp
@@ -56,6 +56,26 @@ QT_BEGIN_NAMESPACE
enum { debug = 0 };
+class QWindowsShellExecuteThread : public QThread
+{
+public:
+ explicit QWindowsShellExecuteThread(const wchar_t *path) : m_path(path) { }
+
+ void run() override
+ {
+ if (SUCCEEDED(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE))) {
+ m_result = ShellExecute(nullptr, nullptr, m_path, nullptr, nullptr, SW_SHOWNORMAL);
+ CoUninitialize();
+ }
+ }
+
+ HINSTANCE result() const { return m_result; }
+
+private:
+ HINSTANCE m_result = nullptr;
+ const wchar_t *m_path;
+};
+
static quintptr runShellExecute(const wchar_t *path)
{
HINSTANCE result = nullptr;
@@ -75,13 +95,11 @@ static inline bool shellExecute(const QUrl &url)
// Run ShellExecute() in a thread since it may spin the event loop.
// Prevent it from interfering with processing of posted events (QTBUG-85676).
- quintptr result = 0;
- quintptr *resultPtr = &result;
- const auto path = reinterpret_cast<const wchar_t *>(nativeFilePath.utf16());
- QScopedPointer<QThread> thread(QThread::create([path, resultPtr]
- () { *resultPtr = runShellExecute(path); }));
- thread->start();
- thread->wait();
+ QWindowsShellExecuteThread thread(reinterpret_cast<const wchar_t *>(nativeFilePath.utf16()));
+ thread.start();
+ thread.wait();
+
+ const auto result = reinterpret_cast<quintptr>(thread.result());
// ShellExecute returns a value greater than 32 if successful
if (result <= 32) {
......@@ -33,7 +33,7 @@ fi
# Get the links flags necessary to use the plugin from the installed PRL file of the plugin
# replace hardcoded pathes by {libdir}
LIBS=$(sed -e "/QMAKE_PRL_LIBS/ { \
LIBS=$(sed -e "/QMAKE_PRL_LIBS =/ { \
s/QMAKE_PRL_LIBS =//; \
s@$PREFIX/lib@\${libdir}@g; \
s@\$\$\[QT_INSTALL_LIBS\]@\${libdir}@g;" -e "p" \
......
c8b90e50ec1824236541273b81024f1332c604748a038a48bc377b4c8e0886bfc27132990758abfd8ab9ea2aa5f1e42181ff369a0df4bc879dad0ef95868fde3 qtbase-everywhere-src-5.12.7.tar.xz
\ No newline at end of file
40b687c046b25a6717834ffe2616ee4f373d75214ec1c7e3a26502cd0cde9f0a872eaee99f06c54c7a3625ae85df5cdd3a3b54a160e8e37c7cfeb5800d026fe4 qtbase-everywhere-src-5.15.1.tar.xz
\ No newline at end of file
From a0d8fb4ac3cb7bafdb39f340055eacee4f957513 Mon Sep 17 00:00:00 2001
From: Kai Pastor <dg0yt@darc.de>
Date: Wed, 30 Jan 2019 07:36:51 +0100
Subject: [PATCH] Fix mingw pkgconfig file and dependency naming
This change adds the correct suffix to debug mode .pc filenames for
MinGW and also to the Qt libraries listed in the `Requires` field.
The filename adjustment fixes the accidental overwriting of release
mode .pc files with the debug mode variant which required the wrong
variant of the libraries when `debug_and_release` is active.
Note that macOS also supports the `debug_and_release' configuration
but may use the regular library names together with DYLD_IMAGE_SUFFIX.
Creation of *_debug.pc files is turned off as they're identical to their
non-debug counterparts.
[ChangeLog][Platform Specific Changes][MinGW] Added a suffix to debug
mode pkgconfig files.
Task-number: QTBUG-4155
Change-Id: I221c2dae51d7bd011836cb03945631a43180d7b5
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
---
mkspecs/features/qt_module.prf | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index a52a4486bc5..213556904d2 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -264,7 +264,7 @@ load(qt_installs)
load(qt_targets)
# this builds on top of qt_common
-!internal_module:if(unix|mingw) {
+!internal_module:if(unix|mingw):!if(darwin:debug_and_release:CONFIG(debug, debug|release)) {
CONFIG += create_pc
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
host_build: \
@@ -281,9 +281,9 @@ load(qt_targets)
QMAKE_PKGCONFIG_CFLAGS += -I${includedir}/$$section(inc, /, 1, 1)
}
QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ")
- QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION)
+ QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION)$$qtPlatformTargetSuffix()
for(i, MODULE_DEPENDS): \
- QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$section(QT.$${i}.VERSION, ., 0, 0))
+ QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$section(QT.$${i}.VERSION, ., 0, 0))$$qtPlatformTargetSuffix()
isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \
QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
pclib_replace.match = $$lib_replace.match
# Qt
QT_VERSION_MAJOR := 5.12
QT_VERSION := $(QT_VERSION_MAJOR).7
QT_VERSION_MAJOR := 5.15
QT_VERSION := $(QT_VERSION_MAJOR).1
# Insert potential -betaX suffix here:
QT_VERSION_FULL := $(QT_VERSION)
QT_URL := https://download.qt.io/official_releases/qt/$(QT_VERSION_MAJOR)/$(QT_VERSION_FULL)/submodules/qtbase-everywhere-src-$(QT_VERSION_FULL).tar.xz
......@@ -30,7 +30,6 @@ qt: qtbase-everywhere-src-$(QT_VERSION_FULL).tar.xz .sum-qt
$(UNPACK)
$(APPLY) $(SRC)/qt/0001-allow-to-pass-user-defined-compilation-flags-to-qt.patch
ifdef HAVE_WIN32
$(APPLY) $(SRC)/qt/0001-Windows-QPA-prefer-lower-value-when-rounding-fractio.patch
$(APPLY) $(SRC)/qt/0002-Windows-QPA-Disable-systray-notification-sounds.patch
ifndef HAVE_WIN64
$(APPLY) $(SRC)/qt/0001-disable-qt_random_cpu.patch
......@@ -39,10 +38,12 @@ endif
$(APPLY) $(SRC)/qt/0007-ANGLE-remove-static-assert-that-can-t-be-evaluated-b.patch
$(APPLY) $(SRC)/qt/0008-ANGLE-disable-ANGLE_STD_ASYNC_WORKERS-when-compiling.patch
$(APPLY) $(SRC)/qt/0009-Add-KHRONOS_STATIC-to-allow-static-linking-on-Windows.patch
$(APPLY) $(SRC)/qt/fix-mingw-pkgconfig-file-and-dependency-naming.patch
ifdef HAVE_CROSS_COMPILE
$(APPLY) $(SRC)/qt/0003-allow-cross-compilation-of-angle-with-wine.patch
ifndef HAVE_CLANG
$(APPLY) $(SRC)/qt/0010-Windows-QPA-Fix-build-with-mingw64-Win32-threading.patch
endif
else
$(APPLY) $(SRC)/qt/qt-fix-msys-long-pathes.patch
$(APPLY) $(SRC)/qt/0003-fix-angle-compilation.patch
......@@ -87,8 +88,8 @@ QT_PLATFORM += -device-option VLC_EXTRA_CFLAGS="-isystem $(PREFIX)/include" \
QT_CONFIG := -static -no-shared -opensource -confirm-license -no-pkg-config \
-no-sql-sqlite -no-gif -qt-libjpeg -no-openssl $(QT_OPENGL) -no-dbus \
-no-vulkan -no-sql-odbc -no-pch \
-no-compile-examples -nomake examples -nomake tests -qt-zlib
-no-vulkan -no-sql-odbc -no-pch -no-feature-testlib \
-no-compile-examples -nomake examples -nomake tests -qt-zlib
QT_CONFIG += -skip qtsql
QT_CONFIG += -release
......@@ -109,7 +110,7 @@ ENV_VARS := $(HOSTVARS) DXSDK_DIR=$(PREFIX)/bin
+cd $< && $(ENV_VARS) ./configure $(QT_PLATFORM) $(QT_CONFIG) -prefix $(PREFIX) -hostprefix $(PREFIX)/lib/qt5
# Make && Install libraries
cd $< && $(ENV_VARS) $(MAKE)
cd $< && $(MAKE) -C src sub-corelib-install_subtargets sub-gui-install_subtargets sub-widgets-install_subtargets sub-platformsupport-install_subtargets sub-zlib-install_subtargets sub-bootstrap-install_subtargets sub-network-install_subtargets sub-testlib-install_subtargets
cd $< && $(MAKE) -C src sub-corelib-install_subtargets sub-gui-install_subtargets sub-widgets-install_subtargets sub-platformsupport-install_subtargets sub-zlib-install_subtargets sub-bootstrap-install_subtargets sub-network-install_subtargets
# Install tools
cd $< && $(MAKE) -C src sub-moc-install_subtargets sub-rcc-install_subtargets sub-uic-install_subtargets sub-qlalr-install_subtargets
# Install plugins
......
119155aed8ad6e74f7be2d0e44bf630fc493227c6ad0fdbd9a85bba8770939a0dd6c21a8583851e5adf243d51bdeb64bf79e1c4898176898e05a3897052315b6 qtdeclarative-everywhere-src-5.12.7.tar.xz
\ No newline at end of file
193ec706b764330a2ae00614b13482b7586642f9cfd32458e8c975daa07ba25f0f9887de0918c4034f52f613b860677c09c46a3b7d07d4229446cfc0805bcccd qtdeclarative-everywhere-src-5.15.1.tar.xz
\ No newline at end of file
# QtDeclarative
QTDECLARATIVE_VERSION_MAJOR := 5.12
QTDECLARATIVE_VERSION := $(QTDECLARATIVE_VERSION_MAJOR).7
QTDECLARATIVE_VERSION_MAJOR := 5.15
QTDECLARATIVE_VERSION := $(QTDECLARATIVE_VERSION_MAJOR).1
QTDECLARATIVE_URL := http://download.qt.io/official_releases/qt/$(QTDECLARATIVE_VERSION_MAJOR)/$(QTDECLARATIVE_VERSION)/submodules/qtdeclarative-everywhere-src-$(QTDECLARATIVE_VERSION).tar.xz
DEPS_qtdeclarative += qt $(DEPS_qt)
......@@ -33,16 +33,25 @@ QT_DECLARATIVE_CONFIG := \
cd $</src && $(PREFIX)/lib/qt5/bin/qmake -o Makefile src.pro
# Build & install only what we require
# Invoke the build rules one at a time as some rule dependencies seem to be broken
cd $< && $(MAKE) -C src sub-quick-make_first-ordered sub-qmldevtools-make_first-ordered
cd $< && $(MAKE) -C src sub-quick-make_first-ordered \
sub-qmlmodels-make_first-ordered \
sub-qmldevtools-make_first-ordered \
sub-qmlworkerscript-make_first-ordered
# We don't use particles, but the import target (which generates the qtquick2plugin.a) require
# the particle module to be built
cd $< && $(MAKE) -C src sub-particles-make_first-ordered
cd $< && $(MAKE) -C src sub-quick-install_subtargets sub-qml-install_subtargets sub-quickwidgets-install_subtargets sub-imports-install_subtargets
cd $</tools && $(PREFIX)/host/bin/qmake -o Makefile tools.pro
cd $< && $(MAKE) -C src sub-quick-install_subtargets \
sub-qml-install_subtargets \
sub-quickwidgets-install_subtargets \
sub-imports-install_subtargets \
sub-qmlmodels-install_subtargets \
sub-qmlworkerscript-install_subtargets
cd $</tools && $(PREFIX)/lib/qt5/bin/qmake -o Makefile tools.pro
cd $< && $(MAKE) -C tools sub-qmlcachegen-install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick.2 qtquick2plugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick/Layouts qquicklayoutsplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick/Window.2 windowplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Qml qml/QtQml qmlplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Qml qml/QtQml/Models.2 modelsplugin
touch $@
fd6b59198e834a9e36e58445055610ac6dcfcb96d405d2dc294e0397460d6fdd119cfd4b0f29f43009154d623071dcb335223e33872fbfb5b6004abe9b6f5a55 qtgraphicaleffects-everywhere-src-5.12.7.tar.xz
\ No newline at end of file
651f8d96199b6324726fcf97eebf16a3ee40e5a9523a3c03255ca4201228b8d02314d5dd9722f59d44f09b4ff8dd722fb276b9af7f65728693a2c4ee62f781c1 qtgraphicaleffects-everywhere-src-5.15.1.tar.xz
\ No newline at end of file
# QtGraphicalEffects
QTGE_VERSION_MAJOR := 5.12
QTGE_VERSION := $(QTGE_VERSION_MAJOR).7
QTGE_VERSION_MAJOR := 5.15
QTGE_VERSION := $(QTGE_VERSION_MAJOR).1
QTGE_URL := http://download.qt.io/official_releases/qt/$(QTGE_VERSION_MAJOR)/$(QTGE_VERSION)/submodules/qtgraphicaleffects-everywhere-src-$(QTGE_VERSION).tar.xz
DEPS_qtgraphicaleffects += qtdeclarative $(DEPS_qtdeclarative)
......
bd469316594e09da064fc6792c08ee87f345ab8c27bd33ae3fc38d184bebabf1ed824147eb960ac2700c67a683097c7615aebb0f717dc1a5ff1b330f27554ae9 qtquickcontrols2-everywhere-src-5.12.7.tar.xz
\ No newline at end of file
ecb75619e80b737e3ae214f65a5175d933f8dc7832eb4eccd469fc1cb1eb85ef5c47f81563165da2d75abf15d7c47b868e68ab758d95183371b4ef64e7c52a39 qtquickcontrols2-everywhere-src-5.15.1.tar.xz
\ No newline at end of file
# QtQuickControls 2
QTQC2_VERSION_MAJOR := 5.12
QTQC2_VERSION := $(QTQC2_VERSION_MAJOR).7
QTQC2_VERSION_MAJOR := 5.15
QTQC2_VERSION := $(QTQC2_VERSION_MAJOR).1
QTQC2_URL := http://download.qt.io/official_releases/qt/$(QTQC2_VERSION_MAJOR)/$(QTQC2_VERSION)/submodules/qtquickcontrols2-everywhere-src-$(QTQC2_VERSION).tar.xz
ifdef HAVE_WIN32
......
13e6053c99cc0f5b31bc48df0a8b93cfa26e49f3aa2732850747c7a8b3e78ff0a1c620e2a8729d291b5a6cf935d9a481f361ec9f6a78ae090ca997b344786f47 qtsvg-everywhere-src-5.12.7.tar.xz
\ No newline at end of file
c0289bbce4682eef9cd87811ad11a4ce2141cb89bd026f9cc595123e6b4ebbe9e81a91b54bcf25fbf4225bc66e8a5e4f49e4fabde43e9da066583f22aab4f35f qtsvg-everywhere-src-5.15.1.tar.xz
\ No newline at end of file
# Qt
QTSVG_VERSION_MAJOR := 5.12
QTSVG_VERSION := $(QTSVG_VERSION_MAJOR).7
QTSVG_VERSION_MAJOR := 5.15
QTSVG_VERSION := $(QTSVG_VERSION_MAJOR).1
QTSVG_URL := https://download.qt.io/official_releases/qt/$(QTSVG_VERSION_MAJOR)/$(QTSVG_VERSION)/submodules/qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz
DEPS_qtsvg += qt $(DEPS_qt)
......
......@@ -85,6 +85,10 @@ extern "C" char **environ;
Q_IMPORT_PLUGIN(QtGraphicalEffectsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPrivatePlugin)
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
Q_IMPORT_PLUGIN(QtQmlPlugin)
#endif
#if !HAS_QT56
Q_IMPORT_PLUGIN(AccessibleFactory)
#endif
......@@ -577,6 +581,9 @@ static void *Thread( void *obj )
QApplication::setAttribute( Qt::AA_UseHighDpiPixmaps );
#endif
#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
QApplication::setHighDpiScaleFactorRoundingPolicy( Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor );
#endif
// at the moment, the vout is created in another thread than the rendering thread
QApplication::setAttribute( Qt::AA_DontCheckOpenGLContextThreadAffinity );
QQuickWindow::setDefaultAlphaBuffer(true);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment