aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/buildstep.h
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Remember build step expansion stateChristian Kandeler2019-04-121-0/+6
| | | | | | | | | | | | | | ... when switching targets. If a user expands a build step and then switches the target, it's reasonable for them to assume that the step is still expanded when switching back. Ideally, we would also do this for aspects (if only for consistency), but unlike for build steps there's no central code location, so let's leave it at this for now. Fixes: QTCREATORBUG-21343 Change-Id: Ic142ab5d676bf7d3b6aeabb6f7a26be7bd18f22c Reviewed-by: hjk <hjk@qt.io>
* Say hello to Android CMake supportBogDan Vatra2019-03-061-0/+1
| | | | | | | | | | | | | | | | | | Requirements: - NDKr19 or newer - Qt 5.12.1 or newer QtCreator supports the following variables: - ANDROID_PACKAGE_SOURCE_DIR - ANDROID_EXTRA_LIBS Be aware, that there is a lot of magic done on QtCreator side, and you can't use only cmake to build an Android APK. [ChangeLog][Android][CMake] Add Android support for CMake projects. Change-Id: I1d351976ed56f424c2bc972f4ff7b5968147a2ed Reviewed-by: hjk <hjk@qt.io>
* PE: Fix build with MSVC2015Christian Stenger2019-02-011-0/+1
| | | | | Change-Id: Iaef732b0a23dea4aa84e0f5381559508a02541b8 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* ProjectExplorer: Rework the build step run interfaceChristian Kandeler2019-01-311-7/+19
| | | | | | | | | | | | | | | | | | | | | Originally, the build manager used to run all build steps in a dedicated thread. Communication between the step and the manager happened via a QFutureInterface that was passed into the step's run() function. Later, new steps were added that operated asynchronously, so the build manager had to differentiate between the different kinds of steps for starting and stopping. These days, almost all build and deploy steps work asynchronously, which made the QFuture-based interface look increasingly odd. With this patch, all build steps are expected to work asynchronously, so the build manager no longer needs to differentiate. Steps are started and requested to stop via the run() and cancel() functions, respectively, and emit the finished() signal when they are done. Build step implementors no longer have to deal with a QFutureInterface. For steps whose implementation is inherently synchronous, the BuildStep base class offers a runInThread() function. Change-Id: If905c68b234c5a669f6e19f43142eaa57d594803 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Simplify BuildStep::init() signaturehjk2019-01-181-1/+1
| | | | | | | | The extra parameter was always computed but used only in one place, and that use got removed lately. Change-Id: Ie10c0107ca70ee97ce03f83294992aab8d1a3ffe Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: ModernizeAlessandro Portale2018-12-041-3/+2
| | | | | | | modernize-* Change-Id: I01b9b3d73a2dc2a5c858cf316a1fbff7a4113600 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* ProjectExplorer: Use a data member for BuildStep::runInGuiThreadhjk2018-10-231-1/+4
| | | | | Change-Id: Ia219fcf595c05c6f1b82f420454bd906c6870ee7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Make BuildStep::immutable use a data memberhjk2018-10-231-1/+4
| | | | | | | | | Default to false, remove all no-op reimplementations. And rename the getter to isImmutable according to the rules. Change-Id: I8cce79d88fb59badfa1cffcf30a46f7ff3b09e8b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use BuildStep member to decide on initial expansionhjk2018-10-221-3/+5
| | | | | | | | Previously, the build step implementation had the same power as it decided on the widget to use, and the widget had such a member. Change-Id: Id9c783e29610b68cfbbe2c9aa91da831d41c3286 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Change BuildStepConfigWidget::summaryWidget()hjk2018-10-171-2/+3
| | | | | | | | | | From a virtual function to a normal one backed by a real data member. That's essentially what several re-implementations did, the other ones used a fixed value instead. Change-Id: I61e45f1d4f7f0f80fe2eb1f2729785f37e7bb803 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove BuildStepListWidget::additionalSummaryText()hjk2018-10-161-2/+0
| | | | | | | | | | | ... and related code. The base implementation returns an empty string, the only re-implemented version in the qmake step returned a member that has been empty since 243145621 "Profile introduction" in 2012. Change-Id: Ifafdc1b88bf4a96cdca5b48d9ccf47b63d9d987a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Make BuildStepConfigWidget::displayName a valuehjk2018-10-151-1/+4
| | | | | | | | | | | Use BuildStep::displayName() as default. This probably could be the only possibility, but currently there are some discrepancies that are kept in this patch to make the patch mechanical. Change-Id: I2a1e5c2ff37ad95e25309eb16e07099e42191f60 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Merge SimpleBuildStepWidget into BuildStepWidgethjk2018-10-121-23/+7
| | | | | | | | | | The extra m_step member is not worth the abstraction, especially since almost all non-SimpleBuildStepWidget have something similar, too. Also, as several derived classes needed to correct SimpleBuildStepWidget's setShowWidget(false). Change-Id: I6e80d8c84c363b90dc27c70abd7fa6cefa1ed91e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make BuildStep::createConfigWidget default implementation non-purehjk2018-09-201-1/+1
| | | | | | | | | Amends 760723f7. The intention was actually that the default implementation is not only good enough, but also that there doesn't need to be a re-implementation to call it. Change-Id: I47bd4dba6f8df2826d17696f727252954a5bbabf Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Replace virtual BuildStepConfigWidget::showWidgethjk2018-09-191-2/+7
| | | | | | | | | | | | | | ... by a bool member. One reason less for the need of custom derived classes, i.e. one step forward to a setup where the then-generic config widget can be created in BuildStepListWidget::init() and filled with aspect- created subwidget, reducing the need of per-BuildStep boilerplate similar to what was done in RunConfiguration recently. Task-number: QTCREATORBUG-19985 Change-Id: I85d26bdb6b35d0d6715782214328a40eef87286e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Simplify BuildStepFactoryhjk2018-05-311-5/+6
| | | | | | | | | | | | | | | De-QObject-ify class, tr contexts are now the product's context, which was the case in some BuildStepFactories already, and is current state in {Run,DeployConfiguration}Factory. One spurious object name removed. De-virtualize canHandle(), it was never overloaded and is not intended to be overloaded anymore. Remove unused clone() function. Change-Id: Iff7fba5f707505f868f94458084a18650535fa23 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Remove unused BuildStepFactory::clone methodhjk2018-05-161-1/+0
| | | | | Change-Id: I559441a6160e288b647bdb45b759992df26227d1 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Use override consistentlyTobias Hunger2018-05-071-4/+4
| | | | | | | clang-tidy fixes from modernize-use-override check. Change-Id: I216701aec0b4134321e220f9e599e053a8e22945 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* De-emphasize PluginManager::getObjects<Type>()hjk2017-12-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by additionally keeping local (currently non-owning) pools per "interesting" type. Current situation: - The global object pool does not scale well for looking up objects, as iteration plus qobject_cast typically iterates over all pooled objects. - User code that can use typed results from the object pool need to have access to the full type definition anyway, i.e. depend on the plugin of the target class anyway. The patch here solves the scaling problem is to have local type-specific pools to which objects register in their constructors and deregister in their destructors. This patch here does *not* change the ownership model of the pooled objects, however, it opens the possibility to change the ownership model per type (e.g. by not putting things into the global pool at all anymore and make the local pool 'owning') and the intent is to handle that in later patchs. Even without the follow-up patches this here is a performance improvement for the cases that access the local pools instead the global one, i.e. "practically all". Change-Id: Ib11a42df2c4ecf5e1155534730083a520dd1995b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-081-19/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follow the rough pattern of recent *RunConfigurationFactory changes for build and deploy configurations. - Collapse the two lines of constructors similar to what 890c1906e6fb2ec did for RunConfigurations * Deploy* was purely mechanical * Build* ctors are split in connects() in the ctor body to create "empty shell for clone" etc and build step additions in initialize() functions which are only used in the create() case. -- Allows to collapse the shared 'ctor()' functions, too. - Move FooBuildConfigurationFactory::create() implementations to FooBuildConfiguration() constructor. That was a strange and unneeded ping-pong between factories and objects, and furthermore allows one level less of indirection (and for a later, left out here, some reduction of the FooBuildConfiguration interfaces that were only used to accommodate the *Factory::create() functions. - Most {Build,Deploy}Configuration{,Factory} classes had a canHandle(), but there wasn't one in the base classses. Have one there. - Most canHandle() functions were checking simple restrictions on e.g. project or target types, specify those by setters in the constructors instead and check them in the base canHandle() - clone() is generally replaced by a creation of a "shell object" and a fromMap(source->toMap()), implemented in the base, there are two cases left for Android and Qbs that needed(?) some extra polish - generally use canHandle() in base implementation, instead of doing that in all Derived::canFoo() - as a result, canCreate/create/canClone/clone reimplementations are not needed anymore, keep the base implementation for now (could be inlined into their only users later), but de-virtualize them. - Combine Ios{Preset,DSym}BuildStepFactory. There was only one 'dsym' build step they could create. - Split the 'mangled' id into the ProjectConfiguration subtype specific constant identifier, and a QString extraId() bit. Only maintain the mangled id in saved settings. - Make ProjectConfiguration::m_id a constant member, adapt all constructors of derived classe. Not done in this patch: - Finish possible cosmetic changes on top - Add a way to specify restrictions to supported Qt versions (used in Android/Ios), as the base implementation does not depend on the qtsupport plugin - Combine the QList<X> availableFoo() + createFoo(X) function pairs to somthing like a direct QList<struct { X; std::function<X()>; }> fooCreators() to avoid e.g. the baseId.withSuffix() <-> id.suffixAfter(base) pingpong - Remove the *Factories from the global object pool - Do something about priority(). Falling back to plain qmake in android+qmake setup is not helpful. Change-Id: I2be7d88d554c5aa8b7db8edf5b93278e1ae0112a Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Re-organize RunConfiguration constructorshjk2017-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* ProjectConfiguration: Add isActive() methodTobias Hunger2017-08-021-0/+2
| | | | | | | | | | Returns true if the ProjectConfiguration element is currently active and false otherwise. Just a convenience method. Change-Id: If75809ae7e78149d264deaaf6adc4ca8a8be43c2 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* ProjectConfiguration: Add project() memberTim Jenssen2017-07-311-1/+1
| | | | | | Change-Id: I0a7170c1721a9e5bcf18af1bab8158af71c64454 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Qmake: Add variable choosers where variables are parsedOrgad Shaneh2017-03-291-0/+2
| | | | | Change-Id: I6203ebadbc934a7ae80ae1c5ca3cfad2471b787e Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Give the values of BuildStep::OutputFormat better namesChristian Kandeler2017-01-191-1/+5
| | | | | | | | The old ones did not convey their meaning very well. In particular, NormalOutput and MessageOutput were easily confused. Change-Id: Ia0a8c1b1c366ab3f5c59f751b37b8b1f68f6831d Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: De-duplicate code in IBuildStepFactory derived classeshjk2016-06-101-10/+21
| | | | | | | | | | | | | | This removes 900 lines of duplicated code, some duplicated checks at runtime and some (minor) quadratic behavior when gathering display names. canClone(), canRestore() and canCreate() and restore() use the same pattern. Handle that on the core side once. Leave retore() virtual to let the ios code unmodified (which is likely not needed, later...). Introduce 'Unclonable' and 'Uncreatable' flags to keep Android package installation and WinRT deployment (non-)functionality unchanged. Change-Id: I0325479aff818a4038b2f241ca733b8d8cd66f2f Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* BuildStep: Remove finished() signal and use FutureInterface to reportTobias Hunger2016-04-251-2/+2
| | | | | | | | | | Remove the finished() signal that is (sometimes) used to report that a buildstep is done and use the FutureInterface for that purpose consistently. Change-Id: Ibe5520b562b91f1a7f4fc73ee898b33b930029ec Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Projectexplorer: Modernize codebaseTobias Hunger2016-04-151-1/+2
| | | | | | Change-Id: I4793b58aa77bcd46af99f8b843c0f7439cdc9269 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com> Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
* ProjectExplorer: ModernizeTobias Hunger2016-02-031-17/+5
| | | | | | | | | * Use override where appropriate * Use pragma once * Make more constructors explicit Change-Id: I2865fe10f288e3de570826058e43b70a0cb4ee37 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* ProjectExplorer: Use Qt5-style connectsOrgad Shaneh2016-02-011-2/+3
| | | | | | | The heavy lifting was done by clazy. Change-Id: I619db09a79760186b72e7662490ed1205155c1a7 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* ProjectExplorer: Sprinkle overrides over the codeTobias Hunger2016-01-291-1/+0
| | | | | | | Sprinkle overrides over code derived from classes in ProjectExplorer Change-Id: Ia4cc25649f7dc00b0ea126d8176a59afbc5ed574 Reviewed-by: hjk <hjk@theqtcompany.com>
* Update License according to agreement with Free Qt FoundationTobias Hunger2016-01-191-17/+12
| | | | | | | * Update files in src/plugins Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* BuildManager: Provide context of earlier build steps to initTobias Hunger2015-11-161-1/+1
| | | | | | | | This information can be used to get information from earlier steps, which e.g. queried for android devices to deploy to. Change-Id: Iefe1c9443915cb6211f86f98ff7aaf3cb75145ba Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* Remove unnecessary destructorsTobias Hunger2015-11-161-2/+0
| | | | | Change-Id: Id0bc2d3a305e6af24838266195ab22e04e3a12a1 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* ProjectConfiguration: Sprinkle override and explicit over the codeTobias Hunger2015-11-161-3/+3
| | | | | | Change-Id: I2aa3a32a0d30f1d122977d94d4109227dea6bbd7 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Tasks: Make the linking of compile output to Tasks more robustDaniel Teske2015-04-211-1/+6
| | | | | | | | | | | | | | | | | | | | Clicking on error messages is supposed to jump to the editor. And "Show Output" on the task is supposed to select the error in the output. The old code just registered the task for the last line of output. This broke for every parser that allowed for error messages that spanned multiple lines. And was obviously also incorrect for tasks that weren't generated due to compile output. Fix both of those issues by giving the IOutputParsers more control on which lines are linked to a task. Task-number: QTCREATORBUG-14136 Change-Id: I095922c9875620dabfb7d406f6b152c8a9b25b62 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com> Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* Update LicenseEike Ziller2015-01-161-6/+6
| | | | | Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* License updateEike Ziller2014-10-091-7/+8
| | | | | Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* Always pass Core::Id by value.Christian Kandeler2014-07-011-4/+4
| | | | | | | | | | | Currently we pass in some places by value, elsewhere by const ref and for some weird reason also by const value in a lot of places. The latter is particularly annoying, as it is also used in interfaces and therefore forces all implementors to do the same, since leaving the "const" off is causing compiler warnings with MSVC. Change-Id: I65b87dc3cce0986b8a55ff6119cb752361027803 Reviewed-by: hjk <hjk121@nokiamail.com>
* Incremented year in copyright infoRobert Loehning2014-01-081-1/+1
| | | | | | Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Merge remote-tracking branch 'origin/2.6'Oswald Buddenhagen2013-01-311-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp src/plugins/qmldesigner/designercore/include/widgetqueryview.h src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp src/plugins/qnx/bardescriptormagicmatcher.h src/plugins/qt4projectmanager/profilekeywords.cpp src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
| * Incremented year in copyright infov2.6.2Robert Loehning2013-01-291-1/+1
| | | | | | | | | | Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Replace BuildConfigWidge with NamedWidgetDaniel Teske2012-11-161-30/+0
| | | | | | | | | | | | | | They have a identical interface. Change-Id: Ia626496fbaffedefff6ee20b958cd505085d89f7 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* | BuildConfigWidget: Make displayName property instead of a virtual funcDaniel Teske2012-11-161-1/+16
| | | | | | | | | | | | | | To make the interface the same as NamedWidget. Change-Id: I5961b4e5aa7f5acf3a7f83e82b6fa4266b9ebf97 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* | Remove BuildConfigWidget::init()Daniel Teske2012-11-161-3/+0
|/ | | | | | | It no longer serves a purpose. Change-Id: Icdcb69c87112e295cefd4975dfa2b3d65818365a Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Adjust license headershjk2012-10-051-21/+20
| | | | | Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* Contact -> qt-project.orgEike Ziller2012-07-191-3/+1
| | | | | Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Use Core::Id in project-related objectsTobias Hunger2012-04-251-5/+5
| | | | | | | | Use Core::Id for all the project related objects in favor of plain QStrings. Change-Id: I790ab40cb29899efdb49c413a77609486f52e683 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* Removed module names from #include directives.Erik Verbruggen2012-02-151-2/+2
| | | | | | | | Getting the #include directives ready for Qt5. This includes the new-project wizards. Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* Optionaly disable buildstepsDaniel Teske2012-01-311-0/+10
| | | | | | Task-number: QTCREATORBUG-6713 Change-Id: Ief7f8509572cfa2008209083e5ae9c7763eba42a Reviewed-by: hjk <qthjk@ovi.com>