Commit Graph

1245 Commits

Author SHA1 Message Date
Christian Kandeler
9488b7e604 QbsProjectManager: Set the default working directory in the run config
... rather than in the run config widget. Otherwise merely opening the
run settings can change the behavior of applications.

Task-number: QTCREATORBUG-19374
Change-Id: Ib227ab07d09b7a8ce34909ae0b08b6b222bcee14
Reviewed-by: Georger Araujo <georger_br@yahoo.com.br>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-11-30 09:23:38 +00:00
hjk
1697f97aff ProjectExplorer: Register createes' base id in RunConfigurationFactory
This shifts the resposibility of creation/splitting of RunConfiguration
ids into what are essentially "type ids" and "build targets" to the base
implementation, possibly opening the path of abandoning the mangled ids
in favor of explicitly storing their constituent parts.

Take advantage of base id split in RunConfigurations for availableIds
/displayNameForId and for canCreate/canRestore/canClone.

Change-Id: I19fefb32757407ab5053a2ae0e5a79438659f6ec
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com>
2017-11-27 07:23:17 +00:00
Eike Ziller
4c8db5e9b7 Merge remote-tracking branch 'origin/4.5'
Change-Id: I32715e2fdbb14e4fccc4c58d3fd6052d7c1127f3
2017-11-24 10:03:38 +01:00
hjk
8e8890abc8 QbsProject: Compute uniqueProductName on the fly
To simplify and fix cloning.

Change-Id: I380834710243f104635628b8d455219f0f73e67b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-11-22 15:46:15 +00:00
Eike Ziller
89f9f22035 Merge remote-tracking branch 'origin/4.5'
Conflicts:
	src/plugins/clangcodemodel/clangutils.cpp
	src/plugins/cpptools/clangcompileroptionsbuilder.cpp
	src/plugins/cpptools/compileroptionsbuilder.cpp

Change-Id: I0728f08171103259407bbbb35f93b70c2f2e18d0
2017-11-21 13:28:55 +01:00
hjk
d1c9b33eb7 ProjectExplorer: Add a RunConfigurationFactory::canHandle(Target *)
All RunConfiguration factories had some kind of canHandle(Target *)
implementation. Centralize this notion.

Change-Id: Ie24a355e857bddfd76b866859b8c7a42ffc83840
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-11-20 08:52:00 +00:00
Jake Petroules
7a0fbf2c23 Use qbs.defaultBuildVariant to inform Qbs of the default build variant
Qt Creator always put its value for qbs.buildVariant in the config when
building Qbs projects. That overwrote values applied by the multiplexing
mechanism or by the project files, which is undesired. Instead, Qt
Creator will now use the qbs.defaultBuildVariant property, which is
provided for this reason.

Task-number: QTCREATORBUG-19316
Change-Id: I923dfb6e083135b7c3ae6346af3ac639a4f02dbc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-11-17 22:56:52 +00:00
Christian Kandeler
b289a3f87a QbsProjectManager: Run updateAfterParse() also on add/remove file
Adding and removing files via the project tree is essentially the same
thing as doing it by editing a project file, except that no reparsing is
necessary.

Task-number: QTCREATORBUG-19292
Change-Id: Idb1bcf0e183f34d4de513f69f974e45ac91afeeb
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-11-17 10:09:41 +00:00
hjk
9792547ef9 ProjectExplorer: Implement RunConfiguration::do{Clone,Restore} in base
It's possible now.

Change-Id: I49ed73312aea1627a9543890431e2e379e3fb3ec
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-11-16 14:08:33 +00:00
hjk
dfd4ad8c2d ProjectExplorer: Simplify IRunConfigurationFactory::clone() use
Change-Id: I005d6c87142d26dfc7ae1349329737a68f54c427
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-11-14 10:58:30 +00:00
Orgad Shaneh
d9cb19b229 Merge remote-tracking branch 'origin/4.5'
Change-Id: I60fca091b2eac67259580acba5ae934c16d74a83
2017-11-11 19:54:32 +02:00
hjk
5ca90a4a5e ProjectExplorer: Fix copying of RunConfigurationAspects
Moving aspect data closer to real Value semantics fixes
the regression introduced by 890c1906e.

