Commit Graph

3443 Commits

Author SHA1 Message Date
Tobias Hunger
fc4459a585 CMake: Do not clear the reader needlessly
If the reader is not of the expected type or incompatible with
the new parameters, then it will get changed anyway. So do not
force a reset of the reader.

Change-Id: I5ab8770797d39488e6a530e93431e344b1c7f7e6
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-10-10 08:13:08 +00:00
Orgad Shaneh
132abc789d ProjectExplorer: Apply low priority build immediately
The MakeSteps are instantiated when the project is opened, but if the low
priority setting is changed after that, it was not applied until reopening
the project, because the setting was only tested on the ctor.

Moved the setting test to actual execution.

Task-number: QTCREATORBUG-23048
Change-Id: Ie0bcbe07f6d9a09b173f7e0fa6f1d5d12b4ac601
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-10-10 08:07:44 +00:00
Christian Kandeler
d56e88d36a RemoteLinux: Fix look-up of remote file path in deployment data
If the deployment configuration contains an "install into temp dir"
step, then the local file paths of the binaries built by the build tool
will not be in the list of deployable files, because all deployables
come from the temporary install dir. Therefore, look for just a file
name match as a fallback.

Fixes: QTCREATORBUG-21235
Change-Id: Ie3fad515515b4f28cc6bdef1254f4c05a0557569
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-10 07:42:18 +00:00
Cristian Adam
fe85b9cd82 CMake Project: Make sure the tree has focus after adding an item
Adding items and losing them in the tree was a bad usability feature.
On Windows that was the behavior.

Change-Id: Ic0f9b41fce79844aaf8803713cb0220c4618c127
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-09 15:21:48 +00:00
Tobias Hunger
2c82422932 CMake: Do not pass on normal CMake output to other parsers
This should avoid false positives with lines like this:

-- Qt5 install prefix: /usr/lib

which the toolchain may misinterpret otherwise.

Task-number: QTCREATORBUG-22837
Change-Id: I30a6fef6771edf37a9737366ae717d149cccfab6
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-09 14:32:56 +00:00
Cristian Adam
e186df1ba3 CMake: Properly reset CMakeTool on file path change
Fixes: QTCREATORBUG-18530
Change-Id: I46842aeb4bcfc2ae1267a485fd454b888cd1a885
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-09 14:27:57 +00:00
Tobias Hunger
faa9eabe48 CMake: Reset process in fileapi reader once it is done
This is what made "Run CMake" only work every second attempt.

Change-Id: If539941138072504225fa6461379f92a0991deac
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-08 14:42:47 +00:00
Tobias Hunger
3dcf14ea3f CMake: Wire up the readers only once
They can not get disconnected anymore, so just wire them up once.

Change-Id: I46af563e6aebe7bee00c813648bcbfab9967e766
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-08 14:20:34 +00:00
Tobias Hunger
aa1cc54b3e BuildSystem: Fix move semantics of ParseGuard and related code
This avoids a spurious set of parsing started/finished signals.

Change-Id: I0c723f2a2ad679a5f6cffddf9f542ebc02192be8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-08 14:20:24 +00:00
Tobias Hunger
7f2f112a24 CMake: Add some more categorized logging
Change-Id: I150c63853025539563ef2245e0336e95fda3fdca
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-08 14:20:18 +00:00
Tobias Hunger
b8b1513bd3 CMake: Add a const
Change-Id: I473011cc0185f70ecf17023199eb975f05dac92e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-08 14:20:09 +00:00
Orgad Shaneh
92c067ba36 ProjectExplorer: Add a setting for low build priority
Default is false.

Task-number: QTCREATORBUG-23048
Change-Id: I0f0cc787229456aad2ddf47e4ef37bad58af2038
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-10-08 08:19:16 +00:00
Eike Ziller
a0f3ce69bd Revert "Revert "Designer: Fix look-up of resources for UI files""
This reverts commit d907df0349.
The original change was pushed to 4.10 and reverted there for
binary compatibility reasons. Revert the revert here.

 Conflicts:
	src/plugins/projectexplorer/projectnodes.h

