And also in the qbs sub-project (for the qbs and qmake builds). This
becomes possible with the qbs submodule update that is part of this
patch.
Change-Id: I8347a8c04a52bcb0682f32d808fb61a90ef3ba72
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Qbs may update the buildgraph during the build, so this information
may be lost if we reparse at the same time.
Change-Id: Id52e42552736bbe842581cc87d837d0834ad0a2c
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
They are not (arch-independent) resources.
Task-number: QTCREATORBUG-10074
Change-Id: If257dfc3a8a866003c84331409162699b162eb19
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Currently ModelManager contains lot logic, but as it sits in QmlJSTools
it is not possible to use it in standalone tests.
Moving most of the logic to ModelManagerInterface (and cleanup)
to allow better testing, and refactoring.
This introduces a dependency of the qmljs lib on the cplusplus lib
Also a (small) part of the CppTool::ModelManagerInterface has been
moved to CPlusPlus::CppModelManagerBase to remove the dependency on
CppTools to gather the Qml types exposed from C++.
Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Includes some necessary adaptations to the QbsProjectManager plugin,
namely:
- Use the new library for setting up Qt profiles.
- Use per-profile preferences.
Change-Id: I0a639bd291d790c6da9cb4ade53841314310d5ef
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This fixes the problem of Qt Creator not getting the cxxFlags set in
Qbs.
Task-number: QBS-481
Change-Id: Ie233123d62bcf89f3b8ebee1367ca6447b9ade3a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
So we can ignore possibly problematic toolchain-defines, while can still
unconditionally apply project-defines.
Change-Id: I7cb96f35a963d080011fe888ef71bfc098dd33ef
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
... even if Qt Creator thinks all is well.
Change-Id: I40fa61d51c8e18a389bedf7d8afb927bbb88acd5
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Looks like you need to do that after canceling it... This stops
"Evaluation" progress bars from sticking around.
Change-Id: Ie0a9f88ba96cba261939c210fddb11bc43779416
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
We have to mark the user-set properties appropriately; otherwise,
properties in project files will not get overridden.
Change-Id: I3bcb013fde2b76521a85c3283e2b158beaf40b26
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
The current code compares a flat map against the tree-ified version,
which will never be equal.
Change-Id: I99d82d87635e5ccacc5a5709bced9a30f62d4018
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Make sure the root node of the project tree is actually deleted.
Change-Id: Idf32460d7b5d0518da9536084cccb074638cfce3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
People do not expect directories to be created as a side effect of
opening a project.
Task-number: QBS-304
Change-Id: I820a1311d534a4a76a4660588c4e9d71cc03f153
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Add displayname and project file path and a pointer back to the
project.
Change-Id: Ic9a18f52a6291493bd3a95fd3456ed0e1a3c63e3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Refactor the code of the build configuration factories. The idea is to
generalize the code so much that we can allow plugins to install
custom build configuration factories for the platforms they support.
To support this use case the following changes where done here:
* BuildInfo class was introduced to describe one build configuration that
can be created by a factory.
* Factories report a list of BuildInfo to describe what they can produce.
This fixes the need for factories to implicitly create one buildconfiguration
and then create another one 'officially' to support debug and release build
configurations to be set up for projects.
* Do no longer work around factories to create build configurations.
Change-Id: Ic372e4a9b5c582633b467d130538948472b89d91
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Those objects are shared data pointers that can (and should)
be used as values. This is now actually possible due to
the newly introduced public default constructor and
isValid() method.
Change-Id: I989e339bd495aa7581b01f17f00cbffe0b617b9c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Distributions will want to make Creator work with
their qbs package instead of adding it a second time
via the submodule, so we support that by checking for
the QBS_INSTALL_DIR environment variable.
This supersedes the current mechanism using QBS_SOURCE_DIR
and QBS_BUILD_DIR.
Change-Id: I2cff651cd23ea47b1a1434e33f80cb74ca0fc96b
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
These headers are not public anyway and must not be used outside of qbs.
Change-Id: I037b6d98bdd46e69b7337cf47f9328477b2d3351
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
First case: Re-parsing is requested while a project is being resolved.
The respective function can be entered more than once due to signal
callbacks, resulting in double deletion of the job object.
Second case: Closing Creator while a project is being resolved lets the
resolve job run unattended, resulting in a crash on exit.
Change-Id: I99e034a211ebe730dd02096ce76d601fbc848f5c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
After parsing, we tell the target about deployable files
and executables, so it can make use of that information
for deployment and remote execution, respectively.
In addition, the current default deploy configuration (consisting of
just an install step) is now set up only for the desktop device,
since other targets will likely provide specialized deployment
solutions.
The most noticeable effect of this patch is that the RemoteLinux
target and its descendants now work out of the box with qbs projects.
Change-Id: I512d4e215f2fa540efd4de5f5c1e53abaa0596d1
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Use setBuildDirectory() in the different BuildConfigurations instead
of reimplementing that over and over again.
Change-Id: Ic355fdb4624c71667ce470b3e2865c9a8722ef09
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Make methods static and add a instance() method for Signals/Slots.
Remove ProjectExplorerPlugin::taskHub() method and use the new
ones instead.
Change-Id: Ifae24ff19579fc524cbd61bddc826095c443adfa
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This introduces an API change for the project managers. Those are not
expected to call updateSourceFiles() anymore.
Task-number: QTCREATORBUG-9581
Change-Id: I77befd29fb851c9acf87204d571da00183c9cd05
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>