aboutsummaryrefslogtreecommitdiff
path: root/depends/patches/qt
diff options
context:
space:
mode:
Diffstat (limited to 'depends/patches/qt')
-rw-r--r--depends/patches/qt/dont_hardcode_x86_64.patch119
-rw-r--r--depends/patches/qt/dont_use_avx_android_x86_64.patch32
-rw-r--r--depends/patches/qt/fix_android_jni_static.patch2
-rw-r--r--depends/patches/qt/fix_android_pch.patch10
-rw-r--r--depends/patches/qt/fix_bigsur_style.patch90
-rw-r--r--depends/patches/qt/fix_lib_paths.patch193
-rw-r--r--depends/patches/qt/fix_limits_header.patch36
-rw-r--r--depends/patches/qt/fix_montery_include.patch21
-rw-r--r--depends/patches/qt/fix_qt_pkgconfig.patch14
-rw-r--r--depends/patches/qt/mac-qmake.conf1
-rw-r--r--depends/patches/qt/no-xlib.patch13
-rw-r--r--depends/patches/qt/no_sdk_version_check.patch20
-rw-r--r--depends/patches/qt/qtbase-moc-ignore-gcc-macro.patch2
-rw-r--r--depends/patches/qt/rcc_hardcode_timestamp.patch24
-rw-r--r--depends/patches/qt/support_new_android_ndks.patch122
-rw-r--r--depends/patches/qt/use_android_ndk23.patch13
16 files changed, 336 insertions, 376 deletions
diff --git a/depends/patches/qt/dont_hardcode_x86_64.patch b/depends/patches/qt/dont_hardcode_x86_64.patch
new file mode 100644
index 0000000000..5c1e030fa4
--- /dev/null
+++ b/depends/patches/qt/dont_hardcode_x86_64.patch
@@ -0,0 +1,119 @@
+macOS: Don't hard-code x86_64 as the architecture when using qmake
+
+Upstream commit:
+ - Qt 6.1: 9082cc8e8d5a6441dabe5e7a95bc0cd9085b95fe
+
+For other Qt branches see
+https://codereview.qt-project.org/q/I70db7e4c27f0d3da5d0af33cb491d72c312d3fa8
+
+
+--- old/qtbase/configure.json
++++ new/qtbase/configure.json
+@@ -244,11 +244,18 @@
+
+ "testTypeDependencies": {
+ "linkerSupportsFlag": [ "use_bfd_linker", "use_gold_linker", "use_lld_linker" ],
+- "verifySpec": [ "shared", "use_bfd_linker", "use_gold_linker", "use_lld_linker", "compiler-flags", "qmakeargs", "commit" ],
++ "verifySpec": [
++ "shared",
++ "use_bfd_linker", "use_gold_linker", "use_lld_linker",
++ "compiler-flags", "qmakeargs",
++ "simulator_and_device",
++ "thread",
++ "commit" ],
+ "compile": [ "verifyspec" ],
+ "detectPkgConfig": [ "cross_compile", "machineTuple" ],
+ "library": [ "pkg-config", "compiler-flags" ],
+- "getPkgConfigVariable": [ "pkg-config" ]
++ "getPkgConfigVariable": [ "pkg-config" ],
++ "architecture" : [ "verifyspec" ]
+ },
+
+ "testTypeAliases": {
+@@ -762,7 +769,7 @@
+ },
+ "architecture": {
+ "label": "Architecture",
+- "output": [ "architecture" ]
++ "output": [ "architecture", "commitConfig" ]
+ },
+ "pkg-config": {
+ "label": "Using pkg-config",
+diff --git a/configure.pri b/configure.pri
+index 49755f7abfd..8be9b10d7d4 100644
+--- old/qtbase/configure.pri
++++ new/qtbase/configure.pri
+@@ -662,6 +662,13 @@ defineTest(qtConfOutput_commitOptions) {
+ write_file($$QT_BUILD_TREE/mkspecs/qdevice.pri, $${currentConfig}.output.devicePro)|error()
+ }
+
++# Output is written after configuring each Qt module,
++# but some tests within a module might depend on the
++# configuration output of previous tests.
++defineTest(qtConfOutput_commitConfig) {
++ qtConfProcessOutput()
++}
++
+ # type (empty or 'host'), option name, default value
+ defineTest(processQtPath) {
+ out_var = config.rel_input.$${2}
+diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
+index d16b77acb8e..4ba0a8eaa36 100644
+--- old/qtbase/mkspecs/common/macx.conf
++++ new/qtbase/mkspecs/common/macx.conf
+@@ -6,7 +6,6 @@ QMAKE_PLATFORM += macos osx macx
+ QMAKE_MAC_SDK = macosx
+
+ QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13
+-QMAKE_APPLE_DEVICE_ARCHS = x86_64
+
+ # Should be 10.15, but as long as the CI builds with
+ # older SDKs we have to keep this.
+diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
+index 92a9112bca6..d888731ec8d 100644
+--- old/qtbase/mkspecs/features/mac/default_post.prf
++++ new/qtbase/mkspecs/features/mac/default_post.prf
+@@ -90,6 +90,11 @@ app_extension_api_only {
+ QMAKE_LFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+ }
+
++# Non-universal builds do not set QMAKE_APPLE_DEVICE_ARCHS,
++# so we pick it up from what the arch test resolved instead.
++isEmpty(QMAKE_APPLE_DEVICE_ARCHS): \
++ QMAKE_APPLE_DEVICE_ARCHS = $$QT_ARCH
++
+ macx-xcode {
+ qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
+ !isEmpty(QMAKE_PKGINFO_TYPEINFO): \
+@@ -145,9 +150,6 @@ macx-xcode {
+ simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
+ VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
+
+- isEmpty(VALID_ARCHS): \
+- error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
+-
+ single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+
+ ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
+index efbe7c1e55b..8add6dc8043 100644
+--- old/qtbase/mkspecs/features/toolchain.prf
++++ new/qtbase/mkspecs/features/toolchain.prf
+@@ -182,9 +182,14 @@ isEmpty($${target_prefix}.INCDIRS) {
+ # UIKit simulator platforms will see the device SDK's sysroot in
+ # QMAKE_DEFAULT_*DIRS, because they're handled in a single build pass.
+ darwin {
+- # Clang doesn't pick up the architecture from the sysroot, and will
+- # default to the host architecture, so we need to manually set it.
+- cxx_flags += -arch $$QMAKE_APPLE_DEVICE_ARCHS
++ uikit {
++ # Clang doesn't automatically pick up the architecture, just because
++ # we're passing the iOS sysroot below, and we will end up building the
++ # test for the host architecture, resulting in linker errors when
++ # linking against the iOS libraries. We work around this by passing
++ # the architecture explicitly.
++ cxx_flags += -arch $$first(QMAKE_APPLE_DEVICE_ARCHS)
++ }
+
+ uikit:macx-xcode: \
+ cxx_flags += -isysroot $$sdk_path_device.value
diff --git a/depends/patches/qt/dont_use_avx_android_x86_64.patch b/depends/patches/qt/dont_use_avx_android_x86_64.patch
new file mode 100644
index 0000000000..b12ac8f4d0
--- /dev/null
+++ b/depends/patches/qt/dont_use_avx_android_x86_64.patch
@@ -0,0 +1,32 @@
+Android: don't use avx and avx2 when building for Android x86_64
+
+AVX and AVX2 are not supported on x86_64 ABI.
+See:
+ - https://developer.android.com/ndk/guides/abis#86-64
+ - https://bugreports.qt.io/browse/QTBUG-86785
+
+Upstream commits:
+ - Qt 6.0: ff1a44be33f4bc05d502a2ca49171e0408992f61
+ - Qt 5.15: 8b2cc0f6deb038a4c9d4f0d9b690c7726bd809a9
+
+
+--- old/qtbase/configure.json
++++ new/qtbase/configure.json
+@@ -1098,7 +1098,7 @@
+ },
+ "avx": {
+ "label": "AVX",
+- "condition": "features.sse4_2 && tests.avx",
++ "condition": "features.sse4_2 && tests.avx && (!config.android || !arch.x86_64)",
+ "output": [
+ "privateConfig",
+ { "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX", "value": 1 }
+@@ -1114,7 +1114,7 @@
+ },
+ "avx2": {
+ "label": "AVX2",
+- "condition": "features.avx && tests.avx2",
++ "condition": "features.avx && tests.avx2 && (!config.android || !arch.x86_64)",
+ "output": [
+ "privateConfig",
+ "privateFeature",
diff --git a/depends/patches/qt/fix_android_jni_static.patch b/depends/patches/qt/fix_android_jni_static.patch
index a186aeb8f6..bb64661761 100644
--- a/depends/patches/qt/fix_android_jni_static.patch
+++ b/depends/patches/qt/fix_android_jni_static.patch
@@ -1,6 +1,6 @@
--- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
+++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
-@@ -898,6 +898,14 @@
+@@ -914,6 +914,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
__android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
return -1;
}
diff --git a/depends/patches/qt/fix_android_pch.patch b/depends/patches/qt/fix_android_pch.patch
deleted file mode 100644
index 195e1c5e59..0000000000
--- a/depends/patches/qt/fix_android_pch.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- old/qtbase/mkspecs/common/android-base-head.conf
-+++ new/qtbase/mkspecs/common/android-base-head.conf
-@@ -72,6 +72,6 @@ CROSS_COMPILE = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-
- QMAKE_PCH_OUTPUT_EXT = .gch
-
- QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
--QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE}
-+QMAKE_CFLAGS_USE_PRECOMPILE = -include-pch ${QMAKE_PCH_OUTPUT}
- QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
- QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
diff --git a/depends/patches/qt/fix_bigsur_style.patch b/depends/patches/qt/fix_bigsur_style.patch
new file mode 100644
index 0000000000..0f6c848bb0
--- /dev/null
+++ b/depends/patches/qt/fix_bigsur_style.patch
@@ -0,0 +1,90 @@
+Fix rendering in macOS BigSur
+
+See: https://bugreports.qt.io/browse/QTBUG-86513.
+
+Upstream commits (combined in this patch):
+ - Qt 6.0: 40fb97e97f550b8afd13ecc3a038d9d0c2d82bbb
+ - Qt 6.0: 3857f104cac127f62e64e55a20613f0ac2e6b843
+ - Qt 6.1: abee4cdd5925a8513f51784754fca8fa35031732
+
+--- old/qtbase/src/plugins/styles/mac/qmacstyle_mac.mm
++++ new/qtbase/src/plugins/styles/mac/qmacstyle_mac.mm
+@@ -3870,6 +3870,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ const auto cs = d->effectiveAquaSizeConstrain(opt, w);
+ // Extra hacks to get the proper pressed appreance when not selected or selected and inactive
+ const bool needsInactiveHack = (!isActive && isSelected);
++ const bool isBigSurOrAbove = QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSBigSur;
+ const auto ct = !needsInactiveHack && (isSelected || tp == QStyleOptionTab::OnlyOneTab) ?
+ QMacStylePrivate::Button_PushButton :
+ QMacStylePrivate::Button_PopupButton;
+@@ -3878,6 +3879,12 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ auto *pb = static_cast<NSButton *>(d->cocoaControl(cw));
+
+ auto vOffset = isPopupButton ? 1 : 2;
++ if (isBigSurOrAbove) {
++ // Make it 1, otherwise, offset is very visible compared
++ // to selected tab (which is not a popup button).
++ vOffset = 1;
++ }
++
+ if (tabDirection == QMacStylePrivate::East)
+ vOffset -= 1;
+ const auto outerAdjust = isPopupButton ? 1 : 4;
+@@ -3894,9 +3901,22 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
+ else
+ frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
++
++ if (isSelected && isBigSurOrAbove) {
++ // 1 pixed of 'roundness' is still visible on the right
++ // (the left is OK, it's rounded).
++ frameRect = frameRect.adjusted(0, 0, 1, 0);
++ }
++
+ break;
+ case QStyleOptionTab::Middle:
+ frameRect = frameRect.adjusted(-innerAdjust, 0, innerAdjust, 0);
++
++ if (isSelected && isBigSurOrAbove) {
++ // 1 pixel of 'roundness' is still visible on both
++ // sides - left and right.
++ frameRect = frameRect.adjusted(-1, 0, 1, 0);
++ }
+ break;
+ case QStyleOptionTab::End:
+ // Pressed state hack: tweak adjustments in preparation for flip below
+@@ -3904,6 +3924,11 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
+ else
+ frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
++
++ if (isSelected && isBigSurOrAbove) {
++ // 1 pixel of 'roundness' is still visible on the left.
++ frameRect = frameRect.adjusted(-1, 0, 0, 0);
++ }
+ break;
+ case QStyleOptionTab::OnlyOneTab:
+ frameRect = frameRect.adjusted(-outerAdjust, 0, outerAdjust, 0);
+@@ -3951,7 +3976,10 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ NSPopUpArrowPosition oldPosition = NSPopUpArrowAtCenter;
+ NSPopUpButtonCell *pbCell = nil;
+ auto rAdjusted = r;
+- if (isPopupButton && tp == QStyleOptionTab::OnlyOneTab) {
++ if (isPopupButton && (tp == QStyleOptionTab::OnlyOneTab || isBigSurOrAbove)) {
++ // Note: starting from macOS BigSur NSPopupButton has this
++ // arrow 'button' in a different place and it became
++ // quite visible 'in between' inactive tabs.
+ pbCell = static_cast<NSPopUpButtonCell *>(pb.cell);
+ oldPosition = pbCell.arrowPosition;
+ pbCell.arrowPosition = NSPopUpNoArrow;
+@@ -3959,6 +3987,10 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+ // NSPopUpButton in this state is smaller.
+ rAdjusted.origin.x -= 3;
+ rAdjusted.size.width += 6;
++ if (isBigSurOrAbove) {
++ if (tp == QStyleOptionTab::End)
++ rAdjusted.origin.x -= 2;
++ }
+ }
+ }
+
diff --git a/depends/patches/qt/fix_lib_paths.patch b/depends/patches/qt/fix_lib_paths.patch
deleted file mode 100644
index d1a15373f4..0000000000
--- a/depends/patches/qt/fix_lib_paths.patch
+++ /dev/null
@@ -1,193 +0,0 @@
---- old/qtbase/mkspecs/common/mac.conf
-+++ new/qtbase/mkspecs/common/mac.conf
-@@ -14,7 +14,6 @@
-
- QMAKE_RESOURCE = /Developer/Tools/Rez
- QMAKE_EXTENSION_SHLIB = dylib
--QMAKE_EXTENSIONS_AUX_SHLIB = tbd
- QMAKE_LIBDIR =
-
- # sdk.prf will prefix the proper SDK sysroot
-
---- old/qtbase/mkspecs/features/qmake_use.prf
-+++ new/qtbase/mkspecs/features/qmake_use.prf
-@@ -22,6 +22,8 @@
- !defined(QMAKE_LIBS_$$nu, var): \
- error("Library '$$lower($$replace(nu, _, -))' is not defined.")
-
-+ QMAKE_LIBDIR += $$eval(QMAKE_LIBDIR_$$nu)
-+
- debug: \
- LIBS$${suffix} += $$eval(QMAKE_LIBS_$${nu}_DEBUG) $$eval(QMAKE_LIBS_$$nu)
- else: \
-
---- old/qtbase/mkspecs/features/qt_configure.prf
-+++ new/qtbase/mkspecs/features/qt_configure.prf
-@@ -526,98 +526,23 @@
- return($$sysrootified)
- }
-
--# libs-var, libs, in-paths, out-paths-var
-+# libs-var, libs, in-paths
- defineTest(qtConfResolveLibs) {
-- ret = true
-- paths = $$3
-- out =
-- copy = false
-- for (l, 2) {
-- $$copy {
-- copy = false
-- out += $$l
-- } else: equals(l, "-s") {
-- # em++ flag to link libraries from emscripten-ports; passed on literally.
-- copy = true
-- out += $$l
-- } else: contains(l, "^-L.*") {
-- lp = $$replace(l, "^-L", )
-- gcc: lp = $$qtGccSysrootifiedPath($$lp)
-- !exists($$lp/.) {
-- qtLog("Library path $$val_escape(lp) is invalid.")
-- ret = false
-- } else {
-- paths += $$lp
-- }
-- } else: contains(l, "^-l.*") {
-- lib = $$replace(l, "^-l", )
-- lcan =
-- integrity:contains(lib, "^.*\\.a") {
-- # INTEGRITY compiler searches for exact filename
-- # if -l argument has .a suffix
-- lcan += $${lib}
-- } else: contains(lib, "^:.*") {
-- # Use exact filename when -l:filename syntax is used.
-- lib ~= s/^://
-- lcan += $${lib}
-- } else: unix {
-- # Under UNIX, we look for actual shared libraries, in addition
-- # to static ones.
-- shexts = $$QMAKE_EXTENSION_SHLIB $$QMAKE_EXTENSIONS_AUX_SHLIB
-- for (ext, shexts) {
-- lcan += $${QMAKE_PREFIX_SHLIB}$${lib}.$${ext}
-- }
-- lcan += \
-- $${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
-- } else {
-- # Under Windows, we look only for static libraries, as even for DLLs
-- # one actually links against a static import library.
-- mingw {
-- lcan += \
-- # MinGW supports UNIX-style library naming in addition to
-- # the MSVC style.
-- lib$${lib}.dll.a lib$${lib}.a \
-- # Fun fact: prefix-less libraries are also supported.
-- $${lib}.dll.a $${lib}.a
-- }
-- lcan += $${lib}.lib
-- }
-- l = $$qtConfFindInPathList($$lcan, $$paths $$EXTRA_LIBDIR $$QMAKE_DEFAULT_LIBDIRS)
-- isEmpty(l) {
-- qtLog("None of [$$val_escape(lcan)] found in [$$val_escape(paths)] and global paths.")
-- ret = false
-- } else {
-- out += $$l
-- }
-- } else {
-- out += $$l
-- }
-- }
-- $$1 = $$out
-+ for (path, 3): \
-+ pre_lflags += -L$$path
-+ $$1 = $$pre_lflags $$2
- export($$1)
-- !isEmpty(4) {
-- $$4 = $$paths
-- export($$4)
-- }
-- return($$ret)
--}
--
--# source-var
--defineTest(qtConfResolveAllLibs) {
-- ret = true
-- !qtConfResolveLibs($${1}.libs, $$eval($${1}.libs), , $${1}.libdirs): \
-- ret = false
-- for (b, $${1}.builds._KEYS_): \
-- !qtConfResolveLibs($${1}.builds.$${b}, $$eval($${1}.builds.$${b}), $$eval($${1}.libdirs), ): \
-- ret = false
-- return($$ret)
-+ return(true)
- }
-
- # libs-var, in-paths, libs
- defineTest(qtConfResolvePathLibs) {
- ret = true
-- gcc: 2 = $$qtGccSysrootifiedPaths($$2)
-- for (libdir, 2) {
-+ gcc: \
-+ local_paths = $$qtGccSysrootifiedPaths($$2)
-+ else: \
-+ local_paths = $$2
-+ for (libdir, local_paths) {
- !exists($$libdir/.) {
- qtLog("Library path $$val_escape(libdir) is invalid.")
- ret = false
-@@ -667,8 +592,11 @@
- # includes-var, in-paths, test-object-var
- defineTest(qtConfResolvePathIncs) {
- ret = true
-- gcc: 2 = $$qtGccSysrootifiedPaths($$2)
-- for (incdir, 2) {
-+ gcc: \
-+ local_paths = $$qtGccSysrootifiedPaths($$2)
-+ else: \
-+ local_paths = $$2
-+ for (incdir, local_paths) {
- !exists($$incdir/.) {
- qtLog("Include path $$val_escape(incdir) is invalid.")
- ret = false
-@@ -727,6 +655,7 @@
- vars += $$eval(config.commandline.rev_assignments.$${iv})
- defined(config.input.$${iv}, var) {
- eval($${1}.builds.$${b} = $$eval(config.input.$${iv}))
-+ export($${1}.builds.$${b})
- $${1}.builds._KEYS_ *= $${b}
- any = true
- } else {
-@@ -741,11 +670,14 @@
- export($${1}.builds._KEYS_)
- # we also reset the generic libs, to avoid surprises.
- $${1}.libs =
-+ export($${1}.libs)
- }
-
- # direct libs. overwrites inline libs.
-- defined(config.input.$${input}.libs, var): \
-+ defined(config.input.$${input}.libs, var) {
- eval($${1}.libs = $$eval(config.input.$${input}.libs))
-+ export($${1}.libs)
-+ }
-
- includes = $$eval(config.input.$${input}.incdir)
-
-@@ -754,6 +686,7 @@
- !isEmpty(prefix) {
- includes += $$prefix/include
- $${1}.libs = -L$$prefix/lib $$eval($${1}.libs)
-+ export($${1}.libs)
- }
-
- libdir = $$eval(config.input.$${input}.libdir)
-@@ -762,11 +695,9 @@
- for (ld, libdir): \
- libs += -L$$ld
- $${1}.libs = $$libs $$eval($${1}.libs)
-+ export($${1}.libs)
- }
-
-- !qtConfResolveAllLibs($$1): \
-- return(false)
--
- !qtConfResolvePathIncs($${1}.includedir, $$includes, $$2): \
- return(false)
-
diff --git a/depends/patches/qt/fix_limits_header.patch b/depends/patches/qt/fix_limits_header.patch
index e4313770e5..cb5a8cd1b5 100644
--- a/depends/patches/qt/fix_limits_header.patch
+++ b/depends/patches/qt/fix_limits_header.patch
@@ -19,17 +19,16 @@ Upstream commits:
#include <stdlib.h>
#include <string.h>
---- old/qtbase/src/corelib/tools/qbytearraymatcher.h
-+++ new/qtbase/src/corelib/tools/qbytearraymatcher.h
-@@ -42,6 +42,8 @@
-
- #include <QtCore/qbytearray.h>
+--- old/qtbase/src/corelib/global/qfloat16.h
++++ new/qtbase/src/corelib/global/qfloat16.h
+@@ -43,6 +43,7 @@
+ #include <QtCore/qglobal.h>
+ #include <QtCore/qmetatype.h>
+#include <limits>
-+
- QT_BEGIN_NAMESPACE
-
+ #include <string.h>
+ #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
--- old/qtbase/src/tools/moc/generator.cpp
+++ new/qtbase/src/tools/moc/generator.cpp
@@ -42,3 +41,24 @@ Upstream commits:
#include <math.h>
#include <stdio.h>
+--- old/qtbase/src/corelib/text/qbytearraymatcher.h
++++ new/qtbase/src/corelib/text/qbytearraymatcher.h
+@@ -42,6 +42,8 @@
+
+ #include <QtCore/qbytearray.h>
+
++#include <limits>
++
+ QT_BEGIN_NAMESPACE
+
+
+--- old/qtbase/src/corelib/tools/qoffsetstringarray_p.h
++++ new/qtbase/src/corelib/tools/qoffsetstringarray_p.h
+@@ -55,6 +55,7 @@
+
+ #include <tuple>
+ #include <array>
++#include <limits>
+
+ QT_BEGIN_NAMESPACE
+
diff --git a/depends/patches/qt/fix_montery_include.patch b/depends/patches/qt/fix_montery_include.patch
new file mode 100644
index 0000000000..38b700addf
--- /dev/null
+++ b/depends/patches/qt/fix_montery_include.patch
@@ -0,0 +1,21 @@
+From dece6f5840463ae2ddf927d65eb1b3680e34a547
+From: Øystein Heskestad <oystein.heskestad@qt.io>
+Date: Wed, 27 Oct 2021 13:07:46 +0200
+Subject: [PATCH] Add missing macOS header file that was indirectly included before
+
+See: https://bugreports.qt.io/browse/QTBUG-97855
+
+Upstream Commits:
+ - Qt 6.2: c884bf138a21dd7320e35cef34d24e22e74d7ce0
+
+diff --git a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
+index e070ba97..07c75b04 100644
+--- a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
++++ b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
+@@ -40,6 +40,7 @@
+ #ifndef QIOSURFACEGRAPHICSBUFFER_H
+ #define QIOSURFACEGRAPHICSBUFFER_H
+
++#include <CoreGraphics/CGColorSpace.h>
+ #include <qpa/qplatformgraphicsbuffer.h>
+ #include <private/qcore_mac_p.h>
diff --git a/depends/patches/qt/fix_qt_pkgconfig.patch b/depends/patches/qt/fix_qt_pkgconfig.patch
index a5de2b4b9e..73f4d89f73 100644
--- a/depends/patches/qt/fix_qt_pkgconfig.patch
+++ b/depends/patches/qt/fix_qt_pkgconfig.patch
@@ -4,20 +4,8 @@
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)) {
+if(unix|mingw):!if(darwin:debug_and_release:CONFIG(debug, debug|release)) {
CONFIG += create_pc
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
host_build: \
-@@ -284,9 +284,9 @@ load(qt_targets)
- QMAKE_PKGCONFIG_CFLAGS = -D$$MODULE_DEFINE -I${includedir}/$$MODULE_INCNAME
- }
- 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
- !isEmpty(lib_replace0.match) {
diff --git a/depends/patches/qt/mac-qmake.conf b/depends/patches/qt/mac-qmake.conf
index 190ab7a160..e4bfaa1463 100644
--- a/depends/patches/qt/mac-qmake.conf
+++ b/depends/patches/qt/mac-qmake.conf
@@ -13,7 +13,6 @@ QMAKE_MAC_SDK.macosx.Path = $${MAC_SDK_PATH}
QMAKE_MAC_SDK.macosx.platform_name = macosx
QMAKE_MAC_SDK.macosx.SDKVersion = $${MAC_SDK_VERSION}
QMAKE_MAC_SDK.macosx.PlatformPath = /phony
-QMAKE_APPLE_DEVICE_ARCHS=x86_64
!host_build: QMAKE_CFLAGS += -target $${MAC_TARGET}
!host_build: QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CFLAGS
!host_build: QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
diff --git a/depends/patches/qt/no-xlib.patch b/depends/patches/qt/no-xlib.patch
index f4a6f09ee4..d6846aaca2 100644
--- a/depends/patches/qt/no-xlib.patch
+++ b/depends/patches/qt/no-xlib.patch
@@ -22,7 +22,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
#include <xcb/xfixes.h>
#include <xcb/xcb_image.h>
-@@ -391,6 +393,7 @@ void QXcbCursor::changeCursor(QCursor *cursor, QWindow *window)
+@@ -391,6 +391,7 @@ void QXcbCursor::changeCursor(QCursor *cursor, QWindow *window)
xcb_flush(xcb_connection());
}
@@ -30,7 +30,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
static int cursorIdForShape(int cshape)
{
int cursorId = 0;
-@@ -444,6 +447,7 @@ static int cursorIdForShape(int cshape)
+@@ -444,6 +445,7 @@ static int cursorIdForShape(int cshape)
}
return cursorId;
}
@@ -38,7 +38,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
xcb_cursor_t QXcbCursor::createNonStandardCursor(int cshape)
{
-@@ -556,7 +560,9 @@ static xcb_cursor_t loadCursor(void *dpy, int cshape)
+@@ -556,7 +558,9 @@ static xcb_cursor_t loadCursor(void *dpy, int cshape)
xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
{
xcb_connection_t *conn = xcb_connection();
@@ -48,16 +48,15 @@ index 7c62c2e2b3..c05c6c0a07 100644
xcb_cursor_t cursor = XCB_NONE;
// Try Xcursor first
-@@ -585,7 +591,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
-
+@@ -586,6 +590,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
// Non-standard X11 cursors are created from bitmaps
cursor = createNonStandardCursor(cshape);
--
+
+#if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
// Create a glpyh cursor if everything else failed
if (!cursor && cursorId) {
cursor = xcb_generate_id(conn);
-@@ -593,6 +599,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
+@@ -593,6 +598,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
cursorId, cursorId + 1,
0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0);
}
diff --git a/depends/patches/qt/no_sdk_version_check.patch b/depends/patches/qt/no_sdk_version_check.patch
deleted file mode 100644
index b16635b572..0000000000
--- a/depends/patches/qt/no_sdk_version_check.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-commit f5eb142cd04be2bc4ca610ed3b5b7e8ce3520ee3
-Author: fanquake <fanquake@gmail.com>
-Date: Tue Jan 5 16:08:49 2021 +0800
-
- Don't invoke macOS SDK version checking
-
- This tries to use xcrun which is not available when cross-compiling.
-
-diff --git a/qtbase/mkspecs/features/mac/default_post.prf b/qtbase/mkspecs/features/mac/default_post.prf
-index 92a9112bca6..447e186eb26 100644
---- a/qtbase/mkspecs/features/mac/default_post.prf
-+++ b/qtbase/mkspecs/features/mac/default_post.prf
-@@ -8,7 +8,6 @@ contains(TEMPLATE, .*app) {
- !macx-xcode:if(isEmpty(BUILDS)|build_pass) {
- # Detect changes to the platform SDK
- QMAKE_EXTRA_VARIABLES += QMAKE_MAC_SDK QMAKE_MAC_SDK_VERSION QMAKE_XCODE_DEVELOPER_PATH
-- QMAKE_EXTRA_INCLUDES += $$shell_quote($$PWD/sdk.mk)
- }
-
- # Detect incompatible SDK versions
diff --git a/depends/patches/qt/qtbase-moc-ignore-gcc-macro.patch b/depends/patches/qt/qtbase-moc-ignore-gcc-macro.patch
index 0358bea6e9..f0c14a9400 100644
--- a/depends/patches/qt/qtbase-moc-ignore-gcc-macro.patch
+++ b/depends/patches/qt/qtbase-moc-ignore-gcc-macro.patch
@@ -7,7 +7,7 @@ Upstream report: https://bugreports.qt.io/browse/QTBUG-83160
diff --git a/qtbase/src/tools/moc/main.cpp b/qtbase/src/tools/moc/main.cpp
--- a/qtbase/src/tools/moc/main.cpp
+++ b/qtbase/src/tools/moc/main.cpp
-@@ -188,6 +188,7 @@ int runMoc(int argc, char **argv)
+@@ -238,6 +238,7 @@ int runMoc(int argc, char **argv)
dummyVariadicFunctionMacro.arguments += Symbol(0, PP_IDENTIFIER, "__VA_ARGS__");
pp.macros["__attribute__"] = dummyVariadicFunctionMacro;
pp.macros["__declspec"] = dummyVariadicFunctionMacro;
diff --git a/depends/patches/qt/rcc_hardcode_timestamp.patch b/depends/patches/qt/rcc_hardcode_timestamp.patch
new file mode 100644
index 0000000000..03f3897975
--- /dev/null
+++ b/depends/patches/qt/rcc_hardcode_timestamp.patch
@@ -0,0 +1,24 @@
+Hardcode last modified timestamp in Qt RCC
+
+This change allows the already built qt package to be reused even with
+the SOURCE_DATE_EPOCH variable set, e.g., for Guix builds.
+
+
+--- old/qtbase/src/tools/rcc/rcc.cpp
++++ new/qtbase/src/tools/rcc/rcc.cpp
+@@ -227,14 +227,7 @@ void RCCFileInfo::writeDataInfo(RCCResourceLibrary &lib)
+
+ if (lib.formatVersion() >= 2) {
+ // last modified time stamp
+- const QDateTime lastModified = m_fileInfo.lastModified();
+- quint64 lastmod = quint64(lastModified.isValid() ? lastModified.toMSecsSinceEpoch() : 0);
+- static const quint64 sourceDate = 1000 * qgetenv("QT_RCC_SOURCE_DATE_OVERRIDE").toULongLong();
+- if (sourceDate != 0)
+- lastmod = sourceDate;
+- static const quint64 sourceDate2 = 1000 * qgetenv("SOURCE_DATE_EPOCH").toULongLong();
+- if (sourceDate2 != 0)
+- lastmod = sourceDate2;
++ quint64 lastmod = quint64(1);
+ lib.writeNumber8(lastmod);
+ if (text || pass1)
+ lib.writeChar('\n');
diff --git a/depends/patches/qt/support_new_android_ndks.patch b/depends/patches/qt/support_new_android_ndks.patch
deleted file mode 100644
index 85c8ae2132..0000000000
--- a/depends/patches/qt/support_new_android_ndks.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-Follow Google's BuildSystemMaintainers doc to support future NDK releases.
-
-Upstream commit:
- - Qt 5.14: 9b14950ff600a4ce5a8698b67ab38907c50417f1
-
---- old/qtbase/mkspecs/android-clang/qmake.conf
-+++ new/qtbase/mkspecs/android-clang/qmake.conf
-@@ -14,43 +14,29 @@
- QMAKE_CC = $$NDK_LLVM_PATH/bin/clang
- QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++
-
-+# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md
-+
- equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
-- QMAKE_CFLAGS += -target armv7-none-linux-androideabi
--else: equals(ANDROID_TARGET_ARCH, armeabi): \
-- QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
-+ QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "")
- else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
-- QMAKE_CFLAGS += -target aarch64-none-linux-android
-+ QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
- else: equals(ANDROID_TARGET_ARCH, x86): \
-- QMAKE_CFLAGS += -target i686-none-linux-android -mstackrealign
-+ QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign
- else: equals(ANDROID_TARGET_ARCH, x86_64): \
-- QMAKE_CFLAGS += -target x86_64-none-linux-android
--else: equals(ANDROID_TARGET_ARCH, mips): \
-- QMAKE_CFLAGS += -target mipsel-none-linux-android
--else: equals(ANDROID_TARGET_ARCH, mips64): \
-- QMAKE_CFLAGS += -target mips64el-none-linux-android
--
--QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info
--
--QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++
--equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a
--
--QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
-- -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
-- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
-- -isystem $$NDK_ROOT/sources/android/support/include \
-- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
-+ QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
-
--ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
-+QMAKE_CFLAGS += -fno-limit-debug-info
-
--ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
-+QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS
-
--ANDROID_USE_LLVM = true
-+ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so
-
--exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
-- ANDROID_CXX_STL_LIBS = -lc++
--else: \
-- ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
-+ANDROID_USE_LLVM = true
-
--QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
-+QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
-+QMAKE_LIBDIR_POST =
-+QMAKE_LFLAGS =
-+QMAKE_LIBS_PRIVATE =
-+ANDROID_CXX_STL_LIBS =
-
- include(../common/android-base-tail.conf)
-
---- old/qtbase/mkspecs/common/android-base-head.conf
-+++ new/qtbase/mkspecs/common/android-base-head.conf
-@@ -64,7 +58,6 @@
- }
-
- CONFIG += $$ANDROID_PLATFORM
--QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
-
- ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
-
---- old/qtbase/mkspecs/common/android-base-tail.conf
-+++ new/qtbase/mkspecs/common/android-base-tail.conf
-@@ -6,22 +6,17 @@
- QMAKE_CFLAGS += -fstack-protector-strong -DANDROID
-
- equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
-- QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove
-+ QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp
- else: equals(ANDROID_TARGET_ARCH, armeabi): \
-- QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove
--# -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692
-+ QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float
-
- QMAKE_CFLAGS_WARN_ON = -Wall -W
- QMAKE_CFLAGS_WARN_OFF =
- equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) {
- CONFIG += optimize_size
- QMAKE_CFLAGS_DEBUG = -g -marm -O0
-- equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
-- DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
-- } else {
-- QMAKE_CFLAGS_RELEASE += -mthumb
-- QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
-- }
-+ QMAKE_CFLAGS_RELEASE += -mthumb
-+ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
- }
-
- QMAKE_CFLAGS_SHLIB = -fPIC
-@@ -61,15 +56,12 @@
- QMAKE_RANLIB = $${CROSS_COMPILE}ranlib
-
- QMAKE_INCDIR_POST =
--QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR
- QMAKE_INCDIR_X11 =
- QMAKE_LIBDIR_X11 =
- QMAKE_INCDIR_OPENGL =
- QMAKE_LIBDIR_OPENGL =
-
- QMAKE_LINK_SHLIB = $$QMAKE_LINK
--QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
--equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64
- QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared
- QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared
- QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
diff --git a/depends/patches/qt/use_android_ndk23.patch b/depends/patches/qt/use_android_ndk23.patch
new file mode 100644
index 0000000000..85b8690218
--- /dev/null
+++ b/depends/patches/qt/use_android_ndk23.patch
@@ -0,0 +1,13 @@
+Use Android NDK r23 LTS
+
+--- old/qtbase/mkspecs/features/android/default_pre.prf
++++ new/qtbase/mkspecs/features/android/default_pre.prf
+@@ -73,7 +73,7 @@ else: equals(QT_ARCH, x86_64): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/x86_64-linux-
+ else: equals(QT_ARCH, arm64-v8a): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/aarch64-linux-android-
+ else: CROSS_COMPILE = $$NDK_LLVM_PATH/bin/arm-linux-androideabi-
+
+-QMAKE_RANLIB = $${CROSS_COMPILE}ranlib
++QMAKE_RANLIB = $$NDK_LLVM_PATH/bin/llvm-ranlib
+ QMAKE_LINK_SHLIB = $$QMAKE_LINK
+ QMAKE_LFLAGS =
+