Change-Id: Ibfd84a30a6cfdd78e1fa1b1c61785d391a5a18be
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-10-04 11:17:16 +00:00
Eike Ziller
4f0ffcecbe Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
	src/plugins/projectexplorer/projectnodes.h

Change-Id: Ibd255105a01c53a1f81a1ec7b30495dfef1877a9
2019-10-04 12:19:32 +02:00
Christian Kandeler
d907df0349 Revert "Designer: Fix look-up of resources for UI files"
This reverts commit 736eef24ca,
which breaks binary compatibility.

Change-Id: I696ad3e6efc6f02f595356c9864d69629eeef8bf
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-02 12:44:06 +00:00
Eike Ziller
2c45abef4b Merge remote-tracking branch 'origin/master' into 4.11
Change-Id: Ia99614078444b3b7e1e8473b6d2708f21e89e315
2019-10-02 07:37:13 +02:00
Eike Ziller
ac014e3875 Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
	src/plugins/projectexplorer/projectnodes.h

Change-Id: I10a749cca38c2d0929cf4d2b74ab089e14b6157b
2019-10-02 07:32:57 +02:00
Tobias Hunger
b489bfd615 BaseQtVersion: remove qmakeProperty(...) getter
Qt 6 will not use qmake to identify a Qt version, so this can not
be part of the public interface of BaseQtVersion anymore.

Provide getters for the information actually read via qmakeProperty(...).

Use the getters whenever possible.

Change-Id: Iadbee80b75e4f8b06caf90e7ed69fae2029b4dd7
Reviewed-by: hjk <hjk@qt.io>
2019-10-01 11:46:43 +00:00
Christian Kandeler
736eef24ca Designer: Fix look-up of resources for UI files
Commit 81a643ec99, fixing QTCREATORBUG-22412, was too restrictive: UI
files in applications have access to resources of library dependencies,
so we must consider those. We now only exclude resources from other
applications.
Note that this will potentially list non-applicable resources, e.g.
those from libraries to which our product does not have access. This
cannot be reasonably prevented, because not all build systems provide
this information. It's also not as bad as missing resources.

Fixes: QTCREATORBUG-22909
Fixes: QTCREATORBUG-22962
Change-Id: I51a87402b43c156618982813c408060f300e4e58
Reviewed-by: hjk <hjk@qt.io>
2019-10-01 09:27:10 +00:00
Alessandro Portale
718af236de CMakeProjectManager: Export CMake*Aspect and CMakeConfigItem
Allow other plugins to set CMake specific Kit options.

Change-Id: I038e9fabc3d2cb8cc463adafebecd51b21ef3d05
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-09-26 15:06:41 +00:00
Tobias Hunger
a33cb335f7 CMake: Fileapi: Make ids unique per compile group
Make sure to generate unique ids for each project part to unconfuse the
code model.

This was never triggered so far since before PCH support all my test projects
ended up with exactly one compile group per target:-)

Change-Id: Ida34f71f77cdf679fea7007f13ac19713175d916
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-09-19 09:53:52 +00:00
Tobias Hunger
454261aaa2 CMake: Support pre-compiled headers in CMake fileapi reader
Adding this to other readers makes no sense: PCH support in cmake
is younger than fileapi.

Change-Id: I4cd88882764ab8a8f81316a17098878c8e3699eb
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-09-19 09:52:53 +00:00
Orgad Shaneh
e38361b5a8 Lower priority on build
This should prevent slowdown of the IDE (and the rest of the system) while
building with all the CPU cores.

Fixes: QTCREATORBUG-5155
Change-Id: Icaadc53958f2d8e918035463e3c9344c91235615
Reviewed-by: hjk <hjk@qt.io>
2019-09-18 09:35:39 +00:00
hjk
4a55d995e1 Cmake: Replace connect/disconnect of builddirmanager
... by a permanent connection, and only evaluate output for the
active build configuration.

Task-number: QTCREATORBUG-21235
Change-Id: I06f87f7ea680f8f25687a0c5ffc936c801ab7de0
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-09-16 13:06:10 +00:00
BogDan Vatra
6b31f9cf23 Android multi arch support
[ChangeLog][Android] Android multi arch support for qmake

