Except on direct user action. Use more evocative message manager API.
Task-number: QTCREATORBUG-24430
Change-Id: I44c6088904b2018baccb72cd3651e2ab62dc1358
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
I have some products which export c++20, some c++17 (not yet ported) and
some which do not specify the language itself. And sometimes I end up
with too much errors from the code model, because it sets the language
to C++11 or C++17.
Also adapted the C language.
Change-Id: I0056c8d873191d49164c3e7f3e4fdb24ccc1fb9b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Retrieving the run environment for a qbs product can fail if the qbs
session is busy at the time of the call. In such a case, caching the
result will cause subsequent accesses to retrieve an incomplete
environment. This patch fixes the latter problem.
Task-number: QTCREATORBUG-24599
Change-Id: Ia0c6831cf371995ac8399d15e4dd93b8bb6e4f3b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This basically continues / amends work done
with e1c88116b3.
Change-Id: Ia8b3a4694e7fea4c15e344839f87c11fbe8fbbf4
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
... and pass them to the code model.
Fixes: QTCREATORBUG-24162
Change-Id: I4f33bba659fca957c56f2fcb4b8adce28533074b
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
The ClangTools and the AutoTest plugins use an internal
mechanism to load and configure a project when performing
their integrated unit tests.
Both assumed to have exactly one kit present for these
tests.
Make it possible to have more kits present when starting
with existing settings or if more kits get automatically
generated when starting with clean settings.
Change-Id: If2bc66320c4854f1d34a19d17107e8f0b7d64d39
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Prefer source files from contexts where we know that they actually get
built and thus should have includes and compiler flags properly set up.
Also fix the qmake and qbs project managers to not mislabel any non-
application products as libraries.
Fixes: QTCREATORBUG-23394
Change-Id: I0d122c7b58e12d14d68a1ca7337df83074299cd7
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.
Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
We retrieved the watcher result from the wrong pointer.
Fixes: QTCREATORBUG-23924
Change-Id: I876d8adc0aef011deb3f5827f3e50c43a8d92dfc
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
If a project part is not enabled let the code model know
about it as others may refer to this information as well.
Fixes an issue with the AutoTest plugin when it tries
to run a test for which no build targets will be generated
at all as it is disabled by some condition.
Change-Id: I342e8dde0a171084894ec59fdb462d7e9526c8db
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
No need to duplicate the timer. Now BuildSystem::isWaitingForParse()
returns the correct result.
Change-Id: Iab754b2c488c48302039988bd36e51f00e0f1196
Reviewed-by: hjk <hjk@qt.io>
They are available in some cases as such, and consumed as such.
Change-Id: I9866c7d7bd817fb19a8b11a0efbe583ed55fe393
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The build target key is the basic mapping of project
part to run configuration and this went out of sync
with the latest refactorings of the Qbs project
manager.
This fixes execution of tests inside the AutoTest
plugin for qbs based projects.
Change-Id: I7d7a703a341df98a015f9c83d3c2a320d46779c3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
We changed the build key derivation method in commit 6913947986 under
the assumption that it doesn't really matter as long as it's unique.
However, this value gets serialized, so the change broke restoring
existing qbs run configurations.
As we don't want users to lose all their run configs when upgrading to
4.12, we switch back to the old pattern.
Change-Id: Ia4a353af08cca33dbc3c60bd9fc0e28f42dcfe20
Reviewed-by: hjk <hjk@qt.io>
...explicitly.
This is already done as part of Project::setRootProjectNode(), and the
signal is connected to some rather expensive operations.
Task-number: QTCREATORBUG-18533
Change-Id: I96ea2f49c866f2b60f599748c4d5b82c790ed2ca
Reviewed-by: hjk <hjk@qt.io>
... and only switch the root node in the UI thread.
Creating the project tree can take some time for larger projects; no
need to block the UI for that.
Task-number: QTCREATORBUG-18533
Change-Id: I093dc9fb8f3454011a3c64bcc0f785e8b7753b4e
Reviewed-by: hjk <hjk@qt.io>
... by letting callers pass in a generator function.
This takes some load off the UI thread for larger projects.
For now only used by the QbsProjectManager, which can provide a thread-
safe generator function due to the project data existing in "value"
form.
Task-number: QTCREATORBUG-18533
Change-Id: I525dea36a4c4079bd1bd5a4fff844617547d56f1
Reviewed-by: hjk <hjk@qt.io>
There were a couple of typos breaking the functionality.
Also separate updating extra compilers and the code model.
Change-Id: Ie8f7bbf62d4b7817af3a26298401ad99c011b6e5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
For Compile, BuildSystem and Deployment. Unclutters user code and reduces
binary size.
Change-Id: Ia18e917bb411754162e9f4ec6056d752a020bb50
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
- We know the name of the profile for a given kit. There is no need to
call qbs config to retrieve it.
- Do not update a profile upon kit removal.
Change-Id: I1a555233091c69d9ea6daa1e4a11737719c37fdf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
That is, do not link to the qbscore library anymore. Instead, use the
JSON-based API.
Advantages:
- We can build Qt Creator with qbs support without qbs being present
on the build machine.
- Smaller memory footprint for Qt Creator, as the qbs build graphs
are now being managed by a separate process.
- Potential crashes in qbs will not kill the Qt Creator process.
Fixes: QTCREATORBUG-20622
Task-number: QTCREATORBUG-22904
Change-Id: If7d344b0ac65a99ff0a3a3db215d61b8d903e47e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Currently diverting to the original Project::setRootProjectNode.
Idea is to focus on the BuildSystem <-> generated tree relation.
Change-Id: I8b20173e364713f0919cf4f8b76a2f79ef8770bb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
... 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>
... instead of creating the BuildSystem direct. This will help the
shift of BuildSystem owner ship as a Project will have potentially
multiple BuildSystem instances (one per BuildConfiguration), but
still be responsible for creating them with the Targets.
Change-Id: I2dd71c7687ed41af9e42c874b3f932ce704e7ee3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... and move context menu action handling there.
This is a temporary measure to be able to move that functionality
alongside the actual BuildSystem to the BuildConfiguration.
There is a lot to be cleaned up left, to keep the patch small.
Change-Id: If4b0820a13b376fc97b70785052924972ce22705
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
BuildStepList: :allOfType() was newly used in 4.10 and removed in 4.11.
Change-Id: I3129f4a8aa411547e018c88eec02df58f56285f9
Reviewed-by: hjk <hjk@qt.io>
... if installation at build time is disabled and a dedicated install
step exists.
Fixes: QTCREATORBUG-23039
Change-Id: I7115368bb1993ebdb48200d2a9c55c34a7bdceec
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
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>
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>