Commit Graph

127 Commits

Author SHA1 Message Date
hjk
c23cdd9262 Utils: Merge {synchronous,qtc}process.{h,cpp} file pairs
Mechanical to prepare merging the actual classes.
Adapting #includes.

Change-Id: I77a2c28129287778bc870c30cb890cd26bc2e62b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 09:47:51 +00:00
hjk
bcb3efb3c6 Android: Use Utils::FilePaths instead of QStringList in JavaParser
Change-Id: I50cce4bd32ed494f2b68a9a3b7f6cb9108b92f66
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-07 07:50:13 +00:00
Alessandro Portale
ae5255cebd Android: Fix android-*-deployment-settings.json detection
Qt 6.0 + CMake: The name for the Android deployment settings file needs
to be determined by using the build key of the current run configuration
rather than by using the display name of the project root node.

Since in contrast to qmake/Qbs, CMake does not supply us with the file
name and we have to contruct it ourselves. Therefore, it makes sense to
move the value into the Android plugin.

This change adds AndroidQtVersion::androidDeploymentSettings which lets
qmake and Qbs still provide the value as before while handling the CMake
fallback.

Fixes: QTCREATORBUG-25209
Change-Id: I12314d06a45d6e045cb654d9140f9d2ed4602f67
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-02-18 09:34:48 +00:00
Assam Boudjelthia
3df31e9b4b Android: remove unnecessary setSummaryText for AndroidBuildApkStep
Amends 2d05822e27.

Change-Id: I24a9da450801953e1994384ae926c4f8b732b7b9
Reviewed-by: hjk <hjk@qt.io>
2020-11-27 08:28:02 +00:00
Assam Boudjelthia
6f17ad0562 Android: avoid QTC_ASSERT in addTask
Change-Id: I0b3eee749f21a031ff7b7f910b07719b03585759
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-11-26 19:03:01 +00:00
Assam Boudjelthia
2d05822e27 Android: move <b> from displayName to summaryText
In case or error QC will mention the name of the step where the error
happened, and it doesn't look right quoted in <b> tags.

Change-Id: I4b0b49367daeda845483c0bdbbc036c6d4c90f51
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-11-26 18:54:40 +00:00
Assam Boudjelthia
34a7f6f9f2 Android: remove newline chars before adding output in error/warning pane
The output of androiddeployqt that is picked by QC, can contain newline
char at the start of the received line like:
"\nNote: Recompile with -Xlint:deprecation for details."
Such output is sould be only a warning
and not an error, that's we try to remove the newline from the start to
avdoid this behavior.

Fixes: QTCREATORBUG-24881
Change-Id: Iad7556917cb0f53dc691dfb316f999ad504976e9
Reviewed-by: hjk <hjk@qt.io>
2020-11-23 07:23:07 +00:00
Assam Boudjelthia
4946677df4 Android: fix aab label name and supported versions
Task-number: QTCREATORBUG-24681
Change-Id: I5634deaf395d547d2659d71d1612897e1a3d9a2b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-10-16 11:43:37 +00:00
hjk
97c6c13dcb ProjectExplorer: Remove BuildStepConfigWidget
After the previous changes it was only an empty wrapper around QWidget.

Change-Id: I58dcd82d8342c7de5e2df537044f6cf3de878a67
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-10-06 08:06:39 +00:00
hjk
b97b7dc6f2 ProjectExplorer: Move BuildStepWidget::summary etc to BuildStep
The step is the source of information anyway, and available at the
only place of use. No need to copy that over to the widget, neither
for keeping it up-to-date there when the mechanism is already
available in the step itself.

This creates quite some potential for the simplification of
the various createConfigWidget implementations in follow-up patches.

Change-Id: I4474665f194a1ff7c5792ad086ed53c8d3ce13e6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-10-05 08:16:51 +00:00
hjk
591e93316d Consolidate build/deploystep default display name handling
Use the display name from the factory as default, override if needed.

Change-Id: I03519c998432fea4120b0de8b2fc2686644635f2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-10-02 13:18:45 +00:00
hjk
0d185a0ad3 ProjectExplorer: Simplify use of AbstractProcessStep::init()
1. Systematically check for AbstractProcessStep::init() first in
   derived classes.
2. Use setupProcessParameters(processParameters()); by default in
   the base implementation.
3. Drop all re-implementations that are effectively the same.

