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