Task-number: QTCREATORBUG-19186
Task-number: QTCREATORBUG-19192
Change-Id: Ieaeef3995ae06a817f266c1e2514f9e5793bd4e8
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-11-10 15:09:59 +00:00
Eike Ziller
7f626b1182 Merge remote-tracking branch 'origin/4.5'
Change-Id: Iceaa4ca40b5318744bde8a76c6d3ccca08df71bb
2017-10-25 16:07:21 +02:00
Eike Ziller
d50ffd0f3c Qbs: Fix translation issue
Change-Id: Ib8408e05b168657031fd15d17a9e3f25e501be88
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-23 13:07:27 +00:00
Christian Kandeler
d8d26f94b5 QbsProjectManager: Consider "force probes" setting
...in the "equivalent command line" widget.

Change-Id: Id0b4758b49848a313b5a938c66be5ce4c99ef550
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-10-20 12:48:12 +00:00
Joerg Bornemann
a181c3e4d7 QbsProjectManager: Fix detaching of Qt containers in for loops
Found by clazy.

Change-Id: I9ccca922f6aa8b6a8f1c16c6e62db8dae3c4cc6f
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-19 14:48:18 +00:00
Joerg Bornemann
e71912b45b QbsProjectManager: Avoid allocations in string comparisons
Use case-insensitive comparisons instead of converting toLower() first.
Found by clazy.

Change-Id: I0d32b0ba7ccb5493d1c86d41044b09c8baed3dc8
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-19 14:22:59 +00:00
Joerg Bornemann
235f9be955 QbsProjectManager: Avoid allocations when checking environment variables
Use qEnvironmentVariableIsEmpty instead of qgetenv(...).isEmpty().
Found by clazy.

Change-Id: I62054e68c3b51c69be4ce6605ed6aef20633c9a9
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-19 14:22:53 +00:00
Joerg Bornemann
7aaaade138 QbsProjectManager: Add missing emit keywords
Found by clazy.

Change-Id: I55126cc2f6d19ea9f713f4c83cbf02e48d5ddf8e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-19 14:22:44 +00:00
Orgad Shaneh
371b2bbbab Merge remote-tracking branch 'origin/4.5' into master
Change-Id: Ibcdd1230b40d1ca7a414843ee0f9ae4cddb29f6f
2017-10-17 20:00:44 +03:00
Christian Kandeler
3116d901ee QbsProjectManager: Show executable path in run config widget
This appears to have broken in a recent refactoring.

Change-Id: Ice186197329b3b22635a8aca6d9bb4bb6e3418c5
Reviewed-by: hjk <hjk@qt.io>
2017-10-16 09:14:13 +00:00
Christian Kandeler
79d11ed740 QbsProjectManager: Fix run config names
After 890c1906e6, all the run configurations had generic names, because
the initialize() function did not call the base class implementation.

Change-Id: I2eff43f7c40214bcc1167d596fe2328a4b3c122a
Reviewed-by: hjk <hjk@qt.io>
2017-10-16 09:05:25 +00:00
Eike Ziller
1c1dd45bfe Merge remote-tracking branch 'origin/4.5'
Change-Id: Iebd340258966aff910fb9ab0e45b5149e8f242f0
2017-10-12 09:49:14 +02:00
Christian Kandeler
01f81fa4dc QbsProjectManager: Get rid of redundant code
Change-Id: I44c5058161312c832bf1e74c417007d02f2f4f7b
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-10-11 14:07:24 +00:00
Christian Kandeler
f93a55ac5c QbsProjectManager: Fix build setting getting lost
If the user set some qbs property and also unchecked the "Use default
installation" box, the latter setting got lost on re-loading the build
step configuration.

Task-number: QTCREATORBUG-18895
Change-Id: I868312fbbd8e5ca9ad9f34b88866fe7b72884a9a
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-10-11 14:06:14 +00:00
Eike Ziller
07bec99e8f Merge remote-tracking branch 'origin/4.5'
Conflicts:
	src/plugins/debugger/debuggerruncontrol.cpp
	src/plugins/projectexplorer/gcctoolchain.cpp

