aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmakeprojectmanager
Commit message (Collapse)AuthorAgeFilesLines
* Qmake: Add some debug output for file add/remove operationsChristian Kandeler2020-03-163-0/+9
| | | | | | | | This will help collecting feedback from users affected by bugs. Task-number: QTCREATORBUG-22508 Change-Id: Idfc22245587dd2d71b229b4ab6c7562fb7a5ecfc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qmake: Do not delay initial parsinghjk2020-03-121-9/+19
| | | | | | | | | | | | | | | | | And add some logging to make the situation debuggable. There are a lot of reasons that currently trigger (or attempt to trigger) parsing, including two unconditional ones on build system construction and fromMap. Some can be avoided, but keeping track of which one will be the "needed" one gets tricky without additional state. So turn it around and try to reparse "immediately" until such a parse finished. The parser itself is robust enough to deflect repeated runs before the first one finishes. Change-Id: Ic992b8730fa3a09ca14532cdd9bdbab4c245cb41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* qmake: Fix UI text according to the guidelinesLeena Miettinen2020-03-111-1/+1
| | | | | | | | https://doc.qt.io/qtcreator-extending/qtcreator-ui-text.html Task-number: QTCREATORBUG-23683 Change-Id: Id567c21af61c939e177c65b2e1907b13f9b0bb62 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmakeProjectManager: Try harder not to access nodes of in-parse projectChristian Kandeler2020-03-051-5/+18
| | | | | | | | | | | For extra safety, do not touch the project nodes if any build system of any build configuration is currently parsing. This is a bit of a stab in the dark, as I cannot reproduce the crash described in the linked bug report. Task-number: QTCREATORBUG-23597 Change-Id: Ie62a94232e89d8fba5866ea3572535e2ab209924 Reviewed-by: hjk <hjk@qt.io>
* Move SimpleProjectWizard to ProjectExplorer pluginBogDan Vatra2020-03-039-418/+1
| | | | | | | | Now SimpleProjectWizard supports also cmake buildsystem therefore qmakeprojectmanager it's not the best place to keeping it. Change-Id: I383ee89ea22e8df157cd98f644d3fd971e3c2382 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Improve simpleprojectwizardBogDan Vatra2020-03-031-9/+139
| | | | | | | | - add Qt modules - add support for cmake build-system Change-Id: I80ea5ef78bbffedf8f2c140365ee31718e7ee4a4 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* ProjectExplorer: Pass extra project files as QSethjk2020-03-031-2/+2
| | | | | | | They are available in some cases as such, and consumed as such. Change-Id: I9866c7d7bd817fb19a8b11a0efbe583ed55fe393 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmakeProject: Use buildsystem's own build config for toolchain testshjk2020-02-251-7/+5
| | | | | | | | It is currently only getting there if it's the active one, so it is not a real problem, but distracting. Change-Id: I1f83644a71a3f22e23f966e273c1a23cfc0cc6b7 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Qmake: Do not list all the command-line arguments in the step summaryChristian Kandeler2020-02-201-7/+2
| | | | | | | They will often not fit. Change-Id: I749242a576e57dd1ffc721ca14b85d1e0fa1ac98 Reviewed-by: hjk <hjk@qt.io>
* Qmake: Do not repeat build directory in warning messageChristian Kandeler2020-02-201-8/+5
| | | | | | | | | The build directory line edit is right above the label containing the message, so repeating the build dir value just widens the label unnesessarily. Change-Id: I650a4ce76a82582b2710a4673c134dbb4faf306e Reviewed-by: hjk <hjk@qt.io>
* De-Q_OBJECT-ify various IEditorFactory derived classeshjk2020-02-131-2/+0
| | | | | Change-Id: I1470b06d4e10073bb6e4f7ae735f9829fab3bb7b Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* QmakeProjectManager: Fix null pointer accessChristian Kandeler2020-02-121-6/+7
| | | | | | | | | Amends c7d8b9b01c. Fixes: QTCREATORBUG-23596 Change-Id: I466907e02572008d0e677ff29ecd712969f8bc54 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: hjk <hjk@qt.io>
* QmakeProjectManager: Fix access to deleted objectChristian Kandeler2020-02-101-1/+1
| | | | | | | | Amends c7d8b9b01c. Fixes: QTCREATORBUG-23576 Change-Id: I7de6679f3dd5ba950561d560195e5af5bfaf90a5 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Qmake: Use direct access to build config from system when availablehjk2020-02-071-8/+5
| | | | | | Change-Id: Ic514fb73db90f0868679d04efba62c40e28b7b59 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Provide an empty default IPlugin::extensionsInitialized()hjk2020-02-071-1/+0
| | | | | | | And remove all empy re-implementations. Change-Id: I19f0b4e55c042c96693ecb89766f97f0a97b54ae Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* QmakeProjectManager: Make sure we reset the ProFileCacheManagerChristian Kandeler2020-02-072-5/+15
| | | | | | | Otherwise, we can get an assertion when exiting during a parse. Change-Id: I3a2a1fbb854662b77b2e1485a9097b9f39d94fe2 Reviewed-by: hjk <hjk@qt.io>
* 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>