diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2020-09-28 20:29:29 +0300 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2020-10-02 07:13:08 +0000 |
commit | df52de2828f438db0c3c6a0d263f53fddfbe20c6 (patch) | |
tree | 61dfefcfd130f0b018fe8335c437db8ac350e359 /src/plugins/cmakeprojectmanager | |
parent | a4f2779452f6c3d3ddb16c5b0db02e7f03152cdf (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.cpp | 40 |
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."; |