Change-Id: Iaad0659293681cce4266fc3e4ba2a4f2068de911
2017-10-09 12:09:27 +02:00
Orgad Shaneh
5e8e619dd0 Merge remote-tracking branch 'origin/4.4' into 4.5
Change-Id: I9b7cb3d845628abf69a73a279f5a79202c0976c2
2017-10-04 16:11:17 +03:00
Tobias Hunger
2966b7349f Qbs: Fix reparsing triggered by RunConfiguration changes
Task-number: QTCREATORBUG-18999
Change-Id: Ib44735d378029a30163ff2a5833d893bc0eb88c6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-10-04 12:36:36 +00:00
Ulf Hermann
defcb6a55a QtSupport: Add a method to retrieve the QML path
We check that qmake property in many different places.

Change-Id: Ifd5efe4ad2831385493bd3afe8538929578e8fb4
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-29 08:26:33 +00:00
Christian Kandeler
75395af824 QbsProjectManager: Respect overridden target ABI
Auto-detecting the architecture in qbs is all well and good, but if the
user explicitly set an ABI in the toolchain widget, we must set
qbs.architecture accordingly.

Change-Id: I3a2c441ceea5e939e43764e0468588d2d0ef323c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-09-27 16:13:06 +00:00
Eike Ziller
e8fecc6d08 Merge remote-tracking branch 'origin/master' into 4.5
Change-Id: Ic3a34b18708d637c94000e9bb3cad1b500e7356d
2017-09-27 06:34:25 +02:00
Orgad Shaneh
a8410721be Qbs: Add variable chooser to Run Configuration widget
Change-Id: I8b52b4021e640232e722f33ce20229fe4c7280c7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-09-26 14:09:31 +00:00
Christian Kandeler
b70637de41 QbsProjectManager: Fix project parsing
Some recent ProjectExplorer refactorings caused the projects to stay
in the parsing state indefinitely, making it impossible to build or
run anything.

Change-Id: I458a5560cc8d0c7c3183c0f104f00b073039f28e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-26 10:22:18 +00:00
Christian Stenger
e255baaa8f CppTools: Add target type information to project part
Let project managers store information whether a project part
belongs to an executable or a library and use this information
inside the AutoTest plugin.
This information will help to determine which targets are
relevant for the execution of tests.

Change-Id: I93b42797bf55225425398dc83aecea3c99eea290
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-09-18 10:01:30 +00:00
Marco Bubke
b6e12f4a1c Convert macros from plain QByteArray to a vector of structs
The old code model expected the macros as C++ formatted text
("#define Foo 42) but newer targets like the Clang codemodel expect key
value arguments like "-DFoo=42". So instead of parsing the text again and
again we use an abstract data description.

Task-number: QTCREATORBUG-17915
Change-Id: I0179fd13c48a581e91ee79bba9d42d501c26f19f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-14 15:23:56 +00:00
hjk
890c1906e6 ProjectExplorer: Re-organize RunConfiguration constructors
The idea is to massage the setup in a way to make implementation
of new configurations less error prone by identifying recurring patterns
and sharing repetitive code that tends to be forgotten (see Android cloning).

The former two lines of constructors (owner-and-id, owner-and-source)
are split into a simple, shared, constructor and new setId() and
copyFrom() functions.

The change is mostly mechanical, some multiple calls to fromMap
have been removed, though, some consts added.

Otherwise, to keep the patch small it temporarily introduces two
helper templates in IRunConfigurationFactory. Also, setId() signatures
have not been unified yet. These won't be needed in the final setup.

Change-Id: I8c0734496caae744a9883fe6d92c1d8f8e0234ea
Reviewed-by: hjk <hjk@qt.io>
2017-09-13 09:24:26 +00:00
Tobias Hunger
1cf1700d1c Core::FileIconProvider: Add helper method to get a directory icon with overlay
Add a helper method to request a directory icon with an overlay icon for the
project tree.

Change-Id: Idea2ea9ec2ea6790bf8d087723700364fbcafec6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-08 11:18:09 +00:00
Tobias Hunger
43c04ac80b BuildSteps: Fix a number of crashes
Fix crashes due to activeProjectConfigurationChanged signal sending
a nullptr.

Uses the same fix as QTCREATORBUG-18865, but in more places:-)

