* Added returning the Id after detecting CMake so it can be set in the autodetected kit
* Trying to keep autodetect from adding the same Qt installation twice if qmake is linked in /bin and /usr/bin
* Added FIXME for RunControlPrivate::runConfiguration as it is used after free in rare cases
* Fixed IosCompilerDetector to not just run if a device is set
* Fixed QnxCompilerDetector to not just run if a device is set
* Fixed auto-detected debuggers not being set as auto-detected, as they now can be removed from the device screen
Change-Id: Ia7772c454d70e147e4326efacc4a6a888fa26782
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
They are only used in one source file.
Change-Id: I9a267be83156fb50c98da63fab165ef6123e7e59
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Also, make some functions const and use an alias for QList<ToolChain *>.
Change-Id: I6a1cbcb79bfaa9d252c4b69e00aa93e5d0dabe2f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The code model will get the necessary bits so that it can successfully
parse the QNX code.
Fixes: QTCREATORBUG-23483
Change-Id: Id9488f644ace23952edf7a7cb5da7ca138182134
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Currently unused, will be useful to detect toolchains in docker
containers.
Change-Id: I0fd7643969ab02c05839332a436147ffb242635d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Keep the old method for now to ease downstream porting.
The change is kept mechanical, there's a lot of cleanup possible now
on the user code side.
Change-Id: I936baedd45b7ba057f1c789a1bec896886f48eff
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
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>
As collateral damage, use a capital C in KeilToolchain*.
Change-Id: If9d64de2108366546683144975d975d9d1727712
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
QNX_CONFIGURATION_EXCLUSIVE is responsible for license checking
failure when qcc was probed for capabilities.
Change-Id: Ib7efa9eba3b2f3cb131899aa6cb75e632446342c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
QNX compiler can also do C, and it's needed for properly configuring
a CMake project.
Change-Id: I68edf35d7e288400f48b59c258065e6f82d17fc4
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
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>
QLatin1Literal is an undocumented and deprecated typedef
for QLatin1String, just use the original.
Change-Id: I42347a2128e7b4280aaafeea5ebdee5a1b623c82
Reviewed-by: hjk <hjk@qt.io>
Refactor much of the code from Environment* classes to NameValue* classes
to share it with the preprocessor macro settings.
Change-Id: Ica4ee817aa338230c422b30d91240d266248d226
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.
Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Even if this is part of a directory name it is naturally closer to a
"string" id than a file path.
Change-Id: If66f930526744379ce86e2b18bd9eac7fabfe773
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
... in all but one case (ClangCL, which is special).
Change-Id: I6429f2f37b18524c29b6be78801ea0e5517cad4c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This was used wildly inconsistently. Use a setter instead in
circumstances where the context is reasonably clear.
The assumption is that this will always be done at some time in all
code paths.
Use a new 'Uninitialized' value to avoid triggering the first update.
Change-Id: I82c38cb9da3ccdbd8fbae8beefcbfa0e559ff794
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Fix widgets being leaked by the ToolChainOptionsPage.
This page created widgets and stored them in the tree node
and never deleted them.
The fix is to put all the widgets into one QStackedWidget, so
that this will clean up once the page is destroyed.
Change-Id: Ic02824a4c52771d8962dc594176077c2e139fb84
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Add sdpPath and cpuDir comparison to QNX tool chain comparison.
Ensures that QnxConfiguration created tool chains don't get
removed just because they have the same ABI as another QNX
configuration created tool chain.
This should really be visible in the interface but that can be
done later since this isn't something that can currently happen
with official 6.6.0/7.0.0 SDPs.
Change-Id: Ibbb6a8aa645721028d1512460e51e59633b3cedc
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: hjk <hjk@qt.io>
Limits conflicts with Linux tool chains and debuggers.
Change-Id: Ie6408aecbc2828e8be53c46cf579441ccaba19bb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
${AnyProject}::updateCppCodeModel() did two potentially not that cheap
operations in the ui thread:
(1) Querying the MimeDatabase for the mime type for the source files of
the project. In 99.9% of the cases no files need to be read for
this as the file extension will resolve the type. The expensiveness
comes from the sheer number of files that can occur.
(2) Calling compilers with the "(sub)project's compiler command line"
to determine the macros. While the caches avoid redundant calls,
the number of the unique compiler calls makes this still a
ui-freezing experience.
These two operations are moved into a worker thread. For this, the
expensive compiler calls are encapsulated in thread safe lambdas
("runners") in order to keep the "mutexed" data minimal. The original
API calls of the toolchains are implemented in terms of the runners.
While adapting the project managers, remove also the calls to
setProjectLanguage(). These are redundant because all of the project
managers already set a proper value in the constructor. Also, currently
there is no need (client) to report back detection of C sources in
project parts. This also keeps CppProjectUpdater simple.
There is still room for improvement:
* Run the compiler calls in parallel instead of sequence.
* Ensure that the mime type for a file is determined exactly once.
Change-Id: I2efc4e132ee88e3c8f264012ec8fafe3d86c404f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Move the target detection code from the QnxConfiguration class into a
separate function that can be used by the QnxConfiguration code and
the QnxToolChain code.
Move some resetToolChain calls after setSdpPath calls. QNX ABI
detection depends on the SDP path.
Change-Id: I7417a5a1064a77edfb113d9d0010f1e061b81ca6
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Remove a bunch of BlackBerry specific code blocks and functions.
Change most instances of NDK/SDK (the BlackBerry terms) to SDP (the QNX
term). To maintain backward compatibility, some instances of NDK/SDK
that end up in external files have been left as is.
Change-Id: I8f589601542983323e41e7b2dd7822914d971623
Reviewed-by: hjk <hjk@qt.io>
Change the code so that it detects a lot things that were previously
hard-coded.
Replace QnxArchitecture with Abi. There doesn't appear to be a good
reason to have a separate type.
The removal of Arch from qtversion.xml breaks backward compatibility.
Change-Id: Ic4f3a2de64f3f875841b73e9b12bbe0ea454eee8
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Enable creation of toolchains for different languages and wire
up the logic in the ToolChain Options Page.
Change-Id: I9fbd95607d30cc1aa10f73d6532338f07f3e2b4e
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
* Add a pure virtual method to get supportedLanguges with
Change-Id: Ida4445ca045c90fb9f7656a661af83e5b6801b30
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
* Add code to toolchains
* Assert that this is the case in the toolchainmanager
Change-Id: I82452689e83279fd9d1afb3140b0070bef9b6cd8
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Trigger ToolChainManager::toolChainChanged signal when something
changes. This was apparently missing in quite a few places of
some of the tool chains.
Change-Id: Ic94c6559e6267f4ff22dc74cc5b0865fb7aeac63
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The target triple will be used by the Clang Static Analyzer.
Change-Id: Ibf33fef286a4d3ad3f40be4d6d5c9f35881d3d46
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Consistently use Utils::FileNameList in favor of QList<Utils::FileName>
Change-Id: Iafbb466c882bfd91c25c9e78f107d401bfdb6d55
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
The name is overly generic, particularly with a pathChanged() signal
also present. Rename to "rawPathChanged", which adequately describes the
semantics.
Change-Id: Ia62b8b0a97a794cb6d5ad6b8ce0abcd36b5f5cdb
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>