It looks like these targets used to manage some custom commands that
belong to HEADER_MODULES. We don't currently have a need to use them,
so we clean up the code.
Change-Id: I8095f4de2c91a6c310cccb9b89514c2ce77e32f0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
There is no reason for adding dependency to the custom
'_pri_dep_timestamp' target instead of the INTERFACE_LIBRARY target
itself. This will close the chains of dependency between repo targets
and the HEADER_MODULE dependencies.
Pick-to: 6.4 6.2
Fixes: QTBUG-108815
Change-Id: I0e170d3e0e42d342881beb8aca1cc5a764425826
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Building repo targets may be incomplete as we skip adding
INTERFACE_LIBRARIES as dependencies. This leads to the missing
artifacts belonging to HEADER_MODULES. It seems reasonable and safe to
include INTERFACE_LIBRARIES in the list of dependencies of the repo targets.
Pick-to: 6.4 6.2
Task-number: QTBUG-108815
Change-Id: I83f44018f42dcf2fb1e3299461e17ef53e79c2e5
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
The values should come from android-clang mkspecs. The hardcoded
values don't work correctly with recent Android NDKs.
Pick-to: 6.4 6.2 5.15
Fixes: QTBUG-108662
Change-Id: Ie153a50ee0c49bd4f0704b588a4e2c87a05c1063
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Add the '-mimetype-database-compression' command line argument that
allows to select the preferred compression type for the mime type
database, including 'none' compression type, which avoids mime type
database compression even if respective compression APIs are present
in the system. The argument has the CMake alias called
'INPUT_mimetype_database_compression'.
Change-Id: I66daddae7014d109fa175a5f397e984928f4ee47
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use tools that compress mimetypes database directly from CMake as
a fallback mechanism instead of using perl and batch scripts.
Move the generating of the mimetype database resources to build-time.
This removes the perl-based compression from the possible compression
options. But assume that CMake-based compression should fill this gap.
CMake versions less than 3.26 don't support the value of the zstd
compression level higher than 9, so we prefer to use the External API.
Task-number: QTBUG-108438
Change-Id: I5686a53b766a243052cfee320f570e2c3b385726
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Adding the list definition to BUILD_OPTIONS requires unpleasant
escapting. This avoids an extra expanding of the BUILD_OPTIONS
argument and allows using the bracket-based escaping for semicolons.
Pick-to: 6.4
Change-Id: Ic5ff97c011fb67f61c66ad4e1a2ba43f44462932
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
In the case of re-doing, `configure` and `configure.bat` pass an extra
parameter to the `QtProcessConfigureArgs.cmake`. As a result, CMake
removes CMakeCache.txt and CMakeFiles/ before the reconfiguration. If
the user is using CMake 3.24 or newer, this is achieved by passing
the `--fresh` option to CMake call. In older CMake(s), CMakeCache.txt
and CMakeFiles/ found in CMAKE_BINARY_DIR will be removed using a
file(REMOVE_RECURSIVE call.
[ChangeLog] The -redo option now additionally removes existing
CMakeCache.txt file, and CMakeFiles/ directory, and recreates them from
scratch.
Task-number: QTBUG-108287
Change-Id: I11a5c8f9df1247d11eb7097552e6764463583346
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Implements an adaptor from the notification signal of a Q_PROPERTY to
QBindable. The Q_PROPERTY does not need to be BINDABLE, but can still
be bound or used in a binding.
[ChangeLog][Core][Q_PROPERTY] Q_PROPERTYs without BINDABLE can be wrapped in QBindable to make them usable in bindings
Change-Id: Id0ca5444b93a371ba8720a38f3607925d393d98a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
The test function tst_QComboBox::setPalette() tests if the QComboBox
correctly inherits its palette to its QLineEdit child, by directly
comparing both palettes after a palette change on the QComboBox.
If the application palette for both widget types contains brushes which
are either pixmap based or the resolve mask prevents them from being
copied, the direct palette comparison between parent and child fails,
despite of a correct propagation.
This patch sets a simple gray application palette for QComboBox and
QLineEdit at the beginning of the test. The QSKIP for macOS is
removed, because using simple palettes solves both issues.
Change-Id: I61d509745377306d6f8331dfc1ac189fc58cdedb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
[ChangeLog][iOS] Added native color dialog support for iOS.
Task-number: QTBUG-109042
Change-Id: I04187315d396d2f07b15eb4bd66b50253d873477
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This is no longer needed as OpenGL is no longer necessary for the
backing store on WASM.
Change-Id: I3eaa8094558947da2d1cc5526533f9f3fc8afeab
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Currently, the compositor gets enabled/disabled based on the last
constructed window's surface type. This causes non-OpenGL windows not to
be displayed if any OpenGL window is created last.
The compositor should scan for any non-openGL windows on any change
to the window set to decide if it needs to be disabled or not.
Change-Id: I037470e39a3fbae50fd3a4e29cb6615130d7b114
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
It started being recorded as flakey after making macOS 13 a significant
config in the CI, but it's unclear why the test was not failing during
the nightly testing leading up to that.
http://testresults.qt.io/grafana/goto/-AzSwMKVz
It has also been blacklisted on macOS many times in the past.
Change-Id: I7be5fefb3669e9643a98d2ac82059bf0576c6d5c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This test causes instability in the CI, but so far nobody could
reproduce it outside of that specific CI environment. Skip it for now,
and investigate the root cause later.
Pick-to: 6.2 6.4
Task-number: QTBUG-106906
Change-Id: Idbbc560236ac475fcb4fdd5980397393f7a95474
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Our tests have the unfortunate tendency to not clean up their resources;
as a consequence the leaksan check creates ton of (non-actionable)
warnings.
Our main focus for now are catching non-leak related issues via ASAN
(e.g. use-after-free).
The special casing for the cmake API tests stays in place in case we
want to re-enable leaksan checks for most tests again.
Task-number: QTQAINFRA-5315
Change-Id: I3e50ebf06ebd373f0ce0a4bb790ec8d38c344515
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
qdoc was telling us that it can't link to "Adding OpeSSL Support for
Android", because there is no such thing. Fix spelling of OpenSSL to fix
the link and silence qdoc.
Pick-to: 6.4 6.2
Change-Id: Idb583b6b7360c4e37c7e79c3d70327e99d7189bc
Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
These never made it into the IS, but are still available in the
Library Fundamentals TSs.
Use them to simplify detection code in qcontainertools_impl.h.
Change-Id: Iee83bc93c2abca34446d31912a2e04f6e3fe71de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When a widget's palette has different brushes in Active / Inactive
color groups, or it is pixmap based, multiple paint events are
triggered. This leads to unpredictable, double entries in
QWidgetRepaintManager::dirtyWidgetList().
This patch overrides event() of all test widgets and ignores
activation / deactivation events in order to make the entries of
QWidgetRepaintManager::dirtyWidgetList() predictable.
Pick-to: 6.4
Change-Id: I164d7ab4148551590ac3c50fcc3b9f98c5ac0535
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
QXcbBackingStore::toImage() returns a QImage that differs from what
is displayed on the screen: After multiple moves of children within
their parent widget, the last move is not always properly reflected
on openSuSE 15.4.
This patch blacklists the test functions fastMove, moveAccross and
moveInOutOverlapped on openSuSE Leap.
Task-number: QTBUG-109036
Pick-to: 6.4
Change-Id: Ideb505570df090b25d30762492d9c60beb6641ff
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
macOS Catalina (10.15) has reached its end-of-life, and is no longer
supported with bug fixes or security updates by Apple.
Change-Id: I65d0f572785bc77a563be925cf64823c20b9e015
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
QStringView is a borrowed range, so views into it are always valid,
even if the QStringView itself is destroyed. Clarify the comment.
Fix another typo (referring to the view as "string") as well.
Pick-to: 6.2 6.4
Change-Id: I8a4f45494d44d5a47e3c1f764f12c899ad7ee83d
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Do not assume that, given an iterator into an associative container,
you can write `*it`. Use `it.value()` instead. This is done
in preparation for the next commit.
Also, drop the const-prefix from functions (find, begin) where they
operate on a const container already.
Change-Id: I2cafc884666d98c240c2fdc661c9068c4c7319e1
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
We (almost) only build apps, for which PRIVATE linkage makes more sense.
Change-Id: I09a509c3fb33a00cdfdede687b3f95d638f42091
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Some CMakeLists.txt files did link to Qt6::PrintSupport twice. Also
unify formatting and order of the linker step.
Change-Id: I4af935c5dc3de6c243aad8511b0803ceaa872589
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Otherwise certain features may act as enabled even though they're
not supposed to be
Pick-to: 6.4
Fixes: QTBUG-108611
Change-Id: Id4b4bcb7a8f437e2d12b2a2f9b3ce2d4463b8be8
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
We now only support 1.1.1+, so drop the version limitation.
Change-Id: Ife1e46c31bf6984159535b5739dd43609dcef714
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
If we assert on a different cast we may just get a different integer
value, if Tag is a sufficiently nefarious type.
Coverity-Id: 403056
Change-Id: I6e8e3883bce124b3350ad8276d88ac7ed030d982
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If I'm right, it seems that the work has already been done, and nothing
uses the `_qt_internal_wrap_tool_command` anymore.
Change-Id: Ib8a5951e8351a26df123045bb5c6001470650b38
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
don't `#include <memory>` before including the header of the user's
class(es), because the user may want to configure certain aspects of
stl/crt before including any standard headers.
Change-Id: I58f13d3604358221e3375a309eb747efecf3f990
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It hasn't been used since 91f6460aff, a
commit that added support for futexes on Windows. It defines
QT_ALWAYS_USE_FUTEX.
Pick-to: 6.4
Change-Id: Ieba79baf5ac34264a988fffd172612892bd670d7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
They are already slow without ASAN, and risk running into timeouts with
ASAN enabled.
Change-Id: I427b990066d8ffa838ea90a318176fbcba400852
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This allows us to check whether Qt is compiled with ASAN enabled; it is
mostly used to disable tests which are too slow under ASAN
Change-Id: I381e287c4a72ffefd4cc92850451477032ad4204
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Both QStringView and QAnyStringView implicitly convert from any
container with a fitting value_type, and working std::data, std::size,
std::begin and std::end.
Add these missing operations (and complementary ones) to XmlStringRef,
so it implicitly converts to QStringView and QAnyStringView, too.
Add a check to that effect and remove the now-superfluous operator
QStringView().
Task-number: QTBUG-103302
Change-Id: I89d586cf64447a82022e06d546d7ee8339fc6dc7
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
The mime data object fed to qWasmClipboardPaste in qClipboardPasteTo
might have empty formats. We unconditionally check the first format
nevertheless, which leads to a crash. Avoid feeding empty mime data
to the widget system.
Fixes: QTBUG-108840
Change-Id: If874e973b742d35c16cb8a87194d9d4b8f470801
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Allows to access the wl_surface, the setCustomMargins functions and
the object corresponding to the surface role of the surface.
Also adds the xdg activation token functionality as it is needed by
another change in qtbase.
If the type passed to surfaceRole does not match the actual type of the
current surface role nullptr is returned.
QVariant is not used for transferring the surface role object because
it requires Q_DECLARE_OPAQUE_POINTER for storing and retrieving from
the QVariant. However QtWayland uses a plugin system for shell integrations
with known external plugins so it is not possible to centrally do this
for every possible pointer type. The alternative would be that plugin
and consumer delcare it both which does not make for an ergonomic API.
Change-Id: I6f4e036846485ba1895e7435bb28827b83249024
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Instead of constantly trying to find packages by calling
qt_find_package on each reconfiguration, record which packages were
found during initial configuration. Then on a second reconfiguration,
skip looking for packages that were not found on the initial
configuration.
This speeds up reconfiguration on certain platforms and repos.
Here are some stats for my macOS qtbase build.
not skip 3.69s user 4.96s system 98% cpu 8.750 total
skip 2.69s user 1.00s system 97% cpu 3.792 total
Top-level build with -submodules=qtquick3d
not skip 15.03s user 10.58s system 97% cpu 26.334 total
skip 13.87s user 5.16s system 96% cpu 19.724 total
Note this is a behavior change from how find_package is used in most
CMake projects, where if a package was previously missing, the
developer can just install the package and reconfigure to pick it up.
With this change, they will first have to remove their CMakeCache.txt
file and configure from scratch, or remove the
QT_INTERNAL_PREVIOUSLY_FOUND_PACKAGES cache variable and reconfigure.
For this reason, we enable this behavior by default only in
-developer-builds.
Builders can also opt in or out by setting the
QT_INTERNAL_SAVE_PREVIOUSLY_FOUND_PACKAGES variable to either ON or
OFF.
Note this behavior does not apply to user projects, or direct
find_package calls (as opposed to qt_find_package).
Fixes: QTBUG-107251
Change-Id: Iee9c5d120eb09e2a94eebb059a2174ef6b241e03
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Avoid using perl in CMake scripts. Remove the syncqt.pl specific
code.
Task-number: QTBUG-87480
Change-Id: I7fcd5cc83d173ec463c275b5b50b84f25044a118
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
If source and build directories are located on different Windows
disks, or one of them contains a symbolic link in the path,
std::filesystem:relative is unable to calculate the relative path.
So the generated header files contain empty entries. In this cases
use the absolute file paths for include directives in the header file
aliases.
Fixes: QTBUG-108452
Change-Id: Iefc8f0ce2b54dcc31971d4a1944bf7fa55f8164e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
[ChangeLog][Third-Party Code] libpng was updated to version 1.6.39
Pick-to: 6.4 6.2 5.15
Change-Id: I0113fb071d344049976953253adb4d898a1bb7c6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
So other modules can see it when they're built outside of qt5.git.
Change-Id: I76216ced393445a4ae2dfffd172a52168a2a55b4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
I've reserved the IDs for int128, uint128, bfloat16, and float128,
because the mask in qvariant.cpp's qIsNumericType() requires primitives
to be less than 64 to operate properly.
Added a QMetaType/QDataStream test to confirm it is indeed built-in.
Change-Id: I3d74c753055744deb8acfffd17247f7f57bada02
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>