aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2020-09-28 20:29:29 +0300
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2020-10-02 07:13:08 +0000
commitdf52de2828f438db0c3c6a0d263f53fddfbe20c6 (patch)
tree61dfefcfd130f0b018fe8335c437db8ac350e359 /src/plugins/cmakeprojectmanager
parenta4f2779452f6c3d3ddb16c5b0db02e7f03152cdf (diff)
Android: get correct value for ANDROID_DEPLOYMENT_SETTINGS_FILE for Qt 6
CMake with Qt 6 which uses android-${target}-deployment-settings.json file name, we use substitute ${target} with the root node target name to get the correct file name. Task-number: QTCREATORBUG-24678 Change-Id: Ib0c82b947b3217b6b763191b22d91ab9674fedce Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp40
1 files changed, 27 insertions, 13 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
index ddf35da9b97..7d1d6cf5f56 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
@@ -49,6 +49,7 @@
#include <projectexplorer/taskhub.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
#include <qtsupport/qtcppkitinfo.h>
+#include <qtsupport/qtkitinformation.h>
#include <app/app_version.h>
@@ -562,16 +563,6 @@ void CMakeBuildSystem::updateProjectData()
CMakeConfig patchedConfig = cmakeBuildConfiguration()->configurationFromCMake();
{
- CMakeConfigItem settingFileItem;
- settingFileItem.key = "ANDROID_DEPLOYMENT_SETTINGS_FILE";
- settingFileItem.value = cmakeBuildConfiguration()
- ->buildDirectory()
- .pathAppended("android_deployment_settings.json")
- .toString()
- .toUtf8();
- patchedConfig.append(settingFileItem);
- }
- {
QSet<QString> res;
QStringList apps;
for (const auto &target : m_buildTargets) {
@@ -602,8 +593,32 @@ void CMakeBuildSystem::updateProjectData()
auto newRoot = generateProjectTree(m_allFiles);
if (newRoot) {
setRootProjectNode(std::move(newRoot));
- if (p->rootProjectNode())
- p->setDisplayName(p->rootProjectNode()->displayName());
+ CMakeConfigItem settingFileItem;
+ settingFileItem.key = "ANDROID_DEPLOYMENT_SETTINGS_FILE";
+
+ const FilePath buildDir = cmakeBuildConfiguration()->buildDirectory();
+ if (p->rootProjectNode()) {
+ const QString nodeName = p->rootProjectNode()->displayName();
+ p->setDisplayName(nodeName);
+
+ const Kit *k = kit();
+ if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
+ const QtSupport::BaseQtVersion *qt = QtSupport::QtKitAspect::qtVersion(k);
+ if (qt && qt->qtVersion() >= QtSupport::QtVersionNumber{6, 0, 0}) {
+ const QLatin1String jsonFile("android-%1-deployment-settings.json");
+ settingFileItem.value = buildDir.pathAppended(jsonFile.arg(nodeName))
+ .toString()
+ .toUtf8();
+ }
+ }
+ }
+
+ if (settingFileItem.value.isEmpty()) {
+ settingFileItem.value = buildDir.pathAppended("android_deployment_settings.json")
+ .toString()
+ .toUtf8();
+ }
+ patchedConfig.append(settingFileItem);
for (const CMakeBuildTarget &bt : m_buildTargets) {
const QString buildKey = bt.title;
@@ -646,7 +661,6 @@ void CMakeBuildSystem::updateProjectData()
{
updateQmlJSCodeModel();
}
-
emit cmakeBuildConfiguration()->buildTypeChanged();
qCDebug(cmakeBuildSystemLog) << "All CMake project data up to date.";