Change-Id: Ib8b1874604a3392130c96fbc00b26713b3d788ae
Reviewed-by: hjk <hjk@qt.io>
2019-09-16 07:34:54 +00:00
Eike Ziller
9cc45fe1fb CppTools: Move RawProjectPart to ProjectExplorer
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>
2019-09-11 06:22:12 +00:00
hjk
e9d8ff21b0 Remove unused QObject parent arguments on options pages
In the new plugin setup scheme they are data members of the
plugin pimpl and never use the parent.

Change-Id: I28fe150393e8159064dcfbd113ce0320af50fd58
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-11 06:03:40 +00:00
Eike Ziller
8452264a18 CppTools: Move QtVersion and BuildTargetType
QtVersion to utils/cpplanguage_details.h which already contains similar
flags.

BuildTargetType to ProjectExplorer, next to BuildTargetInfo (but not in the
same header to not pull that in everywhere).

Removes dependency on ProjectPart from RawProjectPart.

Change-Id: I5791065e4266f20c2657ee4b1b594df04b238a1c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-10 07:31:21 +00:00
Sona Kurazyan
8e31932c29 Remove usages of deprecated APIs of QLayout
Replaced:
  QLayout::setMargin() -> QLayout::setContentsMargins()
  QLayout::margin() -> QLayout::getContentsMargins()

Task-number: QTBUG-76491
Change-Id: If28ef6910b3afe5d04e4746b74f9362a3e3b3c8e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-02 13:01:07 +00:00
hjk
c343d98215 CMakeProjectManager: Work around deprecation warning
Change-Id: I2e2281395ca030ba76334fba8a574c145bc1dbf5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-30 07:07:10 +00:00
Tobias Hunger
b7e4046a17 ProjectExplorer: Add BuildSystem class
Add a class to abstract out the BuildSystem from the Project.

Thie idea is to make a Project have-a BuildSystem, so that
it can stop being one.

The Projects in the different ProjectManagers will get much
simpler that way (and many will only consist of a constructor
with some setter calls) and handles all the interactions
between the rest of Qt Creator and the project.

The complex code to interact with the build systems is then
separate from that.

Change-Id: I3bbb000bb1aed91f0b547ac493f743ede8afb8cd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-29 07:28:04 +00:00
hjk
ae11f30b20 ProjectExplorer: Proliferate FilePath
DeployableFile and fallout.

Change-Id: I9a9c56e4a4ebf8f68df70d65da2e699efedfe907
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-29 05:42:13 +00:00
Eike Ziller
10d3772b7a CMake: Fix regression that a "Build" build configuration was available
And the default selected when configuring a project, since it was the
first.

Broke with 5dbfd46bcf which merged
"availableBuilds" and "availableSetups".

Change-Id: Ibc8c241595f3fee6f35e08fa83e499550eff869b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-08-26 11:40:12 +00:00
hjk
fb631cb258 ProjectExplorer: Set up hack to funnel information to buildstep ctors
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>
2019-08-22 11:05:04 +00:00
Tobias Hunger
988d376ad0 ProjectExplorer: Handle parsingStarted/Finished in BuildConfiguration
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>
2019-08-21 08:32:22 +00:00
Christian Kandeler
6d3f236aab Utils::Environment: Use expanded values
The Environment class is supposed to support values with references to
other variables, but we failed to actually expand them in most places.

Fixes: QTCREATORBUG-22687
Change-Id: I108cb59d3b4571471423455240f6f4f1cf64bf05
Reviewed-by: hjk <hjk@qt.io>
2019-08-20 12:39:16 +00:00
hjk
9d206a2bc4 ProjectExplorer: Hide parts of BuildStep's QObject-ness from users
This lets the compiler catch issues like QTCREATORBUG-22818 and
saves visible casts on the user side.

Change-Id: I5a307a55364daa0bec039a4c38cc9827841ff9c1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-20 10:35:57 +00:00
Eike Ziller
42b8a22840 CMakeEditor: Add fallback help ID
Like we do for the BaseTextEditor.
This allows users to get context help also for items that are not
"commands", like various variables that have a meaning for CMake.

