Commit Graph

211 Commits

Author SHA1 Message Date
hjk
b60ab85c13 Android: Prevent crash in case there is no Qt version set
For CMake build.

Change-Id: I77946a5d7023a9cefc23baf243991949121e49ec
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 15:15:18 +00:00
Assam Boudjelthia
f936e7c10d Android: rephrase few logs
Change-Id: If03a15c88caab210fd07c61312757317ea86af2f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-07-01 20:10:16 +00:00
hjk
1c81a3b3e8 All: Use Utils::SkipEmptyParts
Task-number: QTCREATORBUG-24098
Change-Id: Iab45de9a9c17ddc39a0e343b1175d4f6cb94b098
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-17 05:55:25 +00:00
Christian Stenger
4b1adeca7f Android: Use QRegularExpression instead of QRegExp
Task-number: QTCREATORBUG-24098
Change-Id: Ic19bd73dd2bac39b393bf87c4567193631b57c80
Reviewed-by: hjk <hjk@qt.io>
2020-06-16 06:19:01 +00:00
hjk
5b2b8446b2 Android: AndroidManager code cosmetics
Change-Id: I228c29fb7dcf5d919bea3633ea235b5ae5a51a42
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-05-19 13:25:48 +00:00
hjk
5ce3059464 Android: Shuffle debug server detection code a bit
More in one place now.

Change-Id: I974c9351246ea88d8d16bcf7fb45abf763b7b7e5
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-05-19 13:24:23 +00:00
hjk
021cab2048 Utils: Introduce FilePath::operator/(const QString &)
Including some random uses.

This mimics  std::filesystem::operator/(std::filesystem::path).

Change-Id: I0b0f5cf0d962fd33d4cbb9be96645a0b4a21ee03
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-04-09 07:48:22 +00:00
Eike Ziller
61dc14b67f Merge remote-tracking branch 'origin/4.12'
Change-Id: I3e7049da2c3da6f784e3cb3407c22ada556e5d24
2020-02-26 08:35:05 +01:00
hjk
5c9141241b Android: Inline AndroidManager::intentName into only user
Using Target is actually not optimal as handle to access that
information (BuildSystem + BuildKey or sth to that effect would
be better), so reduce the visibility of this kind of interface.

Change-Id: I138f156b51795d51d2af49c5119d160663dfc20d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-24 12:56:41 +00:00
Assam Boudjelthia
b9b2145396 Android: parse Android 11 (R) packages
Allow parsing packages of the latest Android 11 (R) with API level 30.

Change-Id: Ia50d2ff23395b79828d47a8f9aeb3880aa131d83
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-20 15:00:13 +00:00
hjk
3f68292dbe ProjectExplorer: Introduce ToolChainKitAspect::{c,cxx}ToolChain
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>
2020-02-19 15:59:12 +00:00
Assam Boudjelthia
67df868f5c Android: Automatically use the correct NDK for each Qt version
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>
2020-02-17 16:14:50 +00:00
hjk
299d34d547 Remove apparently unneeded QtPlugin includes
Change-Id: I511c0318a72dbf2a92e4749dee02eabfc9826139
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-12 16:03:37 +00:00
Eike Ziller
5c121d5791 Merge remote-tracking branch 'origin/4.11'
Conflicts:
	src/plugins/genericprojectmanager/genericproject.cpp

Change-Id: Ib54f1645ec70a9e6460a888a13190ede130bccca
2020-02-05 11:59:35 +01:00
Christian Stenger
4979b5286e Android: Fix compile for gcc 5.3
Change-Id: I535b5873390910ca2a9963c70ed2912820c1df0e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-21 06:36:55 +00:00
Alessandro Portale
24a25eed14 Use isEmpty() instead of count() or size()
Change-Id: I0a89d2808c6d041da0dc41ea5aea58e6e8759bb4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-20 20:56:57 +00:00
BogDan Vatra
12c74e6664 Handle Qt < 5.14.0 androiddeployqt settings file
This file is needed by cmake projects.

Fixes: QTCREATORBUG-23306
Change-Id: Ie0ffd325ca01ac5638620c258d5e8ed5bbd3259e
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-01-20 17:18:36 +00:00
Alessandro Portale
9904464074 Make various Q_LOGGING_CATEGORY's static
Change-Id: I43d3a198b0863d85a7fb305c7cb768f68acbd139
Reviewed-by: hjk <hjk@qt.io>
2020-01-15 14:54:10 +00:00
hjk
bfc73a356c Android: Move aabPath() to only user
This incidentally removes one of the activeBuildConfiguration uses.

Change-Id: I51b52a4da5f89b464b3b0644b09258ca76a2e872
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-06 09:49:41 +00:00
hjk
d0b8e1a1ae Android: Inline *AndroidBuildApkStep::findInBuild() into callers
This is an unusual and unneeded indirection.

