Commit Graph

111 Commits

Author SHA1 Message Date
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
Assam Boudjelthia
f46099d21e Android: Automatically download SDK tools and essential packages
Automatically download Android SDK Tools to default path
used by Android Studio, then essential packages will be installed
using the sdkmanager tool. Automatic installation can also be
triggered by an added button in the settings page.

Essentials packages include NDK Bundle and other NDK versions
required by previous Qt versions.

An sdk_definitions.json file holds download paths for SDK Tools,
and other (Qt version <-> essential packages) combinations.

[ChangeLog][Android] Automatically download SDK Tools, NDKs and
all essential packages for Android builds.

Task-number: QTCREATORBUG-23285
Change-Id: I90e7aafecd017d2bdc959e403711d9d440a6bbb2
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-07 18:21:30 +00:00
Assam Boudjelthia
0df5d8c2e5 Android: Improve "Add new AVD" dialog
* Re-organize the implementation to create a new AVD
* Use SystemImage instead of SdKPlatform because now
an SdkPlatform can be installed partially with a SystemImage.
The current implementation does not consider the this case,
thus we end up with an uncomplete list of installed system images.
* Add Device definitions with categories (phone, tablet, tv, etc.)
to the creation process (check -d arg in avdmanager create avd).

Task-number: QTCREATORBUG-23284
Change-Id: Id02a71ad452fb423fa2781d06ef3fcf2afa328a9
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-13 15:20:05 +00:00
Assam Boudjelthia
6d897c00f4 Android: Add more informative fields to AVD manager UI
Task-number: QTCREATORBUG-23284
Change-Id: Ic93de1c05731360b85925acd23bdca12edc56069
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-08 08:36:44 +00:00
Alessandro Portale
b7acfc37b5 Android: Remove "qtlive" support
Productization of Qt Live preview for Android didn't happen.

Change-Id: Ie69d8193afec9b59d859bc65c45d36028247e2b9
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2019-12-18 05:46:53 +00:00
Eike Ziller
15b2765dff Update Qt validity in options when changing Android device settings
When changing the Android device settings and pressing "Apply", the
information in the "Qt Versions" tab is no longer correct.

The Abi information is parsed from the mkspec, and that depends on the
NDK setting in the environment.
When the NDK in the device settings changes, it updates the toolchains,
and that triggers a re-validation of the Qt info in
QtOptionsPageWidget::validInformation, but since the Android Qt version
already has tried parsing the mkspec, and got (possibly empty) Abi
information, it never is parsed and updated again.

We need a way to force BaseQtVersion to update these things again.

Fixes: QTCREATORBUG-23095
Change-Id: I9cb55ad1a73db942804637344e4c856c7e95afd3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-20 11:28:47 +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
hjk
5efa84b91f Replace remaining Utils::FileName occurrences by Utils::FilePath
Change-Id: Ic3120f18b4fbe90219de9128dba53d7453630b03
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-23 13:40:22 +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
Orgad Shaneh
1e138fbe10 Remove excess blank lines after namespace
Change-Id: I4e4f83017f2bfc2cf842c4c971ed4b05e0447e6a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 06:50:16 +00:00
Eike Ziller
8d19b306ed Android: Detect clang and gdb from older NDK
Get some minimal compatibility with the older NDK that is used for
Qt < 5.12 back.
This detects clang-3.6 and gdb from NDK 10e.
For building, the android-g++ mkspec continues to be used for Qt < 5.12
(it uses Qt's default mkspec, regardless of toolchain in the kit,
because the toolchain reports to support both).

Task-number: QTCREATORBUG-21595
Change-Id: I3487c38093f43ccae2418fb28807a50fbda101a8
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-29 14:28:59 +00:00
Vikas Pachdha
de97b8cf3e Android: Auto detect clang toolchains
Remove GCC auto detection
Make Clang toochain default for Android
Remove auto detected toolchains from old NDK

Task-number: QTCREATORBUG-11846
Change-Id: I618e6f8eda4f24f498260b8de778ef543311acd1
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-11-02 15:10:50 +00:00
BogDan Vatra
25264d9bd9 Fix debugging on Android arm64/x86_64
On Android 64, there is no lib/ symlink anymore, so we need to upload
gdbserver from QtCreator.

