Commit Graph

3443 Commits

Author SHA1 Message Date
Tobias Hunger
38a051b6a4 CMake: Avoid needless cmake runs after kit changes
Do not run cmake if the kit has changed in ways that
do not effect cmake. Do clean rebuilds for changes to the generator
or cmake tool, etc. which do not work without that.

Change-Id: I4e9d43c5161246c3ded7f784cb0d44c3bd4b04e9
Reviewed-by: Alexander Drozdov <adrozdoff@gmail.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-03-14 13:23:41 +00:00
Tobias Hunger
99a884051f CMake: Export internal cmake cache values
Those are useful for the cmake internal classes, but need to be filtered
out when they are going to get displayed to the users.

Change-Id: I0bb62fa840fa8cb9e6f3b47300ba85a2b186bad0
Reviewed-by: Alexander Drozdov <adrozdoff@gmail.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-03-14 13:23:38 +00:00
Tobias Hunger
de9eeb233f CMake: Improve method names
I just mixed those methods up, so I'd better improve their names:-)

Change-Id: I38a37df4adb0d0402e2c3d9304c79aa414609976
Reviewed-by: Alexander Drozdov <adrozdoff@gmail.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-03-14 13:23:35 +00:00
Orgad Shaneh
62570e1640 CMake: Fix crash when changing build directory several times in a row
Change-Id: I349e72a321f1a0cdcbce4f948c363336815ef3f3
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-14 09:33:26 +00:00
Tobias Hunger
859b218059 CMake: Small improvements to the CMakeConfigItem
* Add a method to more easily get values from list of ConfigItems
* Cleanup message signature

Change-Id: I728b7c8f5c382fe4a9bf2e3b8636d63db3d07881
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-11 14:57:40 +00:00
Tobias Hunger
d122c34c96 CMake: Add ability to force CMake cache clear
Some CMake parameters changes requires to clear cache and run CMake
from scratch. Add ability to force it from the CMake configuration
dialog.

This change based on the work of Alexander Drozdov.

Change-Id: I21d8e12eec7e1f7bca560f44c43f25e4f333fcf0
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-10 15:22:55 +00:00
Tobias Hunger
ccf69b3495 CMake: Fix generator kit information widget
Display was resetting to Ninja generator.

Change-Id: Iee39b40da85a5df1140d5880d674e104eed85ca3
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-09 12:11:54 +00:00
Tobias Hunger
20f0bd9558 CMake: Improve parsing of unix makefile-based projects
Task-number: QTCREATORBUG-15825
Change-Id: Ifc7bd784a8b9b4b13829859f81ca42829aae383e
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-07 09:35:22 +00:00
Tobias Hunger
3cffacdd0f CMake: Improve default generator setup on Windows
If ninja is not an option on windows: Pick mingw makefile generator
for kits with a Mingw toolchain on windows and the nmake makefile
generator for other toolchains on windows.

On Unix fall back to the Unix makefiles generator if ninja is
unavailable as we did before.

Change-Id: I8005615e6f725d38c16c1b9026d3f7548e7b42db
Task-number: QTCREATORBUG-15756
Reviewed-by: Robert Loehning <robert.loehning@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-03 09:53:08 +00:00
Tobias Hunger
5aca8ca27e CMake: Remove no longer used code
Change-Id: Icdd132b891e223a874051448bb4e5a090bdc245e
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-01 14:30:44 +00:00
Tobias Hunger
a8853fa8b1 CMake: Make shadowBuildDirectory helper available
Make shadowBuildDirectory(...) a static method of CMakeBuildConfiguration.
That way it can be used by a future projectimporter.

Change-Id: I1b3ffc821ac9197aa5c90e2b78891df7a81a31dd
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-01 14:29:24 +00:00
Tobias Hunger
68b99dac2b CMake: Make parsing of CMakeCache.txt files available
Change-Id: I94876851dd4cf737418c4c00b589af1b3a9535ed
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-01 14:26:34 +00:00
Tobias Hunger
869c46227d CMake: Only use ninja if that is found in PATH
Only use ninja by default if that is found in PATH. Still prefer ninja
if it is available as that apparently is a huge time saver, especially
on windows.

Change-Id: Iadaecbaddfe6592222f2ed5e42b440665e9246a7
Task-number: QTCREATORBUG-15756
Reviewed-by: Robert Loehning <robert.loehning@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-01 10:12:40 +00:00
Tobias Hunger
420e54281c CMake: Keep cmake state in a temporary directory till first build
This avoids creating lots of build directories as the user types
in something into the builddirectory line of the build settings.

