Commit Graph

381 Commits

Author SHA1 Message Date
Eike Ziller
242b7bd209 Merge remote-tracking branch 'origin/3.0' 2013-10-29 08:17:05 +01:00
Christian Kandeler
3c7af78448 QbsProjectManager: Fix overriding of properties.
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>
2013-10-25 12:13:39 +02:00
Christian Kandeler
9aea8087a1 QbsProjectManager: Fix build config comparison.
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>
2013-10-25 12:12:43 +02:00
Eike Ziller
c3119d1aa7 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	src/plugins/qnx/qnxutils.cpp

Change-Id: I019ad21fb4c128eb736c8ab2d09310757e3be037
2013-10-24 08:56:29 +02:00
Tobias Hunger
9dd656914a Qbs: Fix memory leak in Qbs Project Manager
Make sure the root node of the project tree is actually deleted.

Change-Id: Idf32460d7b5d0518da9536084cccb074638cfce3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-10-22 13:26:50 +02:00
Eike Ziller
4eabcdc8fd Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/git/gitplugin.cpp
	src/plugins/qt4projectmanager/qmakeproject.cpp

Change-Id: Icbd485214b1add7869233dfe0dd9c6a76bddfc7d
2013-10-22 08:40:59 +02:00
Tobias Hunger
5126f01fd6 Qbs: Do not throw away old project data if parsing failed
Change-Id: Icc54abcfcee1f8deea5247d46d8d13b75741feda
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-10-21 14:27:35 +02:00
Christian Kandeler
c4c9b90b7f QbsProjectManager: Do not create a build graph when resolving a project.
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>
2013-10-18 13:46:05 +02:00
Eike Ziller
8474a6f128 Merge remote-tracking branch 'origin/3.0' 2013-10-14 15:31:54 +02:00
hjk
f463c4dade ProjectExplorer: Make Project::id value based
Change-Id: Ie210d2a068158c6caaac66aae58cbd886f61c18d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-10-14 13:35:59 +02:00
Christian Kandeler
69c4770e68 QbsProjectManager: Make sub-project files available in the locator.
They are currently ignored.

Change-Id: I9a13d37e857d03f988884031bbba81a7f3b95d02
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-10-10 17:30:52 +02:00
Daniel Teske
e462c9620d ProjectPart: Add meta information
Add displayname and project file path and a pointer back to the
project.

Change-Id: Ic9a18f52a6291493bd3a95fd3456ed0e1a3c63e3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-01 16:31:36 +02:00
Nikolai Kosjar
8e62876f64 QbsProjectManager: Fix include
Change-Id: Ibe7f90fa7c4374c936dbe342ec2d3c056904d42b
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-18 17:00:39 +02:00
Tobias Hunger
d2adc30335 BuildConfigurationFactory: Refactor code
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>
2013-09-17 12:00:01 +02:00
Christian Kandeler
3948f9d887 QbsProjectManager: Use qbs::Project as a value.
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>
2013-09-11 16:27:26 +02:00
Christian Kandeler
3e6fcd6063 QbsProjectManager: Support using an installed qbs.
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>
2013-09-11 12:01:04 +02:00
Christian Kandeler
afbf8bd2f7 QbsProjectManager: Remove unneeded include statements.
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>
2013-09-09 16:35:11 +02:00
hjk
98917598d3 ProjectManager: Use Core::Id for progress types
Change-Id: I72993fda50ad70ad2d7c2f449923ac6e34b9e737
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-04 14:59:06 +02:00
Christian Kandeler
5b21ee5925 QbsProjectManager: Fix potential crashes when resolving a project.
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>
2013-09-03 16:24:31 +02:00
Christian Kandeler
f27b738f65 QbsProjectManager: Add support for remote targets.
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>
2013-09-03 16:23:32 +02:00
hjk
df36184371 Core: Static pattern for ProgressManager, clean up all users
Change-Id: I4af8793ca69a3af9e99baeb7c31dad3864266f91
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-02 12:41:47 +02:00
hjk
99f22de6ba TaskHub: Add convenience function to add a task and clean up users
Change-Id: I5c76f8af720092d4e47b1a9fa889fb3a7010f21f
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 12:44:10 +02:00
hjk
68537ef0f3 Core: Force use of static DocumentManager interface
Change-Id: Ieb2c0ecd3d34a3aad653c6eb5b00bc20d2c61986
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-30 11:27:55 +02:00
Tobias Hunger
a7bb77288d BC: Move builddirectory handling into BC itself
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>
2013-08-28 11:41:38 +02:00
Tobias Hunger
95859289b8 KitManager: Use static API as other singletons do
Change-Id: Ia49c6552a5aae72870687ef9c64f2642fbe24155
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-08-21 16:55:16 +02:00
Tobias Hunger
c821e7c5ed Qbs: Do not clean compiler issues when reparsing
Task-number: QTCREATORBUG-9979