Change-Id: Ib6f6d9b623dc61b72dd434ce1b3b409e880bdeaa
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-10-04 15:36:35 +00:00
Vikas Pachdha
b8da47af9c Android: Log Qt live apk path and few more code paths
Change-Id: Id743db4865b399c619c04fc393540758352c60e1
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-07-19 14:47:58 +00:00
Vikas Pachdha
f10002e3f5 Android: Deploy Qt live apk for QML projects
Task-number: QDS-16
Change-Id: Iafb1f7ea5d354e73020ff3c5175efa82f99bdffe
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-07-10 11:51:44 +00:00
Vikas Pachdha
42754374b0 Android: Parse APK to find package name and other information
Task-number: QDS-16
Change-Id: I228af0711fb2dd64ff96dcb5fc9bc634b556ffd9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-07-09 08:57:49 +00:00
Ulf Hermann
dab2045099 Android: Make sure we can queue AndroidDeviceInfo in connections
Change-Id: I7f59cba50e180ea4584442f8c2a409abb9e49a33
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-05-22 07:33:15 +00:00
Tobias Hunger
fb71cac07b Android: Consistently use nullptr
Fixed by clang-tidy modernize-use-nullptr.

Change-Id: Ib0a73a06f6aea5284a93ee1e6c1b4411588a4ea1
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-05-09 12:14:46 +00:00
Tobias Hunger
7bd94b1db2 Android: Use override consistently
clang-tidy fixes from modernize-use-override check.

Change-Id: I06c9c0b27e178695328dc139a83203aec79528e4
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-05-09 12:14:21 +00:00
Ulf Hermann
8e9454010b Android: Make qmlscene command configurable
Change-Id: Ife1dd4ae9fa3bcc822c27d744c3ed626bae99b8f
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-02-14 14:03:39 +00:00
hjk
b0b4022470 Android: Some code cosmetics
The naming scheme of the internal object was changed
to the usual pimpl pattern.

Also setup device update connection in the device constructory

Change-Id: I5cbb7a9d870a7d1f0e91e54f2ad6dfb95ea63e37
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-02-14 10:12:07 +00:00
hjk
7ab872ce6a Android: Remove dependency on plugin object pool
Change-Id: Ic6908cca581a0d6155c8c43c86163347ca578a4c
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-01-30 10:21:18 +00:00
Ivan Donchevskii
ebdeb87241 Android: fix make command for latest NDK
Change-Id: I8c54ac146a96c11d6df5a7e5c791314799119b5f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-11-20 11:08:56 +00:00
Vikas Pachdha
5754b7d09f Android: Fix Sdk manager system environment
Android native tools fail if JAVA_HOME environment variable is
not defined

Task-number: QTCREATORBUG-19072
Change-Id: I3db910b34d9bdd9ebc9ba052b5300ecf5ef3ce15
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-12 07:59:52 +00:00
Vikas Pachdha
c52ee5238b Android: Enable common arguments for SDK manager command
Task-number: QTCREATORBUG-18978
Change-Id: I9f3e2b16a77ff949268960d2b5c5aa1896fa3770
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 12:01:29 +00:00
Vikas Pachdha
e70179e14f Android: Add API to check whether to use native SDK UI tools
Task-number: QTCREATORBUG-18978
Change-Id: I1cf4749e81b3b49de14ff88a5876569886d2cdfe
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:59:46 +00:00
Vikas Pachdha
ec4fe5f04f Android: Refactor Android SDK packages
Introduce a hierarchy for Android SDK packages and refactor the
code accordingly. This is ground work for sdk management and
automatic android setup

Task-number: QTCREATORBUG-18978
Change-Id: Idef545e3b3a8e33e920be52b26094fb8046afcd3
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:58:16 +00:00
Vikas Pachdha
027383814a Android: Remove Ant and make gradle as the default java build tool
All GUI options to choose between  ant and gradle are removed.
Gradle is the only java build tool used now.

Change-Id: I309ff66256c5d40920a5d77a8331c5917c53c185
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-09-14 09:01:12 +00:00
Jake Petroules
6458473414 Android: remove support for local/debug deployment option
This is only usable with versions of Android older than 5. Now that
Android 8 is the current version, we say goodbye to this feature as it
is almost certainly no longer of use to anyone.

Task-number: QTBUG-62995
Change-Id: I19795eb385b18f4dd87a1bb8df57d36c3fa28dc5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-09-06 18:21:26 +00:00
Vikas Pachdha
27e740cab4 Android: Extend Android SDK sanity
Verify the essential tools and packages required for development

Task-number: QTCREATORBUG-18837
Change-Id: Ie89e8fcf3bf75f1db9cc5eac50859cf6f3e5fafd
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-09-06 11:41:37 +00:00
Vikas Pachdha
5009bafea2 Android: Fix C++ debugging
Target Async mode enabled only for ndk version > 11

Task-number: QTCREATORBUG-18111
Change-Id: I218b6c23c1da13091f0035193a43e6117748055a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-05-08 15:13:29 +00:00
Vikas Pachdha
8dc98995fa Android: Force Gradle build post SDK tools version 25.3.0
Task-number: QTCREATORBUG-18013
Change-Id: Ic912427783d079f5f6bf06e3bf9a44657d24a96f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 13:54:24 +00:00
Vikas Pachdha
70be880bcb Android: Use avdmanager tool
android tool is deprecated since sdk tools version 25.3.0.
Use the new avdmanager tool