Change-Id: I0ae54dd4909b354672a63ee56d0b7c2ea0732494
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-09-16 16:16:13 +00:00
hjk
0d6409c20c Android: Fix use of commandline arguments to build apk
After 69ff17aa2d, the concealed password was passed to the process.

Change-Id: I69aab38e8898e5416231e863484e6702f3357841
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-09-15 06:45:17 +00:00
hjk
ca61a35910 Android: Edge towards AndroidApkBuildStep aspectification
Unexport AndroidApkBuildStep, remove AndroidBuildApkWidget file
pair, de-Q_OBJECT-ify AndroidBuildApkWidget (and as roadkill
PasswordInputDialog).

Change-Id: Id3b51dd33774aac70a4f23a8ab4cfb556ed1f2b5
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-09-15 05:15:31 +00:00
Assam Boudjelthia
14024f810e Android: expose deployment warnings and errors to issues pane
This makes the deployment process more transparent and easy to follow
warnings and/or errors.

Change-Id: Ie6a7bde4dfb5748adff1be077299ecdceb0e3930
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-09-14 08:33:04 +00:00
hjk
61bfd32438 ProjectExplorer: Introduce a ProjectConfiguration::kit() function
For convenience, and use it in some places.

Change-Id: I8f7cb502b37b2fbf4cf2d17cac9c6299558332dc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-09-09 06:27:21 +00:00
Alessandro Portale
a650997448 QtSupport: Add supportsMultipleQtAbis getter
Introduce bool QtSupport::supportsMultipleQtAbis().

Let AndroidQtVersion respond according to the QVersionNumber.

This allows to replace the version arithmetics in several
places with straight forward (and better findable) function calls.

Task-number: QTCREATORBUG-24471
Change-Id: Ib6e39fd6485a54e08ad66f84d4e2582989043419
Reviewed-by: hjk <hjk@qt.io>
2020-09-07 07:10:26 +00:00
hjk
69ff17aa2d Android: Use new AbstractProcessStep convenience functions
Change-Id: I3fa4dcdd210f4c5d492217f2e3f1ceca353a4161
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-17 10:28:50 +00:00
hjk
70b226144f ProjectExplorer: Start to consolidate AbstractProcessStep setup
Add some convenience functions to the base class to avoid repetition
in the derived classes.

Will be used immediately it in some derived classes.

Change-Id: I8fd6aa4f8351720cdc8f63f7fa5f506e32a8143b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-08-14 14:15:23 +00:00
Eike Ziller
1de74cceab Merge remote-tracking branch 'origin/4.13'
Change-Id: I015bac0cccdf466a923c706abdedd8bd8800b0cd
2020-07-06 10:30:54 +02:00
hjk
430a33dcd9 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-07-06 06:07:13 +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
Assam Boudjelthia
2acca95fab Android: remove ministro deployment option
Task-number: QTCREATORBUG-23761
Change-Id: I5be3c78a009f1747a3ccf7a6bd342969d2b8ece4
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: hjk <hjk@qt.io>
2020-06-15 11:14:50 +00:00
Eike Ziller
aa2aa9bf2a Merge remote-tracking branch 'origin/4.12'
Change-Id: Id1c063ae716c3acf5e6201c15663637040aa9a35
2020-06-03 12:22:18 +02:00
Eike Ziller
5b364de168 Use dialogParent() instead of mainWindow()
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.

Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
2020-06-02 11:44:53 +00:00
hjk
2bb783a985 Android: Fix crash in build step when no Qt version is set in kit
Amends 67df868f5c.

Change-Id: I0b69a394adefedbb80dfe240c4e5b9a89d29b7b2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-05-29 10:39:21 +00:00
Christian Kandeler
1c6e4fbd32 Merge output formatters and output parsers
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>
2020-04-23 08:47:08 +00:00
Eike Ziller
ad9e4cd2f6 Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/android/androidconfigurations.cpp
	src/plugins/qtsupport/qtoptionspage.cpp

Change-Id: I91ee3e771ab630ac3a54be53ac4be6d3c1c46950
2020-04-20 08:40:54 +02:00
Assam Boudjelthia
9e057a5536 Android: add support for new SDK Tools package cmdline-tools
The newly added cmdline-tools is not used by Qt Creator.
So QC Android settings will be broken for users who have
an Android SDK installed from Android Studio, or who
updated their SDK package (i.e. tools -> cmdline-tools).

This patch fixes both of the following issues:

1- QC looks for sdkmanager tools under <SDK_ROOT>/tools/bin/sdkmanager,
and with the new SDK it's under
<SDK_ROOT>/cmdline-tools/latest/sdkmanger.

2- QC checks the version of the SDK tools and opens the
old SDK Manager for SDK tools version 25.3.0 or less.
However, since cmdline-tools is now version 1.0, it causes
QC to think this is an old version.

Fixes: QTCREATORBUG-23726
Change-Id: I7e6bbc6840d24d358f68dfa3e229799394ace950
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-04-18 16:31:36 +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
hjk
2033b438ca Android: Use BuildSystem to access some build related data
... that's currently stored in ProjectNodes. Plan is still to adapt
all user code like this, and finally move the data storage from
ProjectNode to BuildSystem.

Change-Id: Ida9b47c4a3013b857d00e7792eaf78d9f91b3c9a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-04-03 12:23:33 +00:00
hjk
553c3c2c74 Android: Use the new Target::activeBuildKey() function
Change-Id: I051874a2b44129740b2ecc19f7ff401663d8bf0a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-04-01 13:42:08 +00:00
Eike Ziller
22cdc47077 Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/baremetal/debugservers/uvsc/uvtargetdevicemodel.cpp

Change-Id: I4a90920e52dbbe9eb46aef3437ee3c5a6e7b31c6
2020-03-16 08:30:33 +01:00
Christian Kandeler
1de9e9e402 Android: Add missing reset of state variable
The m_skipBuilding variable in AndroidBuildApkStep needs to be re-
calculated on every call to init().
Also add some debug statements that will help us find out why it becomes
true in the first place.

Task-number: QTCREATORBUG-23572
Change-Id: I058b58cf0e511557d1fad7e5bd03048a7d8b9c69
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-03-12 09:19:18 +00:00
hjk
f0fcc4e5c5 Android: Use timer for delayed execution
Reduce need for moc.

Change-Id: Ibbd85de60e891ca57738e44ad25e05e86ccb0c24
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-21 13:14:05 +00:00
hjk
04f933fd67 Android: Inline aabPath computation
Mainly to avoid an explicit use of BuildStep::buildConfiguration()

Change-Id: I96f1403d0aa2b9f5bcde06e994809466700b1357
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-20 09:47:39 +00:00
hjk
3fe1911d46 ProjectExplorer: Introduce some BuildStep convenience accessors
... and use in ProcessStep and related classes.

Change-Id: Ie6f1403d0aa2b9f5bcde06e994809466700b1357
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-02-19 16:11:05 +00:00
Eike Ziller
edc3eccd12 Merge remote-tracking branch 'origin/master' into 4.12
Change-Id: I20de58817658e2c715ce550761976ae67b3bef4d
2020-02-19 07:37:41 +01:00
hjk
4bd316ab62 Android: Access buildTargetSdk directly when possible
Change-Id: I1f9996919d982f8e54c595abaa44ed0e10a79422
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-02-18 11:14: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
919571e955 Android: Avoid one use of Target::activeBuildConfiguration
A build step knows where it belongs to.

Change-Id: I990cf1fb7f22b608a2f317a05b05f1219649aa6e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-02-10 15:57:34 +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
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
c95bde6f6a ProjectExplorer: Pass Id to BuildStep constructor
Allows to use constants in fewer places, similar to what e.g.
RunConfiguration does.

Change-Id: I9d049128206c4acf0ce14b06b66d6c090a7c5242
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-01-09 11:26:01 +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
Alessandro Portale
b250c879af Android: Use Utils::InfoLabel in AndroidBuildApk*
Task-number: QTCREATORBUG-23346
Change-Id: Ie923d9e8f774613c1e9d0bb7dc1255acfce39cef
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2020-01-02 09:44:17 +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
hjk
3c41b91d44 ProjectExplorer: Settle on fixed set of build step lists
Even if the implementation allowed different lists than 'build'
and 'clean', that's the only set that has been used, ever.

If really needed, this could be re-instated, but for now having
them fixed removes part of the neeed for a two-phase construction
and helps to simplify user code.

Change-Id: I3df09a1829a7d020ef8963d358ea80f8d199ba13
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-06 14:49:59 +00:00
Alessandro Portale
9c43466485 Use HostOsInfo::withExecutableSuffix instead of if/else
Let's use our Utils.

Change-Id: I8cfbce55d2b41e42e86d050433df2cfd20cebe1b
Reviewed-by: hjk <hjk@qt.io>
2019-11-14 15:17:34 +00:00