Change-Id: If0e241364899555f5fe6e07fed38f440bbf2812b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-12-20 14:21:46 +00:00
Alessandro Portale
79bbe93c1b Android: Make more logged command calls copy&pasteable
Change-Id: I43e01efc4cb583235ad2d97150d4478b23558659
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-12-09 10:23:16 +00:00
BogDan Vatra
ce95e31766 Fix debugging armv7a & x86 when running on 64 bit targets
We need to choose the preferred ABI based on what it's in the package
not based on what Qt supports.

Change-Id: I243fbf67913af7804af868d507323c0934ad3752
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-12-03 14:15:20 +00:00
BogDan Vatra
e21fe24c40 Android: Get the preferred Abi from apk & device
Change-Id: I47325aaec0575dde0e9c9669e61248dac753c670
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-11-29 09:30:58 +00:00
Tim Jenssen
0be200e44e improve code
Change-Id: I06c7274c39f7e369d4cd9bed0c1ef77e4bc08b35
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-12 12:22:15 +00: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
hjk
fc2e22dad2 Android: Move logic to trigger AndroidManager::updateGradleProperties
Previously, AndroidManager::updateGradleProperties operated always
on a project node found using target->activeRunConfiguration()
which might or might not be the one that will actually be used
after the build.

This here still does not address the problem that the activeRunConfiguration
may change but introduces a way to specify the relevant node, and tries
to use the right one when available.

At some time, this could be developed into a real solution, e.g.
by invalidating the cache on build key changes.

Change-Id: I37a3d73e9ad3615025e4def2493f683d11add3c6
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-10-01 08:15:55 +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
BogDan Vatra
0bf51b9cd6 Android: Add Android 10
Change-Id: I72822b9411f95e868082cf2a5aec885bd809213a
Reviewed-by: hjk <hjk@qt.io>
2019-08-28 06:00:16 +00:00
hjk
3c92742605 Android: Rename ANDROID_TOOLCHAIN_ID to ANDROID_TOOLCHAIN_TYPEID
That's what it is, and it's the only odd one out currently.

Change-Id: If098e2691b9f88fbd5f516cf869e390f43b9ddfa
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-06-14 09:42:09 +00:00
hjk
ca4ba34229 Use Utils::FilePath in SynchronousProcess
Adapt callers and surrounding code.

Change-Id: Ie6c1883a44169cf9d790d06b660f46d24dc24c89
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-06-11 08:11:07 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
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>
2019-05-28 12:23:26 +00:00
hjk
7e2992453e Android: Remove remaining uses of FileName::appendPath()
Change-Id: I33fb650f357d93d177e5977b21b14b42894f571a
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2019-05-27 09:10:56 +00:00
hjk
dc9cbd8f57 More FileName::appendPath() -> .pathAppended() changes
Change-Id: Ibc7eb4eb3ffb64658e441aafa240b1ddc0061930
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 09:10:19 +00:00
hjk
eb9e3c807c Even more FileName::appendPath() -> pathAppended()
Change-Id: I0a8bc391ff3704e14df87e4fa3bc82269146f943
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-05-20 13:13:06 +00:00
hjk
f99d69ee43 Utils: Replace mutating FileName::appendString
... by a non-mutating .stringAppended, doing the same.

Change-Id: I7adb6cae3415942cc9a80088bd75cda9d577d4a5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-15 07:42:59 +00:00
BogDan Vatra
57c48630a8 Android: Add proper QBS support
Now we can use QtCreator to build, deploy, run & debug QBS projects.

[ChangeLog][Android][QBS] Add Android support for QBS projects.

Fixes: QTCREATORBUG-15573
Fixes: QTCREATORBUG-19880
Fixes: QTCREATORBUG-22182
Change-Id: I08b153a44dcf7ca178689c1c30fa2201c4cc0dbb
Reviewed-by: hjk <hjk@qt.io>
2019-04-26 06:37:00 +00:00
BogDan Vatra
26463a2219 Say hello to Android CMake support
Requirements:
 - NDKr19 or newer
 - Qt 5.12.1 or newer

QtCreator supports the following variables:
 - ANDROID_PACKAGE_SOURCE_DIR
 - ANDROID_EXTRA_LIBS

Be aware, that there is a lot of magic done on QtCreator side, and you
can't use only cmake to build an Android APK.

[ChangeLog][Android][CMake] Add Android support for CMake projects.

Change-Id: I1d351976ed56f424c2bc972f4ff7b5968147a2ed
Reviewed-by: hjk <hjk@qt.io>
2019-03-06 14:47:27 +00:00
hjk
6f37348b4c Replace static_casts by QOverload where possible
Mainly to get rid of the QProcess::finished deprecation warning.