Task-number: QTCREATORBUG-18866
Change-Id: Ic71af5ed26b2a44339f0c687f3f46bfdf62c2489
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-08 11:16:38 +00:00
Eike Ziller
a9aac73e37 Merge remote-tracking branch 'origin/4.4'
Change-Id: I53a31b3463b2bd8efffb1c00e5d172854d8ff5e5
2017-09-08 13:06:07 +02:00
Eike Ziller
5680c1c874 Register Qbs documentation (if available)
Task-number: QTCREATORBUG-18441
Change-Id: I800fae056f7d1cfc60fab3b0c1964d3b9a2a99f7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-09-07 06:46:36 +00:00
Christian Stenger
afc0192c8f QbsPM: Fix qbs build
This amends dce0b1c945.

Change-Id: I062d71d21e942fcdba87dd0425fd656f2b3d9641
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-09-06 11:20:35 +00:00
Tobias Hunger
4ef01c961e app_version.h: Make IDE name configurable
Change-Id: I993f452c8d09cf89e9a2958fc8e36b7d2c17ee6f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-05 10:19:48 +00:00
Eike Ziller
ca959d8063 Merge remote-tracking branch 'origin/4.4'
Change-Id: Ic9a1cf3b40b259d9c77f2f542405d189171e0fbf
2017-09-05 12:15:42 +02:00
Ivan Donchevskii
410e31c665 CppTools: set default -std=c++11 for Qt4
qmake from Qt4 does not provide C++ standard and
clang can't properly compile Qt4.8.6 and earlier
with c++1z. Behavior in this commit mimics qmake
from Qt5 which also provides c++11 as a default
standard.

Task-number: QTCREATORBUG-16441
Change-Id: I3d29891d6e47f2367f2b3b2bf4be4d86661924e9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-09-05 09:37:14 +00:00
Orgad Shaneh
139792ee25 Merge remote-tracking branch 'origin/4.4'
Change-Id: I9ab2c68d2bd07b0dd89051a2f5f6fa51676d8594
2017-08-30 01:24:11 +03:00
Eike Ziller
04da881268 Fix copyright year in plugin info, --version, and macOS info
By using the new QTCREATOR_COPYRIGHT_YEAR variable

Task-number: QTCREATORBUG-18612
Change-Id: I3bcf0319660d210436d3130c00f43325c460a66c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-08-24 11:23:40 +00:00
Orgad Shaneh
1f443bde52 Replace QFileInfo(fileName.toString()) with fileName.toFileInfo()
Change-Id: Iac7f866b4846939af4dcee086ab07797cc6b8ff1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-08-24 08:54:16 +00:00
Eike Ziller
d8fd5292f1 Merge remote-tracking branch 'origin/4.4'
Conflicts:
	src/tools/clangbackend/ipcsource/clangiasyncjob.cpp
	src/tools/clangbackend/ipcsource/clangjobrequest.cpp
	src/tools/clangbackend/ipcsource/clangjobrequest.h

Change-Id: Ib8602530663813ade418f995dfd2a736908cfe75
2017-08-15 10:07:51 +02:00
Tobias Hunger
f119eec4d1 Project: Get rid of builddirectoryChanged signal
Get rid of Project::buildDirectoryChanged signal as well as
Target::buildDirectoryChanged (and the infrastructure).

Change-Id: Ia749e62eec7e182e558d81115dc2a3d07b72b346
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:20:37 +00:00
Tobias Hunger
e52ebbf217 ProjectExplorer: Add subscribeSignal method to targets and projects
Add a subscribeSignal method to targets and projects that will make
sure all signals of all project configurations added during the lifetime
of the project/target will get connected (if the type matches).

Use this to connect to some signal in all BuildConfigurations of
a project and get rid of code that keeps connecting to the current
build configuration.

Use Project::buildEnvironmentChanged as an example and convert its
usages.

Change-Id: I689bcebac4b191bf3f8a18765bf18eaac371c5fe
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:19:28 +00:00