Reducing the expected executable extensions can improve the performance
for search in path on Window. Especially if PATHEXT and PATH has a lot
of entries, since we collect file attributes for PATHEXT entry count
times PATH entry count file paths. Use this optimization in the android
toolchain to search for java.exe on windows.
Change-Id: I2c2865d685c2de0c03a0fa1fbe7e8afd283174da
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
... by some out-of-band mechanism, keeping previous functionality.
The driving reason is to get the same fromMap signature as in the
AspectContainer base.
Change-Id: Ife7fbf4d0e0f78d88729021eb5220ec4a8ddb2ec
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Toolchains are only (re-)created if the NDK changes. And till now, the
environment for the toolchain was only set during its creation.
However, if the user only changes the JDK location, we don't want to
recreate the toolchain but to still update the JAVA_HOME variable for
the environment.
This change does so that resetToolChain() is called also for pre-
existing toolchains (not just the newly created ones). That triggers a
call of addToEnvironment(), which sets the potentially updated JAVA_HOME
variable.
Fixes: QTCREATORBUG-28827
Change-Id: Id55f59f3ef3c8bfbb2b811052e0f60f495843dc3
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Avoid a global static that doesn't buy much; some namespace changes.
Change-Id: I80d0f5c0e6c7a77e91930ec198c39080b6c7404a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Recent SDK Manager that is used by Qt Creator works with JDK 11+,
and JDK 11 is needed by Qt 5.15.7+, so look for the newest JDK
instead of 1.8 as currently being done.
Change-Id: I6ff415aa300d742735e8636b24a03116d5bfe2b6
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
ANDROID_HOME, ANDROID_SDK_ROOT and JAVA_HOME should be set as native
paths in an environment to follow common practice.
Change-Id: I073d125c93e27a02cc2b909e8c641ea61b3e9f8e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Since the config can be expected to modify configuration values
(e.g. setEmulatorArgs()) it shouldn't be const, but can be set
to const whenever creating a reference that is not meant for
modifying the config.
Change-Id: I8c816a5422d4d57afa158c723d908e3a9a9a0db8
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Similar to QT_RESTRICTED_CAST_FROM_ASCII to avoid the need for
decorations in user code.
At the same time, drop some convenience constructors and functions
in CommandLine and Icon essentially serving the same purpose.
Change-Id: Ida4e5ac19c2da0a4298a97b2a8e1511d56bbb79d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The coreplugin/id.h header is kept for downstream for now.
Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This adds the option for the user to add a custom NDK out of the
predefined list installed from SDK manager. Once an NDK is added and
settings saved, both the toolchains and debuggers will be detected
automatically. The user then can create a custom kit with those added
toolchains and debuggers.
Task-number: QTCREATORBUG-23286
Change-Id: I46200accca6fc956b73f211213bfe2a495093934
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The change 290840, made AndroidToolchain tied to an NDK location, but
when restoring a toolchain the NDK wasn't being assigned. This deduces
the NDK location from the toolchain compilerCommand().
Change-Id: I3cd936ac48570fadbec15ac1e13496706718c0ea
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
As collateral damage, use a capital C in KeilToolchain*.
Change-Id: If9d64de2108366546683144975d975d9d1727712
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Some toolchains that were auto detected in previous sessions or version
of Creator might re-appear as manual toolchains. Thus, make sure that's
fixed. Also, make sure the name of old toolchains is updated with the
current name format.
Change-Id: I04d2145cb9c5e1e25e2bcbc21c014280bc355195
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Based on change 286266, we can find a correct NDK version for Qt for
Andriod version. This change allows Android plugin to get relevant NDK
information and registers appropriate toolchains and kits settings.
[ChangeLog][Android] Automatically use correct NDK version
corresponding to used Qt version.
Task-number: QTCREATORBUG-23583
Change-Id: Ic6b0d7a1ae8962c075b77498de88e018a008ac3e
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
We not only have to make sure that the Java path from the Qt Creator
settings exists in the PATH, it must also be the one that is found when
running Java tools. Otherwise having two different Java versions in the
PATH can lead to the wrong one being run for the build.
Fixes: QTCREATORBUG-22504
Change-Id: I22ff88fb334bb8ba5f719fbc3482c4629713409f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
33a9a03121 broke it by inverting the
condition.
Task-number: QTCREATORBUG-22504
Change-Id: Id0b66ec025281e6d6c52b7309f35a3bdfb8e7170
Reviewed-by: hjk <hjk@qt.io>
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.
Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The pattern to alias const types is not used elsewhere in creator
and apparently to difficult for me. It's the second time I wondered
why a const value can be bound to a "non const" CToolChainList &.
Change-Id: I0d179dcaed01a1eafde4390f3fc55bf77417adc8
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
That's what it is, and it's the only odd one out currently.
Change-Id: If098e2691b9f88fbd5f516cf869e390f43b9ddfa
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
And inline it in AndroidConfigurations, which is the only place that
made use of suggestedDebugger()
Change-Id: I87f135b5d115adb7e46b0f009c5853221e9a3daa
Reviewed-by: hjk <hjk@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>