aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotoolsprojectmanager
Commit message (Collapse)AuthorAgeFilesLines
...
* ProjectExplorer: Flip default for ProjectNode::showInSimpleTreehjk2019-03-015-107/+3
| | | | | Change-Id: Ibd4f91ad55b2be93d20dfc4f583de95274e981ca Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Plugins: Code cosmeticshjk2019-02-272-6/+4
| | | | | | | | | Get closer to a uniform pattern of code layout (public/private, pimpl naming...) Change-Id: If2bc6dcee3df9127274f479b4ebc270d283dcb65 Reviewed-by: Xing Xiong Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* AutoTools: Use the FileSystemWatcher::removeFiles() bulk functionshjk2019-02-251-2/+1
| | | | | | | It's doing the same one-by-one, with temporary lists. Change-Id: I63176ab6a9f717adf816493ac132d92e0e248b4c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Remove FileNode's isGenerated constructor boolhjk2019-02-251-2/+2
| | | | | | | Use setter of base class, similar to setListInProject() before. Change-Id: Id620f0084a5dec0410f29c80f8f6393a6bcd5050 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge remote-tracking branch 'origin/4.8' into 4.9Eike Ziller2019-02-081-4/+19
|\ | | | | | | | | | | | | Conflicts: qtcreator.pri Change-Id: I84dc8b9c7a029f2f40c4fa3ef78eef338247a6c0
| * Fix include paths with subfolderRaoul Hecky2019-02-071-4/+19
| | | | | | | | | | | | | | | | | | | | | | When an autotools project is using SUBDIRS it starts a new parser. The new parser object was not propagating includes/defines/flags to the main parser object, and thus the code model did miss those. This commit fixes that. Task-number: QTCREATORBUG-21618 Change-Id: I19ed4dd3820257378e888f3c4935ebd30e958828 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | ProjectExplorer: Rework the build step run interfaceChristian Kandeler2019-01-316-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Collapse BuildInfo hierarchyhjk2019-01-302-21/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... to pass it around as real values, avoiding, among others, the need of occasional explicit deletion. The formerly extra members of the derived stuff are handled via an extra variant (for data) and via a functor in the build configuration factory. The change is mechanical. Change-Id: I19ca4e0c5f0a5b196fc16dfb98bb005dc679f855 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ProjectExplorer: Rename IBuildConfigurationFactoryhjk2019-01-291-2/+2
| | | | | | | | | | | | | | | | ... to BuildConfigurationFactory. It hasn't been an Interface for a while and the new name matches Run- and DeployConfigurationFactory Change-Id: I923c6a27e18a99628251b69e0270e910836e7b2a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ProjectExplorer: Simplify BuildStep::init() signaturehjk2019-01-186-9/+9
| | | | | | | | | | | | | | | | 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>
* | Autotools: Fix duplicates in project tree after reparseChristian Kandeler2019-01-161-0/+1
| | | | | | | | | | | | Fixes: QTCREATORBUG-19837 Change-Id: I84afab5b571afa550d4329973eb19aa09335d614 Reviewed-by: hjk <hjk@qt.io>
* | CppTools: Simplify ProjectUpdateInfoNikolai Kosjar2019-01-101-2/+1
| | | | | | | | | | | | | | ...by using KitInfo. Change-Id: I17b4dd6c368ba8b10b765f12a4663c041c9be7e5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | CppTools: De-duplicate code for CppProjectUpdaterNikolai Kosjar2019-01-101-24/+8
| | | | | | | | | | | | | | Centralize gathering the kit, toolchains and qt version. Change-Id: I6bd586ac7925e2ee556fd119f1dab096cd500e41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Remove unneeded invocations of CppProjectUpdater::cancel()Bernhard Beschow2019-01-061-2/+0
| | | | | | | | | | | | | | | | | | The cancel methods were called just before setting up the parameters for the CppProjectUpdater::update() call, which calls cancel() as its very first action. Change-Id: I748cb4daa86bc8245cd906b2dff3c7b2d50795b2 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* | CppProjectUpdater: Remove unread attributeBernhard Beschow2019-01-061-1/+1
| | | | | | | | | | | | Change-Id: I51123e5b5609de431cfa6d1558aed0b9739ff9c8 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* | ProjectExplorer: Pimpl AbstractProcessStepOrgad Shaneh2018-11-193-0/+3
| | | | | | | | | | Change-Id: I0f77ff2e88b29674c306b394093deb2060db70c8 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* | AutotoolsProjectManager: ModernizeAlessandro Portale2018-11-048-18/+18
| | | | | | | | | | | | | | | | | | modernize-use-nullptr modernize-use-override modernize-use-auto Change-Id: I7abab567a6dab1bde93c520aa8746380ae24fda8 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* | ProjectExplorer: Make BuildStep::immutable use a data memberhjk2018-10-236-18/+0
| | | | | | | | | | | | | | | | | | 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>
* | Autotools: Simplify make step setuphjk2018-10-233-20/+12
| | | | | | | | | | | | | | | | The extra inheritance level is not needed (and used nowhere else), and all special default arguments can be determined from the kind of build list. Change-Id: I5ab9987d7b1fd8e5999b7c4c8796c2c24db03821 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Autotools: Use BuildStepList::appendStep instead of insertStephjk2018-10-221-5/+5
| | | | | | | | | | | | | | ... where appropriate. I.e. always. Change-Id: I34db4612b2d96dd1ecccf7a1a0649cad0dc881ab Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | AutoTools: Use aspects in build stepshjk2018-10-227-348/+95
| | | | | | | | | | | | | | Less code. And there's more room for consolidation. Change-Id: Iccdaf5570155ec2783b7cf6528d3887f6efd5dbb Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | ProjectExplorer: Change BuildStepConfigWidget::summaryWidget()hjk2018-10-176-30/+6
| | | | | | | | | | | | | | | | | | | | 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: Make BuildStepConfigWidget::displayName a valuehjk2018-10-156-18/+0
| | | | | | | | | | | | | | | | | | | | | | 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-123-0/+3
|/ | | | | | | | | | 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>
* Toolchains: Detect unspecified language versionNikolai Kosjar2018-10-081-4/+2
| | | | | | | | | | | | | | | | | | | | We checked the command line from the project manager for "-std=X" and friends to figure out the language version to use. However, if such a flag was not provided, we assumed the latest version we support. This could conflict with the actual version of the compiler and its predefined macros. Figure out the version by inspecting __cplusplus/__STDC_VERSION__ in the predefined macros of the toolchain. The MSVC compiler is an exception to this, as it does not seem to properly set the value - check for _MSVC_LANG if possible, otherwise simply assume some versions as before. While at it, add also support for C17/C18 and the upcoming C++2a. Task-number: QTCREATORBUG-20884 Task-number: QTCREATORBUG-21188 Change-Id: I464ffcd52d2120c0208275a050e82efda44fae1c Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
* ProjectExplorer: Simplify BuildStepFactoryhjk2018-05-318-12/+3
| | | | | | | | | | | | | | | 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>
* Use base make step for autotools projectsEike Ziller2018-05-233-272/+22
| | | | | | | | | | | | | | | | Unify generic and autotools make steps, by moving the better maintained logic from the generic make step to the base make step. Add fallback code for restoring settings from previous autotools make steps, since a key was named slightly different. The autotools make step was behaving a little bit better when there is no C++ toolchain set in the kit, but on the other hand would just take the make command from a random existing toolchain, which can be wrong too. Anyhow, this must be fixed in a follow-up patch for all make steps. Change-Id: I47af7d327feb9336790d30c8b9a4968c25b25db3 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Centralize retrieving the "parent" build configurationEike Ziller2018-05-221-4/+0
| | | | | | | | | | | | | If a step is part of a build configuration, that is used, but many steps can be used as part of a deploy configuration. In that case the active build configuration of the step's target must be used, and that logic was duplicated many times. Instead, let BuildStep::buildConfiguration take care of that logic. For steps that are not offered for deploy configurations there is no semantic difference, and for the others this removes code duplication. Change-Id: I02f3bb50226590092cedcec02fce6fde9c7c6e63 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Pass id directly to BuildConfigurationshjk2018-05-083-7/+6
| | | | | | | It's what the base class wants, and follows run and deploy precedence. Change-Id: I26eff43337851702417e7e4284fc390b904060f6 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Add and use addNestedNode(...) that takes unique_ptrTobias Hunger2018-05-021-1/+2
| | | | | Change-Id: Ieb26721d053111fb350494e31d1f6da3fe642420 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Use unique_ptr for Project::setRootProjectNodeTobias Hunger2018-05-021-2/+2
| | | | | Change-Id: If63a49d0eecfb93adcc6076fcb3208c87603af10 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Merge remote-tracking branch 'origin/4.6'Eike Ziller2018-04-131-3/+0
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/utils/settingsaccessor.cpp src/plugins/autotest/autotestplugin.cpp src/plugins/git/gitclient.cpp src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp src/plugins/qbsprojectmanager/qbsrunconfiguration.h Change-Id: I65f143cad18af509a2621d6c5925abbd038ea70f
| * BuildStep: Make build steps more widely availableTobias Hunger2018-04-111-3/+0
| | | | | | | | | | | | | | | | Make the build steps apply to more buildsteplists. Task-number: QTCREATORBUG-19823 (and similar for other build steps) Change-Id: I09d3b4b6ad99453cb587303aa78b46e8a4f360bb Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | Autotools: Remove dependency on plugin object poolhjk2018-01-262-12/+28
|/ | | | | Change-Id: I402e84d2702faf58b18ce896ebda5501966e5c9d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Autotool: Move buildDirectoryChanged connectionhjk2018-01-031-6/+3
| | | | | | | | | ... to a place where the potential receiver already exists. It had not even a chance to work before. Change-Id: Id6ca2fe522636dcd03b81c5da513f48549b8eb76 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Use project id uniformly as project contexthjk2017-12-202-2/+0
| | | | | | | | | | | | | | | | | | | The possibly intented flexibility e.g. to have different project types share the same idea of a common context was never used, in all cases we had a 1:1 relation ship between project ids and ids that were used as context. This led to oversights like the one fixed in 60fb35a2. This patch here uses the project id unconditionally as context and drops all context ids. If we'll ever have the situation where the original flexibility was needed, Project::projectContext() could be made virtual and overridden were needed. Also, the context was never modified for any given project, so the updating machinery is not needed. Change-Id: I3f7fac0ed5e4704e126558987c48577f26082dfd Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-0810-358/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* autotoolsprojectmanager: fix forward declarationLaurent Montel2017-09-281-1/+0
| | | | | Change-Id: If710c026bb40735a4437cce8ca3e7c32c619d202 Reviewed-by: hjk <hjk@qt.io>
* Convert macros from plain QByteArray to a vector of structsMarco Bubke2017-09-145-16/+22
| | | | | | | | | | | 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>
* BuildSteps: Fix a number of crashesTobias Hunger2017-09-081-1/+1
| | | | | | | | | | | 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>
* app_version.h: Make IDE name configurableTobias Hunger2017-09-051-1/+1
| | | | | | Change-Id: I993f452c8d09cf89e9a2958fc8e36b7d2c17ee6f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge remote-tracking branch 'origin/4.4'Eike Ziller2017-09-051-2/+4
|\ | | | | | | Change-Id: Ic9a1cf3b40b259d9c77f2f542405d189171e0fbf
| * CppTools: set default -std=c++11 for Qt4Ivan Donchevskii2017-09-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/4.4'Orgad Shaneh2017-08-301-1/+1
|\| | | | | | | Change-Id: I9ab2c68d2bd07b0dd89051a2f5f6fa51676d8594
| * Fix more copyright years in pluginsEike Ziller2017-08-291-1/+1
| | | | | | | | | | | | Change-Id: I44845b3cc6f393e76a2f3ff5f166c6170c4eff56 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | ProjectExplorer: Add subscribeSignal method to targets and projectsTobias Hunger2017-08-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Project: Move signalling of parsing state into ProjectTobias Hunger2017-07-261-1/+2
| | | | | | | | | | | | | | Get rid of duplicated code to do such signaling in derived Project types. Change-Id: I26914a1d751d72ee65c15a7943e0e7f34978f042 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | AutotoolsPM: Fix compile with older gcc/Qt5.6Christian Stenger2017-07-261-1/+1
| | | | | | | | | | Change-Id: I60614b87f80443ffa39ed4e4fa59ad0165a63cc8 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | BuildStep: Do not use QLatin1String/QLatin1Char in BuildStepsTobias Hunger2017-07-254-29/+29
|/ | | | | Change-Id: I287831a9151ba867eec443206235c7e07a6176e8 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Autotools: Fix autotools project treeTobias Hunger2017-06-151-16/+17
| | | | | | | | | | All nodes in the autotools project tree were of type Resource, which resulted in strange behavior:-) Get the proper type instead. Apply some no-risk cleanups while visiting the code. Task-number: QTCREATORBUG-18371 Change-Id: I370846100239cca91683dd184a1e5a56d3543732 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>