Change-Id: If66146a6a5764b916470426e094c9f3f617ef2cd
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2013-08-20 12:20:03 +02:00
Tobias Hunger
85b2017a69 TaskHub: Move code to be more conform with other singletons
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>
2013-08-19 11:24:32 +02:00
Tobias Hunger
27b4802988 UiCodemodel support for qbs
Change-Id: I0c83f3bb5c1c127169d695f42c169f4e28d1b06d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-09 15:24:35 +02:00
hjk
d0eb10582b TaskHub: De-noise user code
Change-Id: Ieb559e884fb08c96d739cf7684389ff740a6233e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-02 12:06:32 +02:00
Oswald Buddenhagen
6896546ba5 Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/cpptools/cppmodelmanager.cpp

Change-Id: I0e69dfad951eb81d8008f5ca05e8fb6999ae2c8a
2013-07-25 13:18:31 +02:00
Nikolai Kosjar
072b7c5718 CppTools: Check if project has changed before reparsing
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>
2013-07-22 08:33:52 +02:00
Eike Ziller
ab0c3da08f Merge remote-tracking branch 'origin/2.8'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/projectexplorer/projectexplorer.cpp

Change-Id: I37e550646f877b50693043894976a693ac22ad5e
2013-07-11 08:02:41 +02:00
Eike Ziller
dd43d9908f Rename IDocument::fileName --> filePath
That is what it actually is, wrt how Qt API calls it.

Change-Id: Ied02055debf6aad75556b0d9d22e8ba2f72be555
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-09 13:51:42 +02:00
Tobias Hunger
e455371139 Qbs: Clear build system related tasks before reparsing qbs
Task-number: QTCREATORBUG-9778

Change-Id: Ic054f1619832a5ff0ea53d7fc5225fe674ddac13
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-07-09 12:34:32 +02:00
Nikolai Kosjar
dc5a0e3e5a Project managers: Force "Parsing" notification
...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>
2013-06-24 13:11:16 +02:00
Tobias Hunger
161b818b23 Qbs: Fix crashes when switching QbsRunConfigurations
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>
2013-06-21 17:54:37 +02:00
Tobias Hunger
dd1a77aef9 Qbs: Fix some more issues introduced by the subprojects support
Change-Id: I6edf9147f579c115394695d7f995f38448610284
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-21 15:09:52 +02:00
Tobias Hunger
9368a82eaa Qbs: Make use of buildSystemFiles
Change-Id: I1d7151cd0aa6388c5d7fe20dbc4ed2a154325e1a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-21 13:35:41 +02:00
Tobias Hunger
501089d632 Qbs: Fix logic inversion
Change-Id: I635a1a9704171f70ef07dbe2ba23806cec0136b1
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-18 12:53:15 +02:00
Tobias Hunger
a1921d91f4 Qbs: Adapt to the latest round of API changes in Qbs
Change-Id: I59fd151a1a485990ca0da7dac4fdc028f915ec6b
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-18 12:34:03 +02:00
Tobias Hunger
dce41176d8 Qbs: Avoid useless reparsing when possible
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>
2013-06-17 18:35:39 +02:00
Tobias Hunger
99ba6fb8da Qbs: Make file list update after reparsing a project
Change-Id: I1647cfed2a58aa47a545e3a329e0f31142bdc5fd
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-12 12:17:12 +02:00
Tobias Hunger
f5d7707188 Qbs: Allow for building products
Change-Id: Id6fcdbdb0c776458eb16c7fc6765046969c2658e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-10 15:41:26 +02:00
Tobias Hunger
9db57f3f05 Qbs: Delay reparsing of the project
Makes the whole thing feel more responsive:-)

Change-Id: I1b3941ab42bb1a281c0923e3826b00d1f1400abe
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-06 18:46:33 +02:00
Tobias Hunger
26483b6fa9 Qbs: Update to latest Qbs API
This also fixes parsing when environment variables are read in
qbs files.

Change-Id: Iad78296986f8700272d6027d2ffa645d4207bdef
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-06 18:32:22 +02:00
Tobias Hunger
531676bc27 Qbs: Remove some useless member variables
Change-Id: I648984616ebd965e51ebe6ec6f369a6dfa4fc339
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-06 18:32:09 +02:00
Tobias Hunger
4a8fc32665 Qbs: Clear compile issues on rebuild and remove useless comment
Change-Id: I705564ee422295ec467cd51a62aa71183afa0b63
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-06-06 18:31:51 +02:00
Tobias Hunger
d080c54327 Qbs: Actually emit signal that parsing started
The logic to disable building depends on this signal.

Change-Id: I2341ddb70eebeb25c8c4ffdbbb1e5a83945fb971
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-05-30 14:15:50 +02:00
Kai Koehne
17539d670f Revert "Project: Set QML/C++ languages where both are possible"
This reverts commit 75691393ec. Otherwise
we'd enable QML debugging for virtually all projects.

Change-Id: I5518624a9973a9f61fbef6c680b5a83c74d0b4a9
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-05-28 13:59:16 +02:00
Eike Ziller
d8bd56bcd6 Merge remote-tracking branch 'origin/2.7' into 2.8
Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h
	src/plugins/qbsprojectmanager/qbsbuildstep.cpp
	src/plugins/qbsprojectmanager/qbscleanstep.cpp
	src/plugins/qbsprojectmanager/qbsnodes.cpp
	src/shared/qbs

Change-Id: I8fc97ed61c47af2c3d9e5cc2bf81e97661204d4e
2013-05-24 16:20:10 +02:00