Also adjust coding style in the surrounding connects when needed.

Change-Id: I12f9b248c7974b892c4a069356e578e80f8c59e9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-26 15:18:14 +00:00
hjk
7a0ae39988 Android: Remove some indirection when finding the minimum NDK
One instance had (base) qt version already at hand, the other was
inside AndroidQtVersion itself.

Also remove the typo in the function name.

Change-Id: I8fb0a1cd11751e4dea1f29a99603ea6b0112c49e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-18 13:34:12 +00:00
Christian Kandeler
83dd031960 ProjectExplorer: Rename KitInformation to KitAspect
The name "KitInformation" does not properly convey the fact that it
represents a certain *aspect* of a kit. The same goes for
"KitConfigWidget", which in addition was inconsistent with
"KitInformation".
We now use "KitAspect" and "KitAspectWidget".

Change-Id: I9804ee4cedc4d61fad533ea1dd4e4720e67fde97
Reviewed-by: hjk <hjk@qt.io>
2019-02-11 11:55:01 +00:00
hjk
ee483abdb6 Android: Remove DeployConfiguration restriction
... to matching Qt and tool chain.

This is the only remaining place in Creator that refuses to restore
deploy configurations in such cases, and arguably there's no point
in dropping such a configuration as a whole, the individual steps
(i.e. AndroidDeployQtStep) can and do chicken out at deploy time
if there's no Qt version in reach.

Also move AndroidDeployConfigurationFactory to the plugin.cpp,
no need for a .cpp/.h pair for the remaining few lines.

Change-Id: If6ea7cf9573149c88c05629997ac582dc90d1e48
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-01-25 13:09:06 +00:00
hjk
90e31668d6 Android: Code cosmetics
Remove unused functions, inline rarely-used code, ...

Change-Id: Ib3b0645cebf6bfabea1f4f2b4c5a582afca18101
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-01-22 15:14:58 +00:00
hjk
d52af48883 QmakeAndroidSupport: Remove plugin
The remaining dependency is hacked into QmakeProjectManager
by using a compile time-only dependency on androidconstants.h.

Change-Id: Id78125137bc75c145a072bc753276abbf0029647
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2019-01-16 11:00:45 +00:00
Eike Ziller
04a4bacbf9 Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/coreplugin/dialogs/externaltoolconfig.ui

Change-Id: Ie38e9028cee599578c59b22325d85c097335243e
2019-01-07 13:24:12 +01:00
hjk
5d1114fe52 ProjectExplorer: Drop the target argument
... from ProjectNode::targetData and setTargetData, and rename them
to data and setData.

It was only used in the implementation to retrieve the right node,
instead move the responsibility to find the right node to the caller.

Current assumption is that the functions were always called on
the right node already.

Change-Id: I9ae7e8a7ed5c79b924b99fd9a6a652bad56d114a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-12-20 16:18:37 +00:00
hjk
93257a56a0 QmakeAndroid: Replace remaining AndroidQtSupport
This uses the same approach as in the previous patches: Have some
generic interface in the base classes (here ProjectNode::targetData()
setTargetData()) and implement on the qmake project side.

Implementation for Cmake/QBS is architecture-wise possible, but
not used right now, and left for later.

Change-Id: I3bbf66170020cf9027a894cd66db15ec7ffbf499
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-12-20 13:13:51 +00:00
Christian Stenger
1d683dcc07 Android: Correct setting ANDROID_NDK_PLATFORM
Instead of using always just the minimum SDK version
we need to differentiate between SDK and NDK version.

Fixes: QTCREATORBUG-21536
Change-Id: I2f99c9d40ab05ccd2a4b8efeb2cd0300ecf0cf3a
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-12-17 12:41:31 +00:00
Eike Ziller
29c9f8080d Merge remote-tracking branch 'origin/4.8'
Conflicts:
	src/plugins/android/androidrunnerworker.cpp

Change-Id: Ibd8b99435365fb7e7d488313fd1d2b3a75adad1b
2018-11-29 13:36:14 +01:00
Christian Stenger
9ee5cab4ae Android: Add Android 9/API level 28
Change-Id: I80b294a20bbfa19f9b83e080caa6e647062f7458
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-11-23 09:10:58 +00:00
Eike Ziller
fd7cba88ef Merge remote-tracking branch 'origin/4.8'
Conflicts:
	doc/src/editors/creator-only/creator-code-pasting.qdoc
	src/plugins/android/androidbuildapkwidget.cpp

Change-Id: Iea8b7135643d14ffe49d10b14bedb8fa5ac48063
2018-10-24 13:58:45 +02:00