summaryrefslogtreecommitdiff
path: root/src/plugins/qmakeprojectmanager
Commit message (Collapse)AuthorAgeFilesLines
* Qmake: Deactivate parse guard before it can cause troublehjk2020-02-062-3/+6
| | | | | | | ... in the QmakeBuildSystem destructor Change-Id: I23336cc0b72673fd2c63235b1c568439159d3d8d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* TargetSetupPage: Improve reporting on invalid kitsTobias Hunger2020-02-062-16/+32
| | | | | | | | | | | | | Give the reason for a kit being disabled in the tooltip. E.g. for a CMake project you will now get "Kit is invalid: No CMake tool set." instead of a generic error message about the kit being invalid. Change-Id: Ic776dc24149d65ebf27163b605ec2e52a3a504a7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add final specifies to classesIgor Sidorov2020-02-052-2/+2
| | | | | | | Warning -Wfinal-dtor-non-final-class in clang trunk Change-Id: I2bf17064bf8898eab10b82b69583a283157766d0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Qmake: Don't access never set QMakePriFile::m_buildSystemhjk2020-02-041-2/+5
| | | | | Change-Id: I97e8f0c2b2e53a798bf2762324b4affab99fc938 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmakeProjectManager: Do not keep an IDocument in QmakePriFileChristian Kandeler2020-02-044-3/+11
| | | | | | | | | | | | | | | | | Instead, we keep the IDocuments as "extra project files" in the Project class, like the other project managers do it. This has two advantages: - The document is no longer created in a parser thread callback, improving Qt Creator responsiveness while loading a project. - The IDocuments no longer get needlessly destroyed and re-created on a re-parse. This is relevant because adding these objects to the DocumentManager results in the creation of file watchers, which is expensive. Task-number: QTCREATORBUG-18533 Change-Id: I49c03377974e6b33340234dbabbbd82b8d0c827c Reviewed-by: hjk <hjk@qt.io>
* QMakeProjectManager: Move some parsing code out of the UI threadChristian Kandeler2020-02-033-69/+113
| | | | | | | | | | | | | | | When parsing larger qmake project, the callbacks from the parser threads are currently overloading the UI thread, often rendering the application non-responsive until the project is completely loaded. This patch moves some expensive operations from the UI thread into the parser threads, at the cost of a somewhat ugly two-stage setup for some types of objects. On my Linux machine, I measured that the time spent in parser callback code went down by almost 50% when loading the Qt Creator super project. Task-number: QTCREATORBUG-18533 Change-Id: If9624da5b07e81a50c180693580b20a70e1aaea7 Reviewed-by: hjk <hjk@qt.io>
* Several SettingsPages: Code cosmeticshjk2020-01-302-3/+2
| | | | | | | De-Q_OBJECT-ify, remove unnecessary #includes, final-ize, etc. Change-Id: I461d3e73400dacac90c22e7c84a40e3ea1718b6e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Qmake: Handle QFlags deprecationhjk2020-01-292-4/+4
| | | | | Change-Id: I2565ce0b1b10d4cb663dc6ad2721b717ce48c17d Reviewed-by: David Schulz <david.schulz@qt.io>
* QmakePM: Let some more built-in qmake variables get highlightedChristian Kandeler2020-01-231-0/+11
| | | | | | Task-number: QTCREATORBUG-14389 Change-Id: Iacd6524bf8a7a970af6515193dd7ca4a0814e121 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qmake: Re-add accidentally deleted lineChristian Kandeler2020-01-231-0/+1
| | | | | | | | Amends e70116bf67. Fixes: QTCREATORBUG-23514 Change-Id: Id852c591ae21d29312eb934f14970c6b05300bc9 Reviewed-by: hjk <hjk@qt.io>
* Utils/QMakeProjectManager: Remove dead codeAlessandro Portale2020-01-225-286/+0
| | | | | | | | ...otherwise I would have had to fix some theming issue. Change-Id: I70eecd8c2e4f592749f89aab0384d281ab3fdee3 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QmakePM: Add editor support for QtIVI qmake variablesChristian Kandeler2020-01-221-0/+9
| | | | | | Task-number: QTCREATORBUG-22293 Change-Id: If1630cc637c0232a479bb94534a12fc0eb3c52c1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* ProjectManager: Add convenience Task subclasseshjk2020-01-205-61/+44
| | | | | | | | For Compile, BuildSystem and Deployment. Unclutters user code and reduces binary size. Change-Id: Ia18e917bb411754162e9f4ec6056d752a020bb50 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake Build: rename target qmljs to QmlJSCristian Adam2020-01-161-1/+1
| | | | | | | This is in sync with what qmake and qbs project have. Change-Id: Id82bbd933a8331c3e2032e5068323c183b2a1814 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Make various Q_LOGGING_CATEGORY's staticAlessandro Portale2020-01-151-1/+1
| | | | | Change-Id: I43d3a198b0863d85a7fb305c7cb768f68acbd139 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Move some of the BuildInfo setup code to central placeshjk2020-01-144-64/+52
| | | | | Change-Id: I8893366acb187ea1a94a8ca272ded2c46cb521d1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: De-QObject-ify BuildConfigurationFactorieshjk2020-01-103-9/+7
| | | | | | | | | | | | | The QObject was not heavily used. Object name was for debugging only, translation context can be taken from the corresponding BuildConfiguration objects, the qobject_casts in the three big importers are replaced by dynamic_cast, which is good enough in that context. Take the opportunity to re-use translations from base BuildConfiguration for the common cases and sprinkle in some 'final'. Change-Id: I8e9727c98c6e943cb333556861c24e701c2bdf45 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Replace BuildConfigurationFactory::availableBuildshjk2020-01-092-29/+25
| | | | | | | ... by a function object. Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix build file when 'object_parallel_to_source' is enabledHalfdan Ingvarsson2020-01-093-0/+16
| | | | | | | | | | | | | | | | | | If running 'Build File' and the 'objects_parallel_to_source' CONFIG option is set for the project, make sure to modify the object file's path so that it's target location is the relative to the build root in the same way its source file's location is relative to the source root. - Add an accessor in QmakeProFileNode to check whether the 'objects_parallel_to_source' CONFIG option is set. - Modify the object directory in QmakeMakeStep::init to ensure that it has the same relative path to the object file from the build root, as its source file has relative to the source root. Fixes: QTCREATORBUG-18136 Change-Id: I63ef3af1fd4b7ef9fc46959f44d88b8025e99238 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Pass Id to BuildStep constructorhjk2020-01-095-8/+10
| | | | | | | | 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: Register some initial build steps by idhjk2020-01-071-2/+3
| | | | | | | | Helps to cut down BuildConfigration::setInitializer() usage. Plan is to have more of that where feasible. Change-Id: I138fcffc743daaf7068b5236c2a19c9ca0e3e2d4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Move some build-related code to BuildManagerChristian Kandeler2019-12-191-0/+1
| | | | | | | | | The projectexplorer.cpp file is a huge mixed bag, which could use some cleaning up. The queue() function is very much related to the BuildManager, so move it there. Change-Id: Ibc6425cc27d44514803a5e7c6139f83ddd760382 Reviewed-by: hjk <hjk@qt.io>
* Utils: Rename FilePathList to simply FilePathshjk2019-12-185-18/+18
| | | | | | | The exact storage type does not really matter here. Change-Id: Iefec40f0f5909c8e7ba3415db4a11962694e1b38 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Merge remote-tracking branch 'origin/4.11'Eike Ziller2019-12-181-7/+13
|\ | | | | | | Change-Id: Ieb0bb1ebab9a5efb42d15bbeac2cd4c46a6de962
| * QmakeProjectManager: Extend Qt examples deployment hackChristian Kandeler2019-12-171-7/+13
| | | | | | | | | | | | | | | | E.g. for Qnx, QT_INSTALL_PREFIX is not a prefix of QT_INSTALL_EXAMPLES. Fixes: QTCREATORBUG-22592 Change-Id: I3092cd76af01519783e1162ab8e79caaf0836f00 Reviewed-by: hjk <hjk@qt.io>
* | QmakeKitAspect: Leave the toolchains aloneChristian Kandeler2019-12-162-46/+0
| | | | | | | | | | | | | | | | | | | | | | | | The QmakeKitAspect's purpose is to let the user force a specific mkspec when building with qmake. It is unexpected that it silently changes the kit's toolchains. The code that automatically sets up a Qt version for a given toolchain already exists in QtKitAspect and appears to work just fine these days. Fixes: QTCREATORBUG-23191 Change-Id: I2727a4faa2285738d0e81e8558ca02e97ef319d3 Reviewed-by: hjk <hjk@qt.io>
* | ProjectExplorer: Pass parameters to BuildConfiguration initializationhjk2019-12-101-6/+6
| | | | | | | | | | | | | | ... directly again, mostly undoing the temporary hack from fb631cb2585. Change-Id: I4485dcb23765d99b4b5869973f004457ebd7aa7d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ProjectExplorer: Use function object for special build config inithjk2019-12-092-47/+44
| | | | | | | | | | Change-Id: I5da0f28ee1a64f8d9a3145f059019be702bee463 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/4.11'Orgad Shaneh2019-12-072-7/+15
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: cmake/QtCreatorIDEBranding.cmake qbs/modules/qtc/qtc.qbs qtcreator_ide_branding.pri src/plugins/mcusupport/mcusupportrunconfiguration.cpp src/plugins/python/pythonproject.cpp src/plugins/qmakeprojectmanager/qmakestep.cpp src/plugins/qmlprojectmanager/qmlproject.cpp src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp Change-Id: I22507be28fd80c49c9fee0dff5937a40db176a82
| * Android: Don't add contains(ANDROID_TARGET_ARCH,..) scope for Qt 5.14BogDan Vatra2019-12-031-5/+13
| | | | | | | | | | | | | | | | | | | | Starting with Qt 5.14 we don't need "contains(ANDROID_TARGET_ARCH" scope as we are doing multi abi builds in one go, therefore contains(ANDROID_TARGET_ARCH,...) won't work anymore. Fixes: QTBUG-79948 Change-Id: Icc989e4dfd48c765340569dcb547e8d0d2b1e8f1 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
| * Android: Default to armv7 instead of arm64 (qmake & CMake)BogDan Vatra2019-12-021-2/+2
| | | | | | | | | | Change-Id: I1c67a047784204a8a08c8a1ec4ec672532cbed11 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* | ProjectExplorer: Settle on fixed set of build step listshjk2019-12-063-24/+15
| | | | | | | | | | | | | | | | | | | | | | | | Even if the implementation allowed different lists than 'build' and 'clean', that's the only set that has been used, ever. If really needed, this could be re-instated, but for now having them fixed removes part of the neeed for a two-phase construction and helps to simplify user code. Change-Id: I3df09a1829a7d020ef8963d358ea80f8d199ba13 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qmake: Set QmakeBuildConfig aspect values more directlyhjk2019-12-051-8/+3
| | | | | | | | | | Change-Id: I759371e4f71cd4270f1bf82152ceb2f851c3c06b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qmake: Simplify collection of available buildshjk2019-12-051-12/+6
| | | | | | | | | | | | | | No need for temporary list. Change-Id: I77c2bace2c4b4eea95b36f8a075e07850ca8a4f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ProjectExplorer: Provide the option to build only the app to be runChristian Kandeler2019-12-052-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | ... instead of the entire project. This can speed up the development cycle by ignoring irrelevant changes in the project, potentially at the cost of missing parts that actually should be re-built (in particular with build systems where a product does not have full knowledge of its dependencies). Supported by qmake and qbs for now. Change-Id: Ic7101aa243e92ba139798d13366d256c1919dcc3 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
* | Qmake: Accept global build settings as authorativehjk2019-12-052-7/+28
| | | | | | | | | | | | | | | | | | | | | | ... when initializing build configuration. Potential re-alignment with contents of pre-existing Makefiles is confusing at best, and depends on the presence of Makefiles that are typically close to invisble when using an IDE. Change-Id: Iadbab4f32badfbf948cfa2a1b256932acbfe858f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Utils: Move FileUtils::resolvePath to FilePathhjk2019-12-051-2/+2
| | | | | | | | | | | | | | In line with the general move toward use of FilePath nowadays. Change-Id: I1c50e1479f7d9100ff8ded3ce3c22dd82b7fe6aa Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Qmake: Simplify use of helper for creation of shadow dir pathshjk2019-12-053-25/+18
| | | | | | | | | | Change-Id: Iabe22a53f51e3475854e47af9e7f7efae6e16d1b Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | ProjectExplorer: Use full class for TriState valuehjk2019-12-035-56/+48
| | | | | | | | | | | | | | | | | | 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>
* | ProjectExplorer: Let user provide default build propertiesChristian Kandeler2019-12-021-2/+4
| | | | | | | | | | | | Fixes: QTCREATORBUG-16458 Change-Id: I5f7a2450307a8d2e3392ca167411d1e00b58f05a Reviewed-by: hjk <hjk@qt.io>
* | Add "s" as mnemonic for Build > Build SubprojectMitch Curtis2019-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | This allows users to work on a top-level SUBDIR project and build a given subproject without resorting to using the mouse. Explicitly building a subproject like this is necessary when that subproject is not automatically built, such as auto tests when Qt is configured with -nomake tests. Change-Id: Ibdf18c5a0c60c53decf8bff5daa8615a1454d9df Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qmake: Parse two AppMan specific variableshjk2019-12-023-0/+10
| | | | | | | | | | | | | | | | | | Effectively the same approach as for Android, but a bit more ugly as we don't have necessarily access to the appman plugin headers even at compile time. Change-Id: I6d00e69b593470e059a16a1fcf6b57bdd550ae40 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | QmakeBuildConfiguration: Make use of Qt-related build aspectsChristian Kandeler2019-11-285-253/+119
| | | | | | | | | | Change-Id: Ia14bb468fe75403839d8dcc8022c4f233c363f62 Reviewed-by: hjk <hjk@qt.io>
* | QmakeBuildConfiguration: Make use of SeparateDebugInfoAspectChristian Kandeler2019-11-285-73/+52
| | | | | | | | | | Change-Id: I0dceadf2a6ef34187fa4107f3fc5d6831ecb7bfe Reviewed-by: hjk <hjk@qt.io>
* | Qmake: Make proper use of BuildDirectoryAspectChristian Kandeler2019-11-287-434/+115
| | | | | | | | | | Change-Id: I439496c85f7e0f402ab038de6a8171dd2f7d2ffd Reviewed-by: hjk <hjk@qt.io>
* | Qmake: Inline qmakestep.uihjk2019-11-276-339/+173
| | | | | | | | | | | | | | 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-255-48/+41
| | | | | | | | | | Change-Id: I6fdf20e740c2824cabb3659f36379f9325ab97bd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/4.11'Eike Ziller2019-11-211-1/+11
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/plugins/autotest/testresultspane.cpp src/plugins/cmakeprojectmanager/cmaketool.cpp Change-Id: Iade695ac9cab8bf3e3a1abd6e2c71f4a19132ac0
| * Android/Qmake: Execute clean on architecture changesBogDan Vatra2019-11-211-1/+11
| | | | | | | | | | | | Change-Id: Id0e1465e7ec7f6675cbf9d986352e811e6d31bec Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | ProjectExplorer: Introduce and use a Target::buildSystemUpdated signalhjk2019-11-211-0/+2
| | | | | | | | | | Change-Id: I497d46866146600a1ed9162bd720c574ee4d4769 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>