Task-number: QTCREATORBUG-17814
Change-Id: Id6f495f14e12d0069df08164cac1929b76d9e932
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 13:42:10 +00:00
Vikas Pachdha
05b77e8468 Android: Use sdkmanager tool
android tool is deprecated since sdk tools version 25.3.0.
Use the new sdkmanager tool

Task-number: QTCREATORBUG-17814
Change-Id: I96446f5a64c1c400066b4ac7771c8c7e1bf567ed
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 13:41:48 +00:00
Vikas Pachdha
2b5f5abb2b Android: Add system image information for each platform
Groundwork for the new sdk and avd management tool's integration

Task-number: QTCREATORBUG-17814
Change-Id: I3e46f6d3aa56c0f16dd66d0b1d731043e180e012
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 12:45:42 +00:00
Vikas Pachdha
198c83ea70 Android: Add Android tool manager
Refactor the use of android tool and groundwork for the new sdk
and avd management tool's integration

Task-number: QTCREATORBUG-17814
Change-Id: I6a5920f9ba92508f904cd8cf28bf62c82de2d820
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 12:45:30 +00:00
Filippo Cucchetto
4b1f8f3609 ProjectExplorer: Added support for registering custom languages
Change-Id: I728a2ed1ef7d9f44d7c2b59d27d6e23444cd3bb5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-01-23 11:19:11 +00:00
Tobias Hunger
de0cf4e92c Android: Simplify code and make sure all members are initialized
Change-Id: I873737d39865f9a920a5893c9630430e6803a6ee
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2016-12-06 10:18:54 +00:00
Tobias Hunger
38f089c580 Android: Initialize CreateAvdInfo::sdcardSize
Change-Id: I77c4055c488fd426e186666ac6ee48e3b60211c6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-29 15:12:49 +00:00
Tobias Hunger
5a2001f730 Android: Add C toolchains
This should fix kits complaining about wrongly set C compilers and
ABI incompatibility between C and C++ compilers.

Task-number: QTCREATORBUG-17165
Task-number: QTCREATORBUG-17166
Change-Id: Ia002490b471e0f5306c3a76b27158869920452ed
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-10-27 10:36:02 +00:00
Orgad Shaneh
88dfa84fc6 Android: Use Qt5-style connects
The heavy lifting was done by clazy.

Change-Id: Id09b62b7b9812d9c0981202c257d18387a8b09d9
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-07-04 09:35:58 +00:00
hjk
39a38d5679 Wholesale conversion to #pragma once
Kudos to cgmb and https://github.com/cgmb/guardonce

Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-30 15:20:19 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
BogDan Vatra
957c0af570 Immediately return the default device if is found
Task-number: QTCREATORBUG-15422
Change-Id: I7be44fbe43c320c171ffb724ffd25414e184fd9a
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-12-10 10:47:31 +00:00
Tobias Hunger
b977b2f4b1 Android: Fix AndroidDeviceInfo::isValid
Task-number: QTCREATORBUG-15430
Change-Id: I6746cffd8d3d4ffc71c35060ed0a2eba7a7aa64b
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-12-01 13:05:08 +00:00
Tobias Hunger
8e55ee6377 Android: Clean up AndroidDeviceInfo
Turn it into a class, add a isValid method and initialize it properly

Change-Id: I413ca931b125c9bbfc58b855280e9e58402f3d0b
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-11-17 10:05:06 +00:00
Daniel Teske
11bcc8efe2 Android: Increase timeout of android list avd to 20s
Now that every usage of that command is using it in a separate
thread we can do that without any problems.

Change-Id: If38a734ceb5c519cd3ed28357374c83843e67c8e
Task-number: QTCREATORBUG-13634
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2015-05-18 09:34:26 +00:00
Daniel Teske
597096312f Android: Fix deployment to wrong avd
We used to only identify the avd by api level and abi. That was
obviously incorrect, but at the time I didn't know how to get
the actual avd name from a running emulator.

Turns out this is reasonable easy via telnet on the emulator port.

Change-Id: I387901a5294674f44399c0726abcc9feea221e8d
Task-number: QTCREATORBUG-13095
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2015-05-18 09:33:38 +00:00
Daniel Teske
557bac136b Android: Don't remove all kits on changing the ndk
Instead compare the toolchain version (and abi) and replace the old
toolchain with the new toolchain.

This requires splitting up the updating into two parts, registering
the new toolchains first, then updating the kits and last removing
old toolchains.

Change-Id: Ida6aa27e84f683ef7a3159b69bb12f93cee4ec67
Task-number: QTCREATORBUG-14243
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2015-04-27 13:42:01 +00:00