summaryrefslogtreecommitdiff
path: root/src/plugins/qmakeprojectmanager/qmakestep.h
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Pass Id to BuildStep constructorhjk2020-01-091-1/+1
| | | | | | | | Allows to use constants in fewer places, similar to what e.g. RunConfiguration does. Change-Id: I9d049128206c4acf0ce14b06b66d6c090a7c5242 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use full class for TriState valuehjk2019-12-031-9/+6
| | | | | | | | | Allows more compact code on the user side in most cases and can hide the internal 'int-ness' from user code by wrapping Variant conversions in the TriState class itself. Change-Id: I4c91e0cd798ee988a0b9cb057749251a4efebaff Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmakeBuildConfiguration: Make use of Qt-related build aspectsChristian Kandeler2019-11-281-30/+11
| | | | | Change-Id: Ia14bb468fe75403839d8dcc8022c4f233c363f62 Reviewed-by: hjk <hjk@qt.io>
* QmakeBuildConfiguration: Make use of SeparateDebugInfoAspectChristian Kandeler2019-11-281-8/+5
| | | | | Change-Id: I0dceadf2a6ef34187fa4107f3fc5d6831ecb7bfe Reviewed-by: hjk <hjk@qt.io>
* Qmake: Inline qmakestep.uihjk2019-11-271-3/+24
| | | | | | | In preparation of aspectification. Change-Id: Ib60301db79f87f6e13f511a4bab57948ce46fce5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qmake: Move some non-configuration code from build config to build systemhjk2019-11-251-3/+2
| | | | | Change-Id: I6fdf20e740c2824cabb3659f36379f9325ab97bd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android multi arch supportBogDan Vatra2019-09-161-0/+3
| | | | | | | [ChangeLog][Android] Android multi arch support for qmake Change-Id: Ib8b1874604a3392130c96fbc00b26713b3d788ae Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Prefer ProcessParameters::setCommandLinehjk2019-06-241-5/+3
| | | | | | | ... over setting command and args individually. Change-Id: Iec7c8d3a0b05fb8fa0639f7ddbe7ccdc7387d2a2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QMakeStep: Add extra parser argumentsSergey Levin2019-06-141-2/+8
| | | | | | | | | | | | It is useful when developing toolchain plugin to have separate agruments for pro-file parser only. Certain arguments may be added to qmake implicitly, without Qt Creator control, and we would like to tell them to the parser in order to get proper code assistance. This function is used in 3rd party plugin Sailfish OS. Change-Id: Ie1ce19d5773bb2c0c87b1d58cf00dca57f1108d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Utils: Rename FileName to FilePathhjk2019-05-281-4/+4
| | | | | | | | More in line with QFileInfo terminonlogy which appears to be best-of-breed within Qt. Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmakeProject: Use QString mkspec in QmakeKitInformationhjk2019-05-281-1/+1
| | | | | | | ... and BaseQtVersion, and QmakeBuildConfiguration. Change-Id: Iac5f768b80a7f8c2ea9a37d099b285d5793270db Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qmake: Use Utils::FileName in QMakeStephjk2019-05-161-7/+6
| | | | | Change-Id: I311947e476818ae7b14f299e0c917280f077165d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Rework the build step run interfaceChristian Kandeler2019-01-311-7/+5
| | | | | | | | | | | | | | | | | | | | | 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: Fix Clang toolchain setup on WindowsIvan Donchevskii2019-01-211-0/+2
| | | | | | | | | Clang toolchain in gcc mode requires mingw sysroot and target in order to be used properly on Windows. Requires Qt >= 5.12 to work properly (it has the required mkspec). Change-Id: I4e5a734c699ac98740c0d50560aa7b69751ae58c Reviewed-by: Christian Kandeler <christian.kandeler@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: Pimpl AbstractProcessStepOrgad Shaneh2018-11-191-0/+2
| | | | | Change-Id: I0f77ff2e88b29674c306b394093deb2060db70c8 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Make BuildStep::immutable use a data memberhjk2018-10-231-1/+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>
* ProjectExplorer: Change BuildStepConfigWidget::summaryWidget()hjk2018-10-171-4/+0
| | | | | | | | | | 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/+1
| | | | | | | | | | | 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>
* Qmake: Run make qmake_all in the directory that qmake ran inTobias Hunger2018-07-241-1/+1
| | | | | | | | | | | | Call make qmake_all in the same directory that qmake was run in. This fixes long build times when doing builds of individual targets. Qmake is run in a child folder there, but make qmake_all used to be run in the top-level source directory instead. Task-number: QTCREATORBUG-20823 Change-Id: I42e77738b0a92469efb97720cabea26484fb4852 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ProjectExplorer: Simplify BuildStepFactoryhjk2018-05-311-3/+0
| | | | | | | | | | | | | | | 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>
* QmakePM: Expand qmake arguments for summary, effective call and parserOrgad Shaneh2018-05-221-1/+10
| | | | | | | | | For example, if you set MAKEFILE=Makefile.%{CurrentBuild:Name}, the effective qmake call should show Makefile.foo and so should the command- line summary (with details collapsed). Change-Id: Ide0c0b0758b92f77f7cc97dd538db818575c91dd Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* QmakeProjectManager: Use override consistentlyTobias Hunger2018-05-071-4/+4
| | | | | | | clang-tidy fixes from modernize-use-override check. Change-Id: If75d8ae6b75edf271602e9352ea4cfac849c40ee Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* QmakeProjectManager: Remove unused QMakeStep::forced() accessorhjk2018-01-051-1/+0
| | | | | | | | The m_forced state is completely handled in the step's implementation, nobody accesses it. Change-Id: I05e15a53b08462e9c82d3f498e26aea0303a4ecf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qmake: Fix dialog title when separateDebugInfo is changedNikita Baryshnikov2017-12-121-1/+1
| | | | | | Change-Id: Iadfa3e74794b7a4a17b77b1b212894a4b2830c7d Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-081-13/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* QMakeProjectManager: Clean forward declarationLaurent Montel2017-09-271-1/+0
| | | | | Change-Id: If2a70a5b39b999119cb02c84b72a5a13891661dc Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* add extra arguments for qmakeVikas Pachdha2017-03-141-1/+7
| | | | | | | unlike user arguments, extra arguments are not user editable Change-Id: I0413c2da699c6d2fce1db10a8bc3dd938c8477b0 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* QMake: Clean up QmakestepTobias Hunger2016-12-081-1/+1
| | | | | Change-Id: I3a2baa4e15a48f99652cec6151803f20341e339a Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Fix build on PPC: PPC is defined to 1Thiago Macieira2016-06-221-1/+1
| | | | | | | | | | | | | | | $ powerpc-poky-linux-gcc -dM -E -xc /dev/null | grep -i PPC #define _ARCH_PPC 1 #define __PPC__ 1 #define __PPC 1 #define PPC 1 Not on PPC64, though (only __PPC__ and __PPC64__ are defined). Change-Id: Ib57b52598e2f452985e9fffd145812f5098e441d Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* QmakePM: Fix support for custom Makefile namesOrgad Shaneh2016-06-141-0/+2
| | | | | | | Task-number: QTCREATORBUG-16431 Change-Id: Ice2b18114c0d71e0a09ee63cd37559eb28b42034 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: De-duplicate code in IBuildStepFactory derived classeshjk2016-06-101-6/+3
| | | | | | | | | | | | | | 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>
* QmakePM: Use Qt5-style connectsOrgad Shaneh2016-05-261-3/+1
| | | | | | | The heavy lifting was done by clazy. Change-Id: Ibcc1bc772c6cc4413ae5834a442f7d270dc4cd75 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Qmake: Do not use qmake -r for Qt5Tobias Hunger2016-04-251-7/+24
| | | | | | | | | Run the much more obvious qmake && make qmake_all instead. Task-number: QTCREATORBUG-12652 Change-Id: Iec0776477fe861d657bcd5969193590cf924408e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
* Wholesale conversion to #pragma oncehjk2016-03-301-4/+1
| | | | | | | Kudos to cgmb and https://github.com/cgmb/guardonce Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* ProjectExplorer: Sprinkle overrides over the codeTobias Hunger2016-01-291-9/+9
| | | | | | | 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-1/+0
| | | | | Change-Id: Id0bc2d3a305e6af24838266195ab22e04e3a12a1 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* ProjectConfiguration: Sprinkle override and explicit over the codeTobias Hunger2015-11-161-9/+9
| | | | | | Change-Id: I2aa3a32a0d30f1d122977d94d4109227dea6bbd7 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Detach QML debugging option from qmakes build modeUlf Hermann2015-10-201-7/+1
| | | | | | | | | | The coupling of qml_debug to qmake's Debug profile is both brittle and wrong. There are good reasons to also enable qml debugging in certain Release builds and changing the build type of a specific build often leaves the UI in an inconsistent state. Change-Id: I89cb86849c984278ebfc54f66f139ec482b18d9a Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Remove QtQuick1 debugging option from build & run settingsUlf Hermann2015-10-011-4/+3
| | | | | | | | We don't need to support QtQuick1 anymore. Consequently, the minimum Qt version for QML debugging is bumped to 5.0.0. Change-Id: I9528de3f6869fb391eaf9560a148e03f6067b9de Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* QMakeProjectManager: Introduce member initialization.Jarek Kobus2015-06-231-25/+15
| | | | | Change-Id: I69df0c22a215b2df12f63fdc47082e9797fc02ac Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* Make compile with MSVC 2012Daniel Teske2015-03-231-2/+4
| | | | | | | | | That compiler doesn't have variadic templates so std::tie takes at most 5 parameters. Change-Id: I9c8b56a3847be54a9cc4a5a356835efd8772ffa7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* Compile fixes for MSVC2010Robert Loehning2015-03-121-0/+2
| | | | | Change-Id: I9e72edad53eff88911d5ce4e9a26905a5393d411 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Fix importing creating additional kits on OS XDaniel Teske2015-03-111-2/+55
| | | | | | | | | | | Extract the whole makefile parsing code into a separate class, to make the code more manageable. Also fix some bugs on importing additional flags like qt quick compiler or separate debug info. Task-number: QTCREATORBUG-13947 Change-Id: Id04bff191c188f95230274d990b1676e9b2f419d Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com> Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
* Remove support for !shadowBuildDaniel Teske2015-03-091-2/+0
| | | | | | | | In ancient times we needed to support some qt versions that didn't support shadow building. This code has been unused for some versions now, so remove it completely. Change-Id: I311f255d6bfed6841e94c9c383bd9929d0d55520 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Qmake: Add an option to put debug info into separate filesUlf Hermann2015-02-271-0/+6
| | | | | | | | | | Also, prepare for setting this automatically once we get a distinct "Profile" build configuration. Task-number: QTCREATORBUG-14009 Change-Id: I70556806e33d47341360231aeff844e490675f6a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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>