parent
67ec2ee434
commit
0da90c23d3
@ -1,18 +0,0 @@
|
||||
Description: Don't use yield on CPUs that might not support it
|
||||
|
||||
---
|
||||
src/corelib/global/qsimd_p.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/src/corelib/global/qsimd_p.h
|
||||
+++ b/src/corelib/global/qsimd_p.h
|
||||
@@ -415,7 +415,9 @@ static inline void qYieldCpu()
|
||||
https://stackoverflow.com/a/70076751/134841
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105416
|
||||
*/
|
||||
+# if !defined(Q_CC_GNU) || (__ARM_ARCH >= 7)
|
||||
asm volatile("yield"); /* this works everywhere */
|
||||
+# endif
|
||||
# else
|
||||
__yield(); /* this is what should work everywhere */
|
||||
# endif
|
@ -1,82 +0,0 @@
|
||||
From c8e2cdda704dbe2c381091fe687653cdf2b191ca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?=
|
||||
<perezmeyer@gmail.com>
|
||||
Date: Wed, 1 Nov 2023 21:41:59 -0300
|
||||
Subject: [PATCH] Be verbose on plugin inclusion, easy patch point for distros
|
||||
|
||||
TL;DR: This creates two changes:
|
||||
|
||||
1. Makes the plugin inclusion status more visible for builders for both Qt
|
||||
itself and applications.
|
||||
2. Allows a simple patch-point for distros to change the default
|
||||
(perhaps not ideal, but good enough).
|
||||
3. Does not changes the current behavior.
|
||||
|
||||
As discussed both in the mailing list and privately with
|
||||
Alexandru Croitor and Joerg Bornemann this makes a lot os sense for Qt
|
||||
on static builds and when trying to find where the plugins are so they
|
||||
can be easily packaged up in order to distribute a build with all the
|
||||
dependencies on it.
|
||||
|
||||
But at the same time it makes no sense for distributions building the
|
||||
libraries in dynamic mode as it forces unnecesary build time
|
||||
dependencies for for both Qt and applications like QML modules or even
|
||||
PostgreSQL! [0].
|
||||
|
||||
[0] <https://sources.debian.org/src/martchus-qtutilities/6.10.0-1/cmake/modules/QtConfig.cmake/?hl=35#L35>
|
||||
|
||||
Other approaches have been considered like not shipping specific CMake
|
||||
files, but this depends on the packager finding the right ones at the
|
||||
right time, and does not allows end users to change the behavior if they
|
||||
happen to need it.
|
||||
|
||||
Change-Id: Id32fbc0cf0f289edd4426fb703cf1195288aacb4
|
||||
Gerrit: https://codereview.qt-project.org/c/qt/qtbase/+/515440
|
||||
---
|
||||
cmake/QtPlugins.cmake.in | 9 +++++++++
|
||||
cmake/QtPostProcessHelpers.cmake | 9 +++++++++
|
||||
2 files changed, 18 insertions(+)
|
||||
|
||||
diff --git a/cmake/QtPlugins.cmake.in b/cmake/QtPlugins.cmake.in
|
||||
index 405d5f37b9..c951eaae42 100644
|
||||
--- a/cmake/QtPlugins.cmake.in
|
||||
+++ b/cmake/QtPlugins.cmake.in
|
||||
@@ -1,6 +1,15 @@
|
||||
include_guard(DIRECTORY)
|
||||
@QT_MODULE_PLUGIN_INCLUDES@
|
||||
|
||||
+# Distributions should probably change this default.
|
||||
+if(NOT DEFINED QT_SKIP_AUTO_PLUGIN_INCLUSION)
|
||||
+ set(QT_SKIP_AUTO_PLUGIN_INCLUSION OFF)
|
||||
+endif()
|
||||
+
|
||||
+if(QT_REPO_MODULE_VERSION)
|
||||
+ message(STATUS "Skip auto plugin inclusion is set to ${QT_SKIP_AUTO_PLUGIN_INCLUSION}")
|
||||
+endif()
|
||||
+
|
||||
if(NOT QT_NO_CREATE_TARGETS AND NOT QT_SKIP_AUTO_PLUGIN_INCLUSION)
|
||||
__qt_internal_include_plugin_packages(@QT_MODULE@)
|
||||
endif()
|
||||
diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake
|
||||
index 83bcabe49b..82a88565a6 100644
|
||||
--- a/cmake/QtPostProcessHelpers.cmake
|
||||
+++ b/cmake/QtPostProcessHelpers.cmake
|
||||
@@ -446,6 +446,15 @@ function(qt_internal_create_plugins_auto_inclusion_files)
|
||||
# TODO: Find a better way to deal with this, perhaps by using find_package() instead of include
|
||||
# for the Qml PluginConfig.cmake files.
|
||||
|
||||
+# Distributions should probably change this default.
|
||||
+if(NOT DEFINED QT_SKIP_AUTO_QML_PLUGIN_INCLUSION)
|
||||
+ set(QT_SKIP_AUTO_QML_PLUGIN_INCLUSION OFF)
|
||||
+endif()
|
||||
+
|
||||
+if(QT_REPO_MODULE_VERSION)
|
||||
+ message(STATUS \"Skip auto QML plugin inclusion is set to \${QT_SKIP_AUTO_QML_PLUGIN_INCLUSION}\")
|
||||
+endif()
|
||||
+
|
||||
file(GLOB __qt_qml_plugins_config_file_list \"\${CMAKE_CURRENT_LIST_DIR}/QmlPlugins/${INSTALL_CMAKE_NAMESPACE}*Config.cmake\")
|
||||
if (__qt_qml_plugins_config_file_list AND NOT QT_SKIP_AUTO_QML_PLUGIN_INCLUSION)
|
||||
# First round of inclusions ensure all qml plugin targets are brought into scope.
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,72 +0,0 @@
|
||||
Description: QGtk3Theme: fix QGtk3Interface::fileIcon
|
||||
By failing to set the G_FILE_ATTRIBUTE_STANDARD_ICON attribute, the
|
||||
"icon" returned by g_file_info_get_icon was always null and a
|
||||
GLib-GIO-CRITICAL warning was output to the console (at least since glib
|
||||
2.76.0)[1].
|
||||
.
|
||||
After adding the necessary attribute, the code was crashing, because now
|
||||
a valid icon was returned, however the icon should not be freed[2],
|
||||
which is why I removed the "g_object_unref(icon)".
|
||||
.
|
||||
Now it was no longer crashing, but the size of the icons was off. It was
|
||||
passing GTK_ICON_SIZE_BUTTON (4) to gtk_icon_theme_lookup_by_gicon where
|
||||
a size in pixels was expected. I chose 16 because that's the pixel size
|
||||
associated with GTK_ICON_SIZE_BUTTON[3].
|
||||
.
|
||||
Finally I noticed the returned icons had the wrong color. It seems that
|
||||
a GdkPixbuf uses RGBA8888 format[4]. Adding an explicit conversion to
|
||||
ARGB32 made the icons look correct for me.
|
||||
.
|
||||
[1] https://gitlab.gnome.org/GNOME/glib/-/commit/ed8e86a7d41a0900d8fa57edc64264d04cf8135b
|
||||
[2] https://docs.gtk.org/gio/method.FileInfo.get_icon.html
|
||||
[3] https://docs.gtk.org/gtk3/enum.IconSize.html#button
|
||||
[4] https://docs.gtk.org/gdk-pixbuf/class.Pixbuf.html#image-data
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=277d77029d7fe8f4
|
||||
Last-Update: 2024-08-02
|
||||
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3interface.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3interface.cpp
|
||||
@@ -296,8 +296,10 @@ QImage QGtk3Interface::qt_convert_gdk_pi
|
||||
const int width = gdk_pixbuf_get_width(buf);
|
||||
const int height = gdk_pixbuf_get_height(buf);
|
||||
const int bpl = gdk_pixbuf_get_rowstride(buf);
|
||||
- QImage converted(data, width, height, bpl, QImage::Format_ARGB32);
|
||||
- return converted.copy(); // detatch to survive lifetime of buf
|
||||
+ QImage converted(data, width, height, bpl, QImage::Format_RGBA8888);
|
||||
+
|
||||
+ // convert to more optimal format and detach to survive lifetime of buf
|
||||
+ return converted.convertToFormat(QImage::Format_ARGB32_Premultiplied);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -666,7 +668,7 @@ QIcon QGtk3Interface::fileIcon(const QFi
|
||||
if (!file)
|
||||
return QIcon();
|
||||
|
||||
- GFileInfo *info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
|
||||
+ GFileInfo *info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_ICON,
|
||||
G_FILE_QUERY_INFO_NONE, nullptr, nullptr);
|
||||
if (!info) {
|
||||
g_object_unref(file);
|
||||
@@ -681,12 +683,11 @@ QIcon QGtk3Interface::fileIcon(const QFi
|
||||
}
|
||||
|
||||
GtkIconTheme *theme = gtk_icon_theme_get_default();
|
||||
- GtkIconInfo *iconInfo = gtk_icon_theme_lookup_by_gicon(theme, icon, GTK_ICON_SIZE_BUTTON,
|
||||
+ GtkIconInfo *iconInfo = gtk_icon_theme_lookup_by_gicon(theme, icon, 16,
|
||||
GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||
if (!iconInfo) {
|
||||
g_object_unref(file);
|
||||
g_object_unref(info);
|
||||
- g_object_unref(icon);
|
||||
return QIcon();
|
||||
}
|
||||
|
||||
@@ -694,7 +695,6 @@ QIcon QGtk3Interface::fileIcon(const QFi
|
||||
QImage image = qt_convert_gdk_pixbuf(buf);
|
||||
g_object_unref(file);
|
||||
g_object_unref(info);
|
||||
- g_object_unref(icon);
|
||||
g_object_unref(buf);
|
||||
return QIcon(QPixmap::fromImage(image));
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
From 3073b9c4dec5e5877363794bf81cbd4b84fdb9ee Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Edelev <alexey.edelev@qt.io>
|
||||
Date: Tue, 28 May 2024 16:36:41 +0200
|
||||
Subject: [PATCH] Ensure that libzstd targets are promoted to global if they
|
||||
were found
|
||||
|
||||
Promote all internal zstd targets if they were found by WrapZSTD to
|
||||
global using PROVIDED_TARGETS mechanism.
|
||||
|
||||
Amends 7d9d1220f367d9275dfaa7ce12e89b0a9f4c1978
|
||||
|
||||
Task-numer: QTBUG-119469
|
||||
Change-Id: I15ec484304f7bf2b3ee2a533d2badb3bb7797863
|
||||
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
||||
---
|
||||
configure.cmake | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.cmake b/configure.cmake
|
||||
index b91260015f..62af7f665f 100644
|
||||
--- a/configure.cmake
|
||||
+++ b/configure.cmake
|
||||
@@ -113,7 +113,15 @@ SSL_free(SSL_new(0));
|
||||
}
|
||||
")
|
||||
|
||||
-qt_find_package(WrapZSTD 1.3 PROVIDED_TARGETS WrapZSTD::WrapZSTD MODULE_NAME global QMAKE_LIB zstd)
|
||||
+qt_find_package(WrapZSTD 1.3
|
||||
+ PROVIDED_TARGETS
|
||||
+ WrapZSTD::WrapZSTD
|
||||
+ zstd::libzstd
|
||||
+ zstd::libzstd_static
|
||||
+ zstd::libzstd_shared
|
||||
+ MODULE_NAME global
|
||||
+ QMAKE_LIB zstd
|
||||
+)
|
||||
qt_find_package(WrapDBus1 1.2 PROVIDED_TARGETS dbus-1 MODULE_NAME global QMAKE_LIB dbus)
|
||||
qt_find_package(Libudev PROVIDED_TARGETS PkgConfig::Libudev MODULE_NAME global QMAKE_LIB libudev)
|
||||
qt_find_package(LTTngUST PROVIDED_TARGETS LTTng::UST MODULE_NAME core QMAKE_LIB lttng-ust)
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 7d9d1220f367d9275dfaa7ce12e89b0a9f4c1978 Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Edelev <alexey.edelev@qt.io>
|
||||
Date: Mon, 27 May 2024 11:09:05 +0200
|
||||
Subject: [PATCH] Prefer using the non-suffixed libzstd over static one
|
||||
|
||||
Recent zstd versions provide the libstd target but not only libzstd_shared
|
||||
or libzstd_static. Attempt to use it as the WrapZSTD::WrapZSTD counterpart
|
||||
if the target exists.
|
||||
|
||||
Task-number: QTBUG-119469
|
||||
Change-Id: I47916bfa6f10883d099184a497800277c8026b14
|
||||
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
||||
---
|
||||
cmake/FindWrapZSTD.cmake | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/FindWrapZSTD.cmake b/cmake/FindWrapZSTD.cmake
|
||||
index 7e5adcf276..310f6cf960 100644
|
||||
--- a/cmake/FindWrapZSTD.cmake
|
||||
+++ b/cmake/FindWrapZSTD.cmake
|
||||
@@ -25,14 +25,17 @@ find_package(zstd CONFIG QUIET)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
-if(TARGET zstd::libzstd_static OR TARGET zstd::libzstd_shared)
|
||||
+if(TARGET zstd::libzstd_static OR TARGET zstd::libzstd_shared OR TARGET zstd::libzstd)
|
||||
find_package_handle_standard_args(WrapZSTD
|
||||
REQUIRED_VARS zstd_VERSION VERSION_VAR zstd_VERSION)
|
||||
if(TARGET zstd::libzstd_shared)
|
||||
set(zstdtargetsuffix "_shared")
|
||||
+ elseif(TARGET zstd::libzstd)
|
||||
+ set(zstdtargetsuffix "")
|
||||
else()
|
||||
set(zstdtargetsuffix "_static")
|
||||
endif()
|
||||
+
|
||||
if(NOT TARGET WrapZSTD::WrapZSTD)
|
||||
add_library(WrapZSTD::WrapZSTD INTERFACE IMPORTED)
|
||||
set_target_properties(WrapZSTD::WrapZSTD PROPERTIES
|
||||
--
|
||||
2.43.0
|
||||
|
Loading…
Reference in new issue