Change-Id: Ie1af61bdffdeecb406b1dc7e6127000c17ea5a8e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-08-19 06:49:56 +00:00
Tobias Hunger
b8be7da158 CMake: Simplify based on Project::projectFileIsDirty signal
Delegate all the necessary file watching to Project and connect
to the relevant signal.

Server-mode insists on watching files itself, so that may not
report extra project files.

Change-Id: If821c54a7b0f8b72beed53dd1c83f255973faf3e
Reviewed-by: hjk <hjk@qt.io>
2019-08-16 12:43:39 +00:00
Tobias Hunger
4e45f71339 CMake: Fix buildstep target selection
The BuildStepList is no longer a ProjectConfiguration, so this
code breaks.

Task-number: QTCREATORBUG-22818
Change-Id: I7350c0520d4b82e896761a87b52ccc1d47934530
Reviewed-by: hjk <hjk@qt.io>
2019-08-16 11:10:22 +00:00
hjk
0aeade8e6d CMake: Remove some nowadays unneeded build configuration fetching
Change-Id: I371492f4ba5d3e67323d725588eff03038cef90f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-08-15 13:49:41 +00:00
Tobias Hunger
38e69c907b CMake: Fix marking the parsing run as successful
This missing mark prevented the Run/Debug buttons to become active
again!

Change-Id: If02f300d4bb67424398102a9ce1677f366bb5801
Reviewed-by: hjk <hjk@qt.io>
2019-08-14 10:59:45 +00:00
hjk
65f2f8a2b4 Drop connections to active target and build config changes
... for build step related widgets. These are specifig to a build step
which in turn is only interested in its own build config and target.

Change-Id: I5ec277ba279932d18a615e528acffaccdc41e307
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-13 13:21:52 +00:00
Tobias Hunger
d115276b34 CMake: Move code from CMakeProject into CMakeBuildSystem
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>
2019-08-13 13:13:02 +00:00
Tobias Hunger
ae345003aa ProjectExplorer: De-virtualize some more virtual methods
Use setters/getters for the bool flags in
Project::needsBuildConfigurations() and
Project::hasMakeInstallEquivalent.

Change-Id: I5ce937c3a5e8e0db627cda02a9007f8c28ccda0c
Reviewed-by: hjk <hjk@qt.io>
2019-08-13 10:24:30 +00:00
Tobias Hunger
a90b1c26b1 CMake: Remove CMakeProject::buildTargetTitles
The only user can also get this information from the relevant
CMakeBuildConfiguration.

Change-Id: I80e176ef0a8bc427f6adbf75b20e29f38d7b949f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-12 14:23:58 +00:00
Eike Ziller
dbfa55f5fc CMake: Do not run GUI CMake tool on macOS
We may neither run "/some/path/CMake.app" nor
"/some/path/CMake.app/Contents/MacOS/CMake",
so add a missing workaround for the latter, and use the "resolved"
executable path for the retrieval of version info and capabilities.

Change-Id: I6fed8cc478c0d0b9946a934fd83126e157bde992
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-08-12 13:52:25 +00:00
Eike Ziller
42ea10892c CMakeTool: Fix disabling of "Autorun" property
Could no longer unset "Autorun" for CMake tools. Broke in
de6faa0f15

Change-Id: I0b6e9e64de591e1128ff0dabf4eedb40e1a3748c
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-08-12 12:54:39 +00:00
Eike Ziller
ff503740ce Run CMake via canonical path instead of warning
Running CMake via a non-canonical path (including '..' in the path, or
via a symlink) can result in funny errors.

de6faa0f15 added a warning for that
condition. Unfortunately the auto-detection of CMake can return a path
to a symlink (e.g. for CMake from brew on macOS). Also it is helpful to
use a symlink to e.g. manage different CMake versions.

Instead of warning about the condition, and forcing the user to resolve
it manually, simply run CMake via its canonical path when actually
running it from Qt Creator.

Change-Id: I95623b45c5436a6d61c1419b7aba23e2a73a0650
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-08-12 12:54:28 +00:00
Eike Ziller
b61a5b759b CMake: Remove unused function
Change-Id: I6b793e0cb01b989f3087dcefe091b77bcfebe370
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-08-12 12:54:19 +00:00