| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Change-Id: I25063457aad3a6d29a8c2a5b236f9a51b56a2f51
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
| |
Change-Id: I2edcb2c324919a1131ae490bee9c9b1140097b09
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I89e44644b083681f069d1d7a385bec68b4bfd80b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without this, CMake would warn:
Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.
Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
For compatibility, CMake is excluding the GENERATED source file(s):
"<builddir>/.rcc/qmlcache/myfile_qmlcache_loader.cpp"
from processing by AUTOMOC. If any of the files should be processed, set
CMP0071 to NEW. If any of the files should not be processed, explicitly
exclude them by setting the source file property SKIP_AUTOMOC:
set_property(SOURCE file.h PROPERTY SKIP_AUTOMOC ON)
Pick-to: 6.7
Change-Id: Ifd1bad613ab21f5e2de2c42281e8c3261e2cfb03
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-117983
Change-Id: I5790f01d614cd70c7fcc9bd817ec6ace3f3e3730
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
| |
Task-number: QTBUG-117983
Change-Id: I584116bfd4d47deca914910b712c2ea3295f3e7f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
|
|
|
| |
Change-Id: I920acf76846bece462b518239fc4c068a0fad8c1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The generated qmldir files that are used by QML engine specify the
relative path to the QML plugins that are build within modules. So
it's usually expected that plugins are located on the same level as
the qmldir files. In Multi-Config builds all libraries are located in
the build-specific directories by default. In this case QML engine is
unable to locate the plugin and the application cannot be run without
extra manual steps. This fixes this issue, by using the top-level
plugin OUTPUT_DIRECTORY for the "default"(first) config as
RUNTIME/LIBRARY_OUTPUT_DIRECTORY.
In Windows platforms we need to make the same for non-static backing
libraries, since we cannot rely on RPATH there.
Task-number: QTBUG-99061
Pick-to: 6.2 6.5 6.6 6.7
Change-Id: I51a8864743b87fd6ec4ba7179e13f311c5bee403
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Add the explanation what is PluginName and how it's computed when using
the modern QML API.
Fixes: QTBUG-119372
Pick-to: 6.2 6.5 6.6 6.7
Change-Id: I7346f7b7f82c717ee79b07f4dcec0c0d1dc733b2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
There are various places where we can still hold references. Clean them
up when asked to do so. Also, free unused types and caches outside the
type loader mutex, and only once on engine shutdown.
Change-Id: Iae77cd6f50ad847d29a7eae4ac5c7c1c2524065d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
| |
This is in preparation for letting the engine cache the executable CUs.
Change-Id: Ideac10d8dda0784b41304b58f9b9fbd106173ea6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
| |
The type loader belongs to the engine and we must not store it in
engine-independent data structures. We do want the import cache to be
stored in the type registry, though (in a separate change).
Change-Id: I2828f5098b27bf1fc96852fc2bd160db44b109e7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This partially reverts commit bf2258e6f44f1279eee5e9c2dd595c5dd2020784.
When building property caches we have to take the possibility into
account that the QQmlType we have at hand is from a different QML
engine. We therefore have to double check with our own QML engine.
Pick-to: 6.7
Fixes: QTBUG-120189
Change-Id: If3b53a14b767f464318a61ed15d62077efd6bf61
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
| |
The events typically hold references to the data blobs they want to
notify about. Those will prevent such blobs from getting cleaned up.
Since we are explicitly asked to clear everything, we should also clear
those.
Change-Id: I476b071d78555a561396181128f2e915df13aeee
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It only exists so that the type loader can query pre-compiled and native
modules from the loader thread. However, the type loader already has a
mutex of its own. We can use that to inject a "native" blob into its
script cache for the same effect.
We need to get rid of the mutex so that we can use the module map for
other compilation units, too.
Change-Id: I5a9c266ea36b50f5ea69214110def644f7501674
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't want floating unlinked executable CUs. They should always be
tied to an engine, and the engine should not change. This gives us one
definite point where to register them with the engine (to be done in
subsequent change).
Unfortunately, due to the refcounting, we need to remove the engine from
any still-referenced CUs when the engine itself is destructed. We will
be able to drop the refcounting and make the engine fully own its
executable CUs once we can hold base CUs in most places.
Change-Id: I9a53e83d5c4746c2b2bca896b51baa4fe7fee757
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We want to re-use the base compilation unit across engines. For that to
work it cannot be a slice of the engine-specific
ExecutableCompilationUnit.
Since CompiledData::CompilationUnit is refcounted on its own now, make
it unmovable.
Change-Id: I8418c9754d7a07e5210c1e7a7fc69355e1d57807
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Allow const iteration and move all the functions inline so that it
becomes more readable.
Change-Id: I0c7c9f6607519f842c86476dd6d7dfba65a38575
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a function is called, two arrays with the necessary information are
passed to the engine:
argv: [return address, prameter 1 address, parameter 2 address, ...]
types: [return type, parameter 1 type, parameter 2 type, ...]
When the result of the call is ignored, the return type is set to void
and the return address to null.
A check for this null value was missing leading to a null derefence.
Amends: 4f1b9156a48e44cf1f127a4563d0ac69ab436f12
Fixes: QTBUG-120336
Pick-to: 6.7
Change-Id: I4a21779f3276b0143087b41b0d16c0cd3ba0e7db
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-117983
Change-Id: I717bf43032e72ec743f238ac48935a3019f1879d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Remove the `decrementIterator` function usage to calculate the base stack pointer, because it calculates invalid base stack pointer for VxWorks - VxWorks provides valid base stack pointer which doesn't need additional calculation.
Task-number: QTBUG-115777
Change-Id: Ib9d133bb0a3e10c0f0a11f8831ea540741c935c7
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Amends/parially reverts 4bac72aa13e6818460f6b71127d3af5bd7e00ca5, which
replaced recursive Qt5 mutexes with QRecursiveMutex – but
ExecutableAllocator used QMutex::NonRecursive, so this instance was
misguided.
Pick-to: 6.7 6.6
Change-Id: I33fd9e903b8861a7907bc8bde7632045198ef5c7
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
We want to re-use the base compilation unit for different engines. To do
that, we cannot have data in there that belongs to a specific engine.
Pick-to: 6.7
Task-number: QTBUG-120189
Change-Id: I8e43e7ec6c1cd33249dc4ed15fec16babc6d06fb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Amends: 86c48761dc7ba5bcac7dc6740e94efbfb8678403
Fixes: QTBUG-120504
Pick-to: 6.7
Change-Id: Id77236a07d7c1a16e2f60238909eff245c5c354a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
| |
We need it movable, and you shouldn't be able to poke its internals.
Change-Id: Ia9fbde26ef525837402d9214aa534eeec0221e2f
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Despite its name, it's really large.
Coverity-Id: 434159
Change-Id: I7ccdfbdf0582edd13011d89dbb50a17ea1455637
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix multiple incorrect \l (link) command arguments that were not
captured by documentation testing in CI.
Add missing \endqml and \endcode commands to code snippets.
Convert \sa commands that are meant to be related to specific \section
commands into manual 'See also' paragraphs. Otherwise, they are listed
at the bottom of the page.
Pick-to: 6.7
Change-Id: Icf2a97f63b8b8cdec2d9398448d28759dabdb06b
Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
|
| |
|
|
|
|
|
|
| |
Add description of the warning and an example on how to fix it.
Task-number: QTBUG-111137
Change-Id: I7ec0f77ac21d8fb6146a38f43977de0ef604af7c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
| |
Add description of the warnings and examples on how to fix them.
Task-number: QTBUG-111137
Change-Id: I7a1423a077929c3036ada8581b7c0a37f496d7ab
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
| |
Rename the properties to control recovery to use the canonical namings.
Change-Id: I7f05a3ad95baa54d7a374391ae2bfb1d48db4789
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a recovery mode to the parser to accept bindings that are not
completely written out, and create an empty statement for that. This
mode is called enableIncompleteBindings and is only enabled for qmlls.
Also adapt qqmldomastcreator to those empty statements, and qmllsutils.
Pick-to: 6.7
Fixes: QTBUG-120169
Task-number: QTBUG-92876
Change-Id: Ic24cbb61e3be08368027371e377bf75ce87fafb1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
| |
Change-Id: Ib21012301da6afb5458f707b39a9a8079d93eb93
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit dae1f74d8ac83b31fea500c99573dbd0af6d8907.
Reason for revert: Fixed the issues in qt submodules.
Change-Id: I972b5825e12cdbf919c193ec5726836ca618fe38
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 8a238c0ab8a8c6ad3851315193c118e859b6da7a, as it caused configure issues in qtcharts, qtquick3d that need to be figured
out first.
Change-Id: I0544d57f15e0c8613300edacc97c3505a986dc69
Pick-to: 6.7
Fixes: QTBUG-120279
Fixes: QTBUG-120282
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If a composite type is not ready, yet, and we request its enums, we
should not cache the result. To facilitate this, deduplicate the
surrounding code and centralize the call to initEnums().
Pick-to: 6.7
Fixes: QTBUG-120084
Change-Id: I8386a3b44010a39470e886e93c5c64bfedac0b95
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Amends commit 86c48761dc7ba5bcac7dc6740e94efbfb8678403.
Pick-to: 6.7
Fixes: QTBUG-120168
Change-Id: I5848d8394498bafb1e897eca865d405224eaf997
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add option to disable cmake calls via commandline arguments, environment
variable and settings file.
Also fix the qmlls.ini generation script to include a line with
no-cmake-calls=false.
Picking back to 6.7 because the cmake call feature introduced in 6.7
might break stuff, so it should be easily disableable.
Pick-to: 6.7
Fixes: QTBUG-119953
Fixes: QTBUG-119565
Change-Id: Ic3f2e369172aef430c52a98c1713e46b598a4f21
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The design of the garbage collector is described in
src/qml/memory/design.md.
The gc and gcdone test helpers are adjusted to drive the gc to
completion, even when in incremental mode.
Parts of tst_qv4mm and tst_qqmlqt need to run with the incremental gc
disabled, as they call gc inside QML and assumes that the GC finishes
before returning.
Initial-patch-by: Rafal Chomentowski <rafal.chomentowski@ge.com>
Task-number: QTBUG-119274
Change-Id: I1d94f41bc7a434fad67de0fd46454b6db285f2eb
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If QML modules are built in the same build tree, and one depends on
another according to the DEPENDENCIES argument, we need to add the
explicit CMake depdencies between their targets. This is required since
the targets that use those QML modules not necessarly have explicit
dependencies on their QML DEPENDENCIES.
Pick-to: 6.5 6.6 6.7
Change-Id: Ibaf07c63a44b5e3a9f0b73136b5b0c00cd3352b3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normally, we don't want to convert aggressively between JS objects and
QVariant, as that is prone to losing information. However,
QJSValue::toVariant is documented to attempt lossy conversions. Restore
the behavior of Qt < 6.5.3 for it. This is done by replacing the boolean
indicating we should wrap JS objects into QJSValue with an enum instead.
That enum introduces a third state ("Aggressive"), which is only used
for QJSValue::toVariant. All other users of QJSEngine::toVariant behave
as before (post 6.5.3).
Function objects are still not converted, as we know that this would be
a futile attempt, and more importantly, to keep the behavior that
existed before Qt 6.5.3.
Amends 43077556550c6b17226a7d393ec844b605c9c678 which introduced the
regression and afe96c4d633146df477012975824b8ab65034239 which fixed the
issue only partially.
Pick-to: 6.5 6.6 6.7
Fixes: QTBUG-119963
Change-Id: I07d9901437812579ac5b873a4dff4de60c8f617e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It does not return true for a QJSValue that carries a QVariant with a
QUrl. However, on the C++ side the caller will want the URL value anyway
as a QUrl, and in both cases, going through the QVariant works for that.
Fixes: QTBUG-119794
Pick-to: 6.7 6.6 6.5
Change-Id: I90fd4a1a27d4dd4758b1060205ce2aeec730eb72
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
| |
Fixes: QTBUG-119640
Pick-to: 6.6 6.7
Change-Id: I88256e47b835154aae3974d3d717e6468b8497ba
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][CMake] Added the DEPLOY_TOOL_OPTIONS argument to the
function qt_generate_deploy_qml_app_script.
It doesn't make sense to map every option of the deployment tools to
arguments in our CMake deployment API. Allow the user to specify
extra arguments to windeployqt or macdeployqt.
Task-number: QTBUG-116551
Change-Id: Ib2589548492fdfb4b44ed7241275567c4bd48f2f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using the VS generator, the foo_qmllint targets were run on every
build, which is neither expected nor wanted. The reason for this is a
pecularity in MSBuild and as a reaction to this, special behavior of
CMake: add_dependencies(A B) will enable B in the default build of the
solution - even if B is not triggered by the ALL target. See upstream
CMake issue #16668 for details.
We now work around this problem by building foo_qmllint with "cmake
--build" in the COMMANDs of all_qmllint. As a consequence, we must
create all_qmllint, all_qmllint_json, and all_qmllint_module at the end
of the project directory scope.
Since we now require cmake_language(DEFER CALL), users who generate VS
projects with CMake versions older than 3.19 will see a warning that the
all_qmllint* targets cannot be created. The VS installation comes with a
recent enough CMake version (on my machine it's 3.26.4), so this should
not be a problem.
[ChangeLog][CMake] When using CMake's Visual Studio project generator,
the creation of the targets all_qmllint, all_qmllint_json and
all_qmllint_module requires now CMake 3.19 or newer. A warning is
printed for older CMake versions. This warning can be disabled by
setting QT_NO_QMLLINT_CREATION_WARNING.
Pick-to: 6.5 6.6 6.7
Fixes: QTBUG-115166
Task-number: QTBUG-115166
Change-Id: I0bd704caa3f36cfda739425c2126a0ec7ac4f85e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Those are wrong most of the time. Since our dependency tracking is too
coarse we cannot properly tell if this is an actual cycle.
Pick-to: 6.7
Fixes: QTBUG-117827
Change-Id: Ib6779d6e1b04137119009ded5452157c09cfadc1
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Adapt CMake code to use a response file instead of a long string of
arguments when calling the various qmllint targets.
Avoids long command line errors on Windows.
Pick-to: 6.5 6.6 6.7
Fixes: QTBUG-119675
Change-Id: I49041ffff2724fb36b8127b2a08127a9b740db7d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
|
| |
|
|
|
|
|
|
| |
Pick-to: 6.6 6.5
Fixes: QTBUG-119395
Change-Id: I5877beef9a53d358a6f58f9ce5029688bd9dcedb
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The tutorial is not a qdoc 'example' anymore , and therefore also
do not show up in the Qt Creator welcome screen.
While at it, also remove the version from the QML import snippet.
Task-number: QTBUG-119663
Pick-to: 6.6
Change-Id: Ib32b6fc9a4c80001f6ab30d8f38bce129e5209a0
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
If QtDeployTargets.cmake contains information for a QML plugin, use it
to deploy the correct file. Fall back to the old file name heuristics if
the information is missing.
Change-Id: If3820cf10530b1944dc00b1724a3ea276b25131e
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows, we only deployed the Fooplugin.dll of a QML module Foo. The
backing library was missing. The reason was the file path heuristics we
employ that looks for '/Fooplugin.*\.dll'. That doesn't take into
account the backing library.
Now, we use the QtDeployTargets.cmake information that is generated on
project configuration and deploy the DLLs that are used at runtime.
Pick-to: 6.5 6.6
Fixes: QTBUG-117948
Change-Id: I6d26405814ca2bc66bfa308cf4d23e42cbbfeb7f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|