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>
... by using different icons in the tree.
So far, Qmake project nodes looked annoyingly uniform, which was a
hindrance to understanding their structure. We now use the same
differentiation as in qbs, that is "project" (SUBDIRS pro file),
"product" (app/lib/other) and "group" (pri file), which conveys much
more information at a quick glance.
Change-Id: I04ca2aeccb9240876c0fb5cd1310e0b199eb3e97
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Now only one piece of code needs to be written to both linkify output in
an output pane and create tasks for it in the issues pane.
The calling sites are also simplified. For instance, until now, build
steps had to feed their output parsers manually and then push the
created tasks up the signal stack in parallel with the actual output,
which the build manager relied upon for cross-linking the output pane
content. Afterwards, the output would get forwarded to the formatter
(and parsed for ANSI escape codes a second time). In contrast, a build
step now just forwards the process output, and task parsing as well as
output formatting is done centrally further up the stack.
Concrete user-visible improvements so far:
- File paths in compiler/linker messages are clickable links now.
- QtTest applications now create clickable links also when run
as part of a build step, not just in the app output pane.
Task-number: QTCREATORBUG-22665
Change-Id: Ic9fb95b2d97f2520ab3ec653315e9219466ec08d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Note that unloading a building project is generally broken in that the
build manager waits indefinitely for the build step's finished() signal,
but that's a general problem which needs to get addressed in a different
patch. This one fixes a qbs-specific crash.
Fixes: QTCREATORBUG-23851
Change-Id: I93e254acd1c73fe7495d01fcad04ea9301130dd0
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
It's returning a FilePath, so it's a better fit.
Keep the old versions as inline function now to ease downstream migration.
Change-Id: I535887928018f42b92895c8b0c82527f0d55e5ca
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Use "flat" aggregation instead.
This is another step towards the formatter/parser merger.
Along the way, also fix some some subclasses (mostly in BareMetal) that
erroneously forwarded handled output to other parsers.
Task-number: QTCREATORBUG-22665
Change-Id: I12947349ca663d2e6bbfc99efd069d69e2b54969
Reviewed-by: hjk <hjk@qt.io>
All parsers can now have search directories, not just the GnuMakeParser.
This allows us to get rid of the "task mangling", removing another
instance where the order of parsers in the chain mattered.
Task-number: QTCREATORBUG-22665
Change-Id: Id0d55522ae6800afd9f50ff36546224b0d8bb382
Reviewed-by: hjk <hjk@qt.io>
This makes IOutputParser structurally more similar to
Utils::OutputFormatter, which makes it simpler to explore possibilities
of somehow uniting these two related classes.
Task-number: QTCREATORBUG-22665
Change-Id: Ibb12ab6c8c785d863b9a921102a929864d0a5251
Reviewed-by: hjk <hjk@qt.io>
- Remove unneeded/unused functions.
- De-virtualize where possible.
In particular, after untangling a number of self-referential
redirections, it became apparent that the outputAdded()
infrastructure was entirely unused.
Change-Id: I51e1beed008df2727b42494b087efa476342397e
Reviewed-by: hjk <hjk@qt.io>
Apparently, MSVC toolchains set their compiler paths asynchronously, so
don't complain if it's empty initially.
Fixes: QTCREATORBUG-23725
Change-Id: Id800fa01d6368d244ec879181d12f6f7c7f1bf0a
Reviewed-by: Kai Koehne <kai.koehne@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>
When the GCC or Clang compiler name ends with the version sub-string
(f.e. arm-none-eabi-gcc-8.2.1.exe), this leads to the wrong cCompilerName
detection, that causes the project parsing errors and disables the project:
The following properties are not set. Set them in your profile or product:
cpp.compilerIncludePaths
cpp.compilerFrameworkPaths
cpp.compilerLibraryPaths
Product 'xyz' had errors and was disabled.
Now we return a proper prefix (e.g. arm-none-eabi-) and cCompilerName
with a version (e.g. 'gcc-8.2.1.exe')
Change-Id: I5dd42a343a0982326ed0f23b821e5016b8df39f1
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>
We forgot to append the "/install-root" directory at the end.
Change-Id: I1ad0d547f097a6b9c954603d394a5182368633a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
The step list names are computed separately anyway, having an
extra preamble consisting of concatenated build list names on
one line looks unnecessary.
Change-Id: If754c6363042927210dfd09c23f2f494081f8c47
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>
It makes no sense to use the "equivalent command line" value as the step
summary. It's much too long and will never fit into that label.
Change-Id: I55f291c370c97481d37e9f9ba9baec48d7215774
Reviewed-by: hjk <hjk@qt.io>
... and use in ProcessStep and related classes.
Change-Id: Ie6f1403d0aa2b9f5bcde06e994809466700b1357
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Special accessors to the repeatedly used C and C++ cases to denoise
and slim down user code. Plus some code cosmetics nearby.
Change-Id: Iba4662bd4731d8c4256e658529f39d5c995691ce
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
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>
... unless it was explicitly set by the user.
Otherwise, e.g. the derived Creator-internal path will end up verbatim
in the settings, and this value will be wrong when switching the build
dir etc.
Change-Id: I89818e683f403e28855934e42b56f59892f260cc
Reviewed-by: hjk <hjk@qt.io>
Saves a few casts and otherwise unneeded accessors.
Change-Id: I7a6ff1e8348a24690f35e69d300463a6c5c18867
Reviewed-by: Christian Kandeler <christian.kandeler@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>
- Offer Debug and Release.
- Make sure the qbs config names for two build configs of
the same type do not clash.
Change-Id: Ia3bcb3243abfc64d71d20344e3bb16f00ba28c0d
Reviewed-by: hjk <hjk@qt.io>
... per build type.
This is required these days by the target setup page
Fixes: QTCREATORBUG-23523
Change-Id: I8f00ffaf1401cd91ad7d4a550adcaf26b401fe52
Reviewed-by: hjk <hjk@qt.io>