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>
That is what it actually is, wrt how Qt API calls it.
Change-Id: Ied02055debf6aad75556b0d9d22e8ba2f72be555
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
...so parsing progress will also be reported for projects consisting of
only one source file.
Task-number: QTCREATORBUG-9597
Change-Id: If35a00b6f949258d64921f144919269fa0c81d36
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Do not use pointers to qbs::(Group|Product|Project)Data. Those are
implicitly shared classes, and now have a isValid method so that
default constructed instances can be spotted.
Change-Id: Icd49fa517f2e17bc60cc82d103f479d3a2e7097a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Do not trigger a reparsing when e.g. changing environment variables
that qbs does not access.
Change-Id: Ieda4f68112d372c561d99c8dffe016af0d31ad41
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Makes the whole thing feel more responsive:-)
Change-Id: I1b3941ab42bb1a281c0923e3826b00d1f1400abe
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This also fixes parsing when environment variables are read in
qbs files.
Change-Id: Iad78296986f8700272d6027d2ffa645d4207bdef
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
The logic to disable building depends on this signal.
Change-Id: I2341ddb70eebeb25c8c4ffdbbb1e5a83945fb971
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>