Change-Id: Ib08a0f65e08bce104e4baf9e19fb01730d2f5f08
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-26 12:17:39 +00:00
Tobias Hunger
76a050cb83 CMake: Move BuildDirManager from the project into the buildconfiguration
Change-Id: I90126ff22dd394eba4145db142b3914d211af476
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-26 12:17:31 +00:00
David Schulz
9aa51d4857 Editor: Fix whitespace cleaning.
Task-number: QTCREATORBUG-7994
Change-Id: I6c197ccc3a148555018e8f8184d116c88d7ea400
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-24 12:03:12 +00:00
Ulf Hermann
2b48a4fa27 QtSupport: Support qscxmlc as extra compiler
Change-Id: Ief4810abe46ce4654f518781ce377e10a8e38ad4
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-16 12:53:15 +00:00
Ulf Hermann
2e3e060520 Generalize support for extra compilers
Allow for different extra compilers which may get called to generate
additional code for the code model. The build system is expected to
know what files are generated from which source file and the extra
compilers know how to generate the content of those files, without
touching the build directory. the uic adapter is refactored to be
the first such extra compiler.

The extra compiler is run when an editor for its source document
loses focus, or after a timeout of 1s when the source document has
been changed.

Change-Id: I13c110c61120c812f02639a3684144daf8979b37
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-16 12:53:05 +00:00
Tobias Hunger
181f62c84a Make: Speed up reading compiler flags from build.ninja
Scan through the build.ninja file once for all targets instead once
for each target. This improves CMake project loading speed for
projects with many targets and a large build.ninja considerably.

Change-Id: I857c48a714dbb39a469f81c1f951a77f2f57578e
Reviewed-by: James Legg <jlegg@feralinteractive.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-16 09:41:26 +00:00
Niels Weber
68fe98abdf Silence a warning
Change-Id: Ie59da76a14c39208356268e601aef3ba6b5d245a
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-16 09:39:17 +00:00
Tobias Hunger
a8c2abeaa5 CMake: Register files with the locator again
Change-Id: Ib3a42c22bfac18630b968cfd78744c7827ef7fad
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-15 15:58:57 +00:00
Tobias Hunger
6c382e134b CMake: Handle deletion of builddir better
Change-Id: Ifeb35b14aba05c0e23a027b71f185ba20eed3e55
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:29 +00:00
Tobias Hunger
4a1a29d9c5 CMake: Fix generator parsing on Windows
Change-Id: I8afc8651fc1299a2a8782749966fd7ba770c9423
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:23 +00:00
Tobias Hunger
0d10ce3834 CMake: Disable BC if there is an error during initial cmake run
* Disable the BC and give report the cmake error
* Show a warning label in the BC

Change-Id: If5737d033fa2682c264ab7ac1189c59947e3b28d
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:19 +00:00
Tobias Hunger
744008ccf0 CMake: Store CMake project configuration in CMakeBuildConfiguration
Store CMakeConfig in CMakeBuildConfiguration instead of the list of
initialArguments.

Update initialArguments to a list of settings on load.

Change-Id: If58fc38296a4627f40062dd407e684c8a9477f6e
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:15 +00:00
Tobias Hunger
28e4306865 CMake: Add UI to display and edit cmake configuration
Change-Id: I95944dcd58dc86023c2757068979f92b8989011b
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:11 +00:00
Tobias Hunger
f71b3652f4 CMake: Read CMakeCache.txt
Read the configuration from CMakeCache.txt files.

Change-Id: I7ddf9c9727420634086c973d0134059aac37ace0
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:57:08 +00:00
Tobias Hunger
5c5e5a3aae CMake: Remove "Prefer Ninja" checkbox on CMake Tool page
This is no longer needed now that the generator is a property of the
Kit.

Change-Id: Ife35fd9207c805a4ead1e067603df1bfc77e6855
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-15 11:06:24 +00:00
Tobias Hunger
fdeef866dd CMake: Report progress during project configuration
Change-Id: Icabc4a417a67984acaad0f14c6521f103621e7ab
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:05:18 +00:00
Tobias Hunger
761d480453 CMake: Do not ask to rebuild after editing CMakeLists.txt files
This happens automatically now, do not bother the user with that
anymore.

Change-Id: Icc411e74ea5de42037f3718c6b75cc15772a64b9
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:05:12 +00:00
Tobias Hunger
c1a914197c CMake: Parse cmake errors during project setup
Do warn on errors during initial cmake run.

Change-Id: I520fdb8b83b9228ea71dcce050d1cab4c3e4f81a
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:05:03 +00:00
Tobias Hunger
859bf2c5ce CMake: Do not run a cmake wizard all the time
Do not push the cmake running straight into the face of the user. Do it
in the background instead.

This needs some follow-up patches to become really useful.

Change-Id: I3457178b33e3f14bdeac25005a773d17abb73b65
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 11:04:45 +00:00
Christian Stenger
38bea873d3 CMake: Fix missing include
Introduced with 18afa34587

Change-Id: Ib4e88c40439a58433ca549c78de8be5a443c2157
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-15 05:54:30 +00:00
Tobias Hunger
18afa34587 CMake: Add CMakeConfigurationKitInformation
Add CMakeConfigurationKitInformation and supporting classes.

This KitInformation can hold CMake settings that are to be applied
for all configurations when this kit is used. It contains e.g.
the Qt version and toolchain configured in the kit by default, but
can be extended to hold more.

The UI will warn if the toolchain or Qt version set up in CMake
does not match up with those used by the Kit, but it will allow
the user to proceed.

Change-Id: I73f06a6535ce14de323130d74af83b9cb2ec0f0f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 13:31:10 +00:00
Tobias Hunger
335b9644b6 CMake: Remove debug output
Change-Id: I69e1fd6462f5b03bad8721b236529a12b48a2fc8
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-12 13:13:24 +00:00
Tobias Hunger
c7d906214b CMakeParser: Remove sub-parser setup from CMakeParser
This makes the class more applicable for later re-use.

Change-Id: Ic717dd63962b254fce639061f16b1ca8e12d8098
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 12:37:18 +00:00
Tobias Hunger
d400959d7e CMakeCbpParser: Small cleanups
* Do follow-up fixes to CMakeTool

Change-Id: Ia3c587acb85d613499e91988200d8bbae32eca3d
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 12:37:11 +00:00
Tobias Hunger
47a5c7f466 CMakeKitConfigWidget: Clean up code
* Use namespace ProjectExplorer
* Move around some headers

Change-Id: I31bea44a25325b5dbc436c55c3db012e22503391
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 11:42:40 +00:00
Tobias Hunger
2bcfce96ba CMakeKitInformation: Clean up headers
Change-Id: I903c6529d0df83aaef9f109cdc2650cb76392bd5
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 11:42:36 +00:00
Tobias Hunger
593ed52c94 CMakeProjectPlugin: Clean up some headers
Change-Id: I8ded721395b72bb1c1e6a563f7ebb98389d39236
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 11:12:37 +00:00
Tobias Hunger
a764bb49d8 CMake: Add CMakeGeneratorKitInformation
Change-Id: I877c248c7b93268281fc68e814e479d24b844d5f
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2016-02-12 11:02:16 +00:00
Tobias Hunger
c3aac7624c CMake: Parse cmake syntax errors
Improve the CMakeParser so that it picks up the most common
errors/warnings that cmake throws when running into errors while
parsing its CMakeLists.txt files.

Change-Id: Ie3774695418f13aa3869d78802c1a552e6fd384e
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-02-12 10:56:54 +00:00
Tobias Hunger
b2d537c878 CMake: Cleanup files
Change-Id: I22a20e598389bf27417bcb230dd469f8f9dfce0e
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-12 10:37:13 +00:00
Tobias Hunger
f62663e8e4 Polish: Remove some more useless "slots" from headers
Change-Id: I9ba3b93e53e63153c1573d51c1aac53b7e088362
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-02-10 15:02:05 +00:00
Tobias Hunger
babb93a682 CMake: Fix WS issue
Change-Id: Ic3f59f4c9a5337c1189696fde8fe49ba711265f3
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-08 11:14:38 +00:00
Tobias Hunger
999a8d0516 CMake: Polish CMakeKitInformation
Change-Id: Ifc22c5ad41449ce6597b604746f25cab86662425
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-05 11:47:37 +00:00
Tobias Hunger
5404f9c480 CMake: Remove static defaultValue method from CMakeKitInformation
There is no need to expose this.

Change-Id: I164f1e787b742d330282125320b54a5b2ecb6134
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-05 11:47:23 +00:00
Tobias Hunger
eafb667066 KitInformation: Make defaultValue take a const Kit *
There is no reason not to.

Change-Id: I4accb0b690173d93ad6f4c9dd0bce66d8de75faa
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-02-05 11:35:20 +00:00
Tobias Hunger
fa17e27b7f CMake: Delay initialization of CMakeTools
Do not run cmake 5 times during startup. Delay that as far as possible.

Also add a supportedGenerators() method while visiting the code anyway.

Fix up and simplify the other cmake help output parsers.

Change-Id: I6622d552ffe559bf099b4b278618676a045e350e
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-27 12:43:45 +00:00
Tobias Hunger
cfa9dd4c03 CMake: Use pragma once consistently
Change-Id: Id164dea5e7047b87c3d11c53ebd044d567129e9c
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-27 09:15:45 +00:00