summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
Commit message (Collapse)AuthorAgeFilesLines
* CMakePM: Add support for build CMake presetsCristian Adam2022-09-281-0/+3
| | | | | | | | | | | | This patchset will add support for version 2 of the CMakePresets feature that has been implemented in CMake 3.20 https://cmake.org/cmake/help/v3.20/manual/cmake-presets.7.html Task-number: QTCREATORBUG-24555 Change-Id: I08934243cc04487d38c4b59c2ad4a4a8d0484492 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Use SPDX license identifiersLucie Gérard2022-08-261-24/+2
| | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMakePM: Add configure environment widgetCristian Adam2022-08-161-0/+14
| | | | | | | | | | | | CMakePresets have the concept of modifying the configure process environment variables. Qt Creator had only one "build environment". Change-Id: I131d54971b4bf7e5f87e680f817f93868d62ab29 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* CMakePM: remove unused headers, enforce sorting of headersCristian Adam2022-07-111-1/+0
| | | | | | | | Used clangd hints. Change-Id: Iade4de67c1d2e5fdd1a880c5603b31203170ebbe Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* CMake: Fix missing path to ninja for ExternalProject_AddEike Ziller2022-06-171-0/+2
| | | | | | | | | | | | | | | | | ExternalProject_Add runs CMake not during the CMake run of the toplevel project, but instead it runs CMake for the external project during the build step. And while ExternalProject passes the CMAKE_COMMAND on to the external project, it does not do so for the CMAKE_MAKE_PROGRAM. Make sure that the make program is also found when configuring the external project during the build step, by adding the path to ninja to the build environment, instead of just the CMake process. Fixes: QTCREATORBUG-27495 Change-Id: I672ec04881387a7411836ab94655176b7a5fb681 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Make QML debugging state reflect build system stateEike Ziller2022-06-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After parsing the CMake response, we make the configuration variables table reflect the actual configuration in the build directory. It is one of our "promises" that we do not break an existing build configuration, to avoid unexpected rebuilds. This was not quite true for the "QML debugging and profiling" setting. When that setting and the actual build directory disagreed, the user would get a dialog asking for running CMake with additional parameters, and when running CMake via the button in projects mode or the menu, it would just change these configuration parameters, potentially leading to an unexpected complete rebuild of the application. So, after parsing check if the actual CMake configuration matches our QML debugging setting, and if not, change the setting to "Leave at Default", to ensure that we don't mess with the build. Fix the "Run CMake" button state (in the "Current Configuration") when changing the QML debugging option, which should become bold, if the CMake parameters change. Amends 2577ce8ba1a69ad716c2fc2a5d0d5cc742c3c4cf and fixes the drawback mentioned there, i.e. setting the build directory of a "Debug" build configuration to an existing build directory with QML debugging disabled, will now simply set the QML debugging option to "Leave at Default" instead of forcing it to "Enabled". Change-Id: Ie6d4875d59319687d94e44e459ca76038e5813c0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Add 'Profile' configurationEike Ziller2022-05-241-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the hardcoded QML Debugging for Debug & RelWithDebInfo from the project template, because RelWithDebInfo is actually a good configuration for doing releases (we use it for Qt Creator), and enabling QML debugging for releases is a bad idea. Instead enable QML Debugging in Qt Creator for the Debug configuration, and add a 'Profile' configuration that is 'RelWithDebInfo + QML Debugging'. When importing a build, we only set the "QML debugging" option of the build configuration, if it is enabled in the imported build, even if it uses CMAKE_BUILD_TYPE=Debug . One drawback: When not importing a build, but just setting the build directory of a "Profile" or "Debug" configuration to an existing build, Qt Creator asks if it should apply "-DCMAKE_CXX_FLAGS=-DQT_QML_DEBUG". The user can choose not to, but then is asked the next time again, and it is not obvious that the "QML debugging" option is responsible for this. That is somewhat orthogonal to this change though: Even without this change, if the user changes the QML debugging option from "Leave at Default" to "Enable", the same happens, and it is also not clear to the user how to get rid of it. The user might not even have realized that they changed the option (e.g. on platforms where the mouse wheel cycles combo box values). I think the correct solution is to 1. make clearer where the CMake flags came from in that dialog, 2. allow the user to cancel a build from that dialog, 3. allow the user to discard these changes (by changing the setting) from that dialog. But that is for another patch. Amends 3300182d405bffe062a0f2be900f35822a9e20b0 Amends 77fed0b0fdce2a93f465c20cd87c41900117dcda Change-Id: I95de59473b67c5afd6a53ea7f49838dbaef770d4 Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: iOS: Enable automatic provisioning updatesAlexandru Croitor2022-05-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default xcodebuild does not try create / download a provisioning profile for a project if a valid one does not exist locally in ~/Library/MobileDevice/Provisioning Profiles, even if the Xcode CODE_SIGN_STYLE attribute is set to Automatic. Starting with Xcode 9, xcodebuild accepts a new -allowProvisioningUpdates option. When passed, xcodebuild will request a new provisioning profile from Apple's servers for the current project and use it during the build. The provisioning profile is only needed when building for a real device, not the simulator. When building an iOS project with qmake, the option is embedded in the wrapping Makefile generated by qmake, so Qt Creator can simply call make (which it does). For CMake, there is no wrapping Makefile, so we need to pass the new option explicitly as an additional build tool argument. There might be cases where automatic provisioning is not desired, which is why there is now a new checkbox in the CMake build step configuration widget. It's default value is 'enabled', to match qmake's behavior. As an implementation detail, isiOS had to be moved to a header file so it's accessible to both the build configuration and the build step. Fixes: QTCREATORBUG-26246 Change-Id: Ic80cd965ba095d0ff379e13ad2ffb8c298c9f7c4 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* CMake: Shift remaining data to buildsystemhjk2022-05-051-22/+0
| | | | | Change-Id: I04518a21ce571399c89608d2e59e746f8e6e0d4a Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Shift multiconfig storage from build config to build systemhjk2022-05-041-5/+0
| | | | | | Change-Id: I6f9b6c590975caeea4ad92c61f354d81d4d90431 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* CMake: Even less indirectionhjk2022-04-271-3/+0
| | | | | Change-Id: If9990f81e4150802dd08e0fc17a1faceb32e0cc6 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Move error and warning handlinghjk2022-04-261-12/+0
| | | | | | | | | | | | ... from CMakeBuildConfiguration to CMakeBuildSystem. Less back-and-forth this way. Also, prefer plain buildConfiguration() over cmakeBuildConfiguration() back-pointers. Change-Id: Ie1341302ecc10e53d71ca68b7b6eb5f46cfdad5f Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMakePM: Rename "Additional CMake parameters" to "... options"Cristian Adam2022-02-031-2/+2
| | | | | | | | | | | CMake documentation calls them Options, and we should use the same terminology. See https://cmake.org/cmake/help/v3.22/manual/cmake.1.html?#options Change-Id: Ibb8ed9dd5a830290770a7fa89e7e5e1ce2d8c74a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* CMakePM: Refactor "Initial Parameters" as a tab bar itemCristian Adam2022-01-171-3/+23
| | | | | | | | | | | | | Now we have "Initial Configuration" and "Current Configuration" as tab bar buttons. This way the UI can be shared between the two configuration states. Task-number: QTCREATORBUG-26869 Change-Id: I8206032a2a5ac076629865057816edb99706f2ff Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMakePM: Add ability to stop CMake run in SettingsCristian Adam2022-01-071-2/+0
| | | | | | | | | | | Previously the only way to stop the CMake run was to click on "x" button of the "Configure" progress bar. Now you can click in Settings on "Stop CMake". Change-Id: I167b86ba62679f197c194148b122ff0c87e87162 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMakePM: Update missing expandable CMake variables at project loadCristian Adam2021-06-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following variables: "CMAKE_C_COMPILER", "CMAKE_CXX_COMPILER", "QT_QMAKE_EXECUTABLE", "QT_HOST_PATH", "CMAKE_PREFIX_PATH", "CMAKE_FIND_ROOT_PATH", "CMAKE_PROJECT_INCLUDE_BEFORE", "CMAKE_TOOLCHAIN_FILE" will be checked to see if the existing values have the same values from the initial cmake parameters list. Only the CMakeCache.txt values that do not exist on the file system will be updated. If not, the updated value will be presented in the dialog for upgrade, or marked as bold in the settings dialog. CMAKE_PROJECT_INCLUDE_BEFORE is dependent on Qt Creator version / path and needs to be updated. Fixes: QTCREATORBUG-24443 Change-Id: I1eeb44df3a7914051084ef405af5f5621cc5a4e2 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMakePM: Fix "Build type" for multi configuration generatorsCristian Adam2021-03-261-0/+2
| | | | | | | | | The multi configuration generators (Visual Studio, Xcode) had an empty "Build type" which caused failures to parse the CMake file-api information. Change-Id: I70ee4978cee4d43e980edf4cd512d1ca95275638 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* CMakePM: Make "Build type" aspect visibleCristian Adam2021-03-191-1/+4
| | | | | | | | | | | | For single configuration projects if you change the build type aspect you will change the CMAKE_BUILD_TYPE variable. When switching the build directory the existing CMAKE_BUILD_TYPE will be set as build type aspect. Fixes: QTCREATORBUG-25451 Change-Id: I13519e95c316c556cc1348fba6121637d2fd4275 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMakeProjectManager: Make backup of CMake configuration before starting CMakeCristian Adam2021-02-181-2/+4
| | | | | | | | | | | | | | | | | | | CMake's fileapi functionality will save the project structure in json files in the .cmake/api/v1/reply directory. When issuing a cmake command with -D variables CMake will update its CMakeCache.txt file even if cmake will fail. This commit will rename .cmake/api/v1/reply as .cmake/api/v1/reply.prev and make a copy of CMakeCache.txt before starting CMake, and if something fails, replace the existing files with the previous values. Also make sure the changed values are not dissappearing when the old .cmake/api/v1/reply gets parsed. Fixes: QTCREATORBUG-24593 Change-Id: I82141786fea7068699e0f761a8978ba1f3203e47 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Add signing options to CMake/iOS build configurationEike Ziller2021-02-161-13/+20
| | | | | | | | | | | | | | | Adds the signing settings to iOS configurations. Adds placeholders for signing flags to the initial CMake arguments, and updates the CMake configuration when signing settings change. The new configuration doesn't get automatically applied. Only the "Apply Configuration Changes" button gets enabled and the user has to press that explicitly. This seems to be a more general issue affecting the QML debugging setting too, though. Task-number: QTCREATORBUG-23574 Change-Id: I3e8d45f565347e1ad2ac274a21b1552f1510e8f4 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMakeProjectManager: Support for multi-config generatorsCristian Adam2021-01-211-0/+12
| | | | | | | | | | | | | | | | | | | | | CMake has multi-config generators like: * Visual Studio * Xcode * Ninja Multi-Config The first two have different special targets for "all", "install", "package", "test" namely: "ALL_BUILD", "INSTALL", "PACKAGE", "RUN_TESTS". All of them need to get the build type passed via "--config <build- type>" and not via "CMAKE_BUILD_TYPE". The multi-config generators will use only one build directory. Fixes: QTCREATORBUG-24984 Change-Id: I8aa7ff73ce2af1e163b21a6504d26fcf95530edf Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMakeProjectManager: Use CMAKE_HOME_DIRECTORY as source directoryCristian Adam2021-01-081-0/+11
| | | | | | | | | | | | | | | | | | | | | The CMakeCache.txt file has CMAKE_HOME_DIRECTORY pointing to the project source directory used to configure the project. When importing a cmake build the CMAKE_HOME_DIRECTORY from CMakeCache.txt might not point to the same CMakeLists.txt that was opened as a project. qt-cmake-standalone-test from Qt6 uses a CMake template project which does a add_subdirectory with the test source directory, which will not work if opened standalone. Normally this is a user error though, so ask the user if this was intended, before actually importing the build. Task-number: QTBUG-88776 Change-Id: Ifdd5e1d1cb8a1ef9955d22493eba3a1a55dc689f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMakeProjectManager: Get rid of an unqualified friendAlessandro Portale2020-11-201-1/+0
| | | | | | | | | | | | | The latest libClang gives us following warning: cmakebuildconfiguration.h:104:18: warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier Deleting is the right fix. Change-Id: I4ccccf286044ca45ec78b0ea03a4ce8d979f06b4 Reviewed-by: hjk <hjk@qt.io>
* Utils/ProjectExplorer: Move re-usabled bits of aspects to Utilshjk2020-09-231-1/+1
| | | | | | | | | | | Classes involved are BaseAspect and some derived classes, LayoutBuilder and VariableChooser. This is mostly mechanical, with various include/using changes to make it compile. Change-Id: I624a457f3555f102e541c4c71e33a9423af32250 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Rename Base*Aspect to *Aspecthjk2020-08-141-1/+1
| | | | | | | | | In most cases they are used directly, so there's not much Base* in that. Added the old name as alias as porting help for a while. Change-Id: I494a8a560b8996bcf74915ea3570b504df6a6b4c Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Core/Utils: Migrate further to Utils::Idhjk2020-07-061-1/+1
| | | | | | | The coreplugin/id.h header is kept for downstream for now. Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake: Remove magic configuration from CMakeTobias Hunger2020-06-091-6/+20
| | | | | | | | | | | | | | | | | | | | | | Get rid of magic configuration handling in the CMakeProjectManager. * Use CMakeCache.txt as the sole source of truth, do not keep a shadow copy of configuration in the .user file * Have initial CMake arguments that are easy to edit in batch (Fixes: QTCREATORBUG-18179) used whenever no CMakeCache.txt file is in the build directory. These allow for any thing that can be passed to CMake on the command line. (Fixes: QTCREATORBUG-16296) * Ask when changes to CMake configuration were not applied (Fixes: QTCREATORBUG-18504) * Run cmake with arguments effecting its configuration only when the CMake settings are changed in the UI, run CMake without any special arguments in all other cases. * Get rid of the confusing dialog used to keep settings in sync between what is in CMakeCache.txt and Creator (Fixes: QTCREATORBUG-23218) Change-Id: I26d55be7df733f084f5691ecf7d7b4352f58b8e7 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Remove BuildDirManagerTobias Hunger2020-04-301-2/+0
| | | | | | | | | The BuildDirManager was used to switch between different BuildDirReaders. Now that only the FileApiReader is left, that infrastructure is no longer needed. Change-Id: I2d339a3407bb633cff6a8f7502b7b09094f63fef Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* CMake: Fix includes all over the CMake pluginTobias Hunger2020-04-201-3/+0
| | | | | | | | | | | | | | Keep internals internal, remove some unnecessary includes, add some that should have been there. This reduces the number of files that get rebuild when working on CMake internals from over 1000 to about 200. This patch also moves some code around that ended up being in the wrong file. Change-Id: Icd7366ac760dc85031040720418fbb16336dce9b Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMake: Fix typo in symbol namesTobias Hunger2020-03-191-2/+2
| | | | | | | | | I can't spell occurred:-/ Similar typos in 3rd party code (sqlite) has been left in place. Change-Id: I7cfa9911fc434d42ce3df8e9c7ccb83dc00401e8 Reviewed-by: hjk <hjk@qt.io>
* Merge remote-tracking branch 'origin/4.12'Eike Ziller2020-03-041-2/+0
|\ | | | | | | | | | | | | | | | | Conflicts: src/plugins/cmakeprojectmanager/tealeafreader.cpp src/plugins/cmakeprojectmanager/tealeafreader.h src/plugins/projectexplorer/miniprojecttargetselector.cpp Change-Id: I88d85be3903f57a55fddb7901e771a4822db1b85
| * CMake: Remove unused CMakeBuildConfiguration::emitBuildTypeChanged()hjk2020-03-021-2/+0
| | | | | | | | | | Change-Id: I4cb93a7f89ff4bcada2083bebd8e9e96770f4818 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* | DebuggerAspect: Simplify handling of Qml debuggingTobias Hunger2020-02-191-7/+0
|/ | | | | | | | | | | There should not be a need to have the linkQmlDebuggingLibrary Q_PROPERTY anymore. The property is added for the benefit of the DebuggerAspect, which can just check relevant BuildConfigurationAspect directly. Change-Id: Ic47ca9e26911e096564fe77bd14bebe959b4f116 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake: Remove disabledReasonTobias Hunger2020-02-111-2/+0
| | | | | | | | The current implementation does not help the user and is not in sync with isEnabled(), so it is not helpful to have. Change-Id: Iddde1ac3da24d50e8a16d2bd4c6aa56eef34ef50 Reviewed-by: hjk <hjk@qt.io>
* CMakePM: Fix handling of qml debuggingChristian Stenger2020-02-071-0/+7
| | | | | | | | | | | | | | Add a respective aspect to the build configuration for handling qml debugging from the build side similar to what we do with qmake and qbs. Qml debugging needs to get enabled on the build side before the settings on the run configuration page has an effect. Fixes: QTCREATORBUG-23541 Change-Id: I86267747601015760737d8b21978712896892a37 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add final specifies to classesIgor Sidorov2020-02-051-1/+1
| | | | | | | Warning -Wfinal-dtor-non-final-class in clang trunk Change-Id: I2bf17064bf8898eab10b82b69583a283157766d0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Move some of the BuildInfo setup code to central placeshjk2020-01-141-3/+1
| | | | | Change-Id: I8893366acb187ea1a94a8ca272ded2c46cb521d1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: De-QObject-ify BuildConfigurationFactorieshjk2020-01-101-3/+1
| | | | | | | | | | | | | 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-091-4/+0
| | | | | | | ... by a function object. Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake: Remove CMakeBuildConfiguration::project() overloadhjk2019-12-101-2/+0
| | | | | | | The base version is good enough nowadays. Change-Id: I2e2ca690a29f9b877309ca98038d211d5c678fbd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use function object for special build config inithjk2019-12-091-2/+1
| | | | | Change-Id: I5da0f28ee1a64f8d9a3145f059019be702bee463 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Move BuildSystem owership to BuildConfigurationhjk2019-11-191-21/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... or Target. This patch moves build system from conceptually "one per project" to "one per target (i.e. per project-and-kit)" or "per BuildConfigurations" for targets where the builds differ significantly. Building requires usually items from the kit (Qt version, compiler, ...) so a target-agnostic build is practically almost always wrong. Moving the build system to the target also has the potential to solve issues caused by switching targets while parsing, that used Project::activeTarget() regularly, with potentially different results before and after the switch. This patch might create performance/size regressions when several targets are set up per project as the build system implementation's internal data are duplicated in this case. The idea is to fix that by sharing per-project pieces again in the project implementation once these problems occur. Change-Id: I87f640ce418b93175b5029124eaa55f3b8721dca Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CppTools: Move RawProjectPart to ProjectExplorerEike Ziller2019-09-111-2/+0
| | | | | | | | Doesn't have any dependencies into CppTools anymore, therefore moving it reduces the dependencies of the project managers to CppTools as well. Change-Id: Ibe728abe59eb88a8877943dca1f48a85163e27ac Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Set up hack to funnel information to buildstep ctorshjk2019-08-221-1/+1
| | | | | | | | | | | | For now, store most of BuildInfo in the BuildConfiguration. This will allow accessing it in the BuildStep ctors so the BuildSteps can be fully setup without polishing afterwards (as currently done in the main build steps of the three buildsystems, and Nim) This in meant to be temporary to a large degree. Change-Id: If6ade6052f4b96670995399ae97ef7d2313f632a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Handle parsingStarted/Finished in BuildConfigurationTobias Hunger2019-08-211-4/+0
| | | | | | | | | Make all buildconfigurations disabled while the project parses. This unifies how this is handled in different build systems. Change-Id: I6afca3743ad1433529a4f9d3bfdf73042799e456 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake: Move code from CMakeProject into CMakeBuildSystemTobias Hunger2019-08-131-0/+3
| | | | | | | | | | | | Introduce BuildSystem to implement functionality common to all build systems out there. This includes things like delaying the parsing by 1s. The actual CMake specific code is then moved into a derived class CMakeBuildSystem. Change-Id: I84f4344430f19a44e16534db294382c436169ed5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CMake: Move code from CMakeProject into CMakeBuildConfigurationTobias Hunger2019-08-051-0/+7
| | | | | | | | Move code closer to the BuildDirManager that was moved into the CMakeBuildConfiguration. Change-Id: I21d7188e4a3b03a02b12b01c7dd3e46754d653f8 Reviewed-by: hjk <hjk@qt.io>
* CMake: Move builddirmanager into CMakeBuildConfigurationTobias Hunger2019-08-051-0/+4
| | | | | Change-Id: I1854b6021e7d573abd4ac9d64c8d5dbd0618ed71 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Merge BuildConfigurationFactory::availableBuildshjk2019-06-271-3/+2
| | | | | | | ... and availableSetups as far as mechanically possible. Change-Id: Ia1d7babe943eea25da97cef7838187c234378673 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Align signatures of BuildConfigurationhjk2019-06-271-1/+2
| | | | | | | | | | ... availableBuilds() and availableSetups(). Goal is to merge them and inline all the local createBuildInfo() functions. Change-Id: I9f19093163808b6da6dc83977894420e08a1edd9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>