forked from qt-creator/qt-creator
Android: Use BuildConfiguration instead of Target
... in JLSClient. Change-Id: I9c8fc0c3b381021c12c9e35afe38574c429c6fee Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -212,9 +212,9 @@ int minimumSDK(const Kit *kit)
|
|||||||
return minSdkVersion;
|
return minSdkVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString buildTargetSDK(const Target *target)
|
QString buildTargetSDK(const BuildConfiguration *bc)
|
||||||
{
|
{
|
||||||
if (auto bc = target->activeBuildConfiguration()) {
|
if (bc) {
|
||||||
if (auto androidBuildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>())
|
if (auto androidBuildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>())
|
||||||
return androidBuildApkStep->buildTargetSdk();
|
return androidBuildApkStep->buildTargetSdk();
|
||||||
}
|
}
|
||||||
|
@@ -43,7 +43,7 @@ void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbi
|
|||||||
int deviceApiLevel(const ProjectExplorer::Target *target);
|
int deviceApiLevel(const ProjectExplorer::Target *target);
|
||||||
void setDeviceApiLevel(ProjectExplorer::Target *target, int level);
|
void setDeviceApiLevel(ProjectExplorer::Target *target, int level);
|
||||||
|
|
||||||
QString buildTargetSDK(const ProjectExplorer::Target *target);
|
QString buildTargetSDK(const ProjectExplorer::BuildConfiguration *bc);
|
||||||
|
|
||||||
int minimumSDK(const ProjectExplorer::BuildConfiguration *bc);
|
int minimumSDK(const ProjectExplorer::BuildConfiguration *bc);
|
||||||
int minimumSDK(const ProjectExplorer::Kit *kit);
|
int minimumSDK(const ProjectExplorer::Kit *kit);
|
||||||
|
@@ -13,9 +13,10 @@
|
|||||||
#include <languageclient/languageclientutils.h>
|
#include <languageclient/languageclientutils.h>
|
||||||
|
|
||||||
#include <projectexplorer/devicesupport/devicekitaspects.h>
|
#include <projectexplorer/devicesupport/devicekitaspects.h>
|
||||||
|
#include <projectexplorer/buildconfiguration.h>
|
||||||
|
#include <projectexplorer/buildsystem.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
#include <projectexplorer/projectnodes.h>
|
#include <projectexplorer/projectnodes.h>
|
||||||
#include <projectexplorer/target.h>
|
|
||||||
|
|
||||||
#include <qtsupport/qtkitaspect.h>
|
#include <qtsupport/qtkitaspect.h>
|
||||||
|
|
||||||
@@ -201,10 +202,10 @@ public:
|
|||||||
void executeCommand(const LanguageServerProtocol::Command &command) override;
|
void executeCommand(const LanguageServerProtocol::Command &command) override;
|
||||||
void setCurrentProject(Project *project) override;
|
void setCurrentProject(Project *project) override;
|
||||||
void updateProjectFiles();
|
void updateProjectFiles();
|
||||||
void updateTarget(Target *target);
|
void updateBuildConfiguration(BuildConfiguration *bc);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Target *m_currentTarget = nullptr;
|
BuildConfiguration *m_currentBuildConfiguration = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
void JLSClient::executeCommand(const LanguageServerProtocol::Command &command)
|
void JLSClient::executeCommand(const LanguageServerProtocol::Command &command)
|
||||||
@@ -227,9 +228,10 @@ void JLSClient::setCurrentProject(Project *project)
|
|||||||
{
|
{
|
||||||
Client::setCurrentProject(project);
|
Client::setCurrentProject(project);
|
||||||
QTC_ASSERT(project, return);
|
QTC_ASSERT(project, return);
|
||||||
updateTarget(project->activeTarget());
|
updateBuildConfiguration(project->activeBuildConfiguration());
|
||||||
updateProjectFiles();
|
updateProjectFiles();
|
||||||
connect(project, &Project::activeTargetChanged, this, &JLSClient::updateTarget);
|
connect(project, &Project::activeBuildConfigurationChanged, this,
|
||||||
|
&JLSClient::updateBuildConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void generateProjectFile(const FilePath &projectDir,
|
static void generateProjectFile(const FilePath &projectDir,
|
||||||
@@ -294,14 +296,14 @@ static void generateClassPathFile(const FilePath &projectDir,
|
|||||||
|
|
||||||
void JLSClient::updateProjectFiles()
|
void JLSClient::updateProjectFiles()
|
||||||
{
|
{
|
||||||
if (!m_currentTarget)
|
if (!m_currentBuildConfiguration)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Kit *kit = m_currentTarget->kit();
|
Kit *kit = m_currentBuildConfiguration->kit();
|
||||||
if (RunDeviceTypeKitAspect::deviceTypeId(kit) != Android::Constants::ANDROID_DEVICE_TYPE)
|
if (RunDeviceTypeKitAspect::deviceTypeId(kit) != Android::Constants::ANDROID_DEVICE_TYPE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (ProjectNode *node = project()->findNodeForBuildKey(m_currentTarget->activeBuildKey())) {
|
if (ProjectNode *node = project()->findNodeForBuildKey(m_currentBuildConfiguration->activeBuildKey())) {
|
||||||
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
|
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
|
||||||
if (!version)
|
if (!version)
|
||||||
return;
|
return;
|
||||||
@@ -325,7 +327,7 @@ void JLSClient::updateProjectFiles()
|
|||||||
const QStringList classPaths = node->data(Constants::AndroidClassPaths).toStringList();
|
const QStringList classPaths = node->data(Constants::AndroidClassPaths).toStringList();
|
||||||
|
|
||||||
const FilePath &sdkLocation = AndroidConfig::sdkLocation();
|
const FilePath &sdkLocation = AndroidConfig::sdkLocation();
|
||||||
const QString &targetSDK = buildTargetSDK(m_currentTarget);
|
const QString &targetSDK = buildTargetSDK(m_currentBuildConfiguration);
|
||||||
const FilePath androidJar = sdkLocation / QString("platforms/%2/android.jar")
|
const FilePath androidJar = sdkLocation / QString("platforms/%2/android.jar")
|
||||||
.arg(targetSDK);
|
.arg(targetSDK);
|
||||||
FilePaths libs = {androidJar};
|
FilePaths libs = {androidJar};
|
||||||
@@ -339,15 +341,17 @@ void JLSClient::updateProjectFiles()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JLSClient::updateTarget(Target *target)
|
void JLSClient::updateBuildConfiguration(BuildConfiguration *bc)
|
||||||
{
|
{
|
||||||
if (m_currentTarget)
|
if (m_currentBuildConfiguration)
|
||||||
disconnect(m_currentTarget, &Target::parsingFinished, this, &JLSClient::updateProjectFiles);
|
disconnect(m_currentBuildConfiguration->buildSystem(), &BuildSystem::parsingFinished,
|
||||||
|
this, &JLSClient::updateProjectFiles);
|
||||||
|
|
||||||
m_currentTarget = target;
|
m_currentBuildConfiguration = bc;
|
||||||
|
|
||||||
if (m_currentTarget)
|
if (m_currentBuildConfiguration)
|
||||||
connect(m_currentTarget, &Target::parsingFinished, this, &JLSClient::updateProjectFiles);
|
connect(m_currentBuildConfiguration->buildSystem(), &BuildSystem::parsingFinished,
|
||||||
|
this, &JLSClient::updateProjectFiles);
|
||||||
|
|
||||||
updateProjectFiles();
|
updateProjectFiles();
|
||||||
}
|
}
|
||||||
|
@@ -345,6 +345,7 @@ void Project::setActiveTargetHelper(Target *target)
|
|||||||
(target && contains(d->m_targets, target))) {
|
(target && contains(d->m_targets, target))) {
|
||||||
d->m_activeTarget = target;
|
d->m_activeTarget = target;
|
||||||
emit activeTargetChanged(d->m_activeTarget);
|
emit activeTargetChanged(d->m_activeTarget);
|
||||||
|
emit activeBuildConfigurationChanged(target ? target->activeBuildConfiguration() : nullptr);
|
||||||
if (this == ProjectManager::startupProject()) {
|
if (this == ProjectManager::startupProject()) {
|
||||||
emit ProjectManager::instance()->activeBuildConfigurationChanged(
|
emit ProjectManager::instance()->activeBuildConfigurationChanged(
|
||||||
activeBuildConfiguration());
|
activeBuildConfiguration());
|
||||||
|
@@ -212,6 +212,8 @@ signals:
|
|||||||
void removedTarget(ProjectExplorer::Target *target);
|
void removedTarget(ProjectExplorer::Target *target);
|
||||||
void addedTarget(ProjectExplorer::Target *target);
|
void addedTarget(ProjectExplorer::Target *target);
|
||||||
|
|
||||||
|
void activeBuildConfigurationChanged(BuildConfiguration *bc);
|
||||||
|
|
||||||
void vanishedTargetsChanged();
|
void vanishedTargetsChanged();
|
||||||
|
|
||||||
void settingsLoaded();
|
void settingsLoaded();
|
||||||
|
@@ -305,7 +305,9 @@ void Target::setActiveBuildConfiguration(BuildConfiguration *bc)
|
|||||||
(bc && d->m_buildConfigurations.contains(bc) &&
|
(bc && d->m_buildConfigurations.contains(bc) &&
|
||||||
bc != d->m_activeBuildConfiguration)) {
|
bc != d->m_activeBuildConfiguration)) {
|
||||||
d->m_activeBuildConfiguration = bc;
|
d->m_activeBuildConfiguration = bc;
|
||||||
emit activeBuildConfigurationChanged(d->m_activeBuildConfiguration);
|
emit activeBuildConfigurationChanged(bc);
|
||||||
|
if (this == project()->activeTarget())
|
||||||
|
emit project()->activeBuildConfigurationChanged(bc);
|
||||||
if (bc == activeBuildConfigForActiveProject())
|
if (bc == activeBuildConfigForActiveProject())
|
||||||
emit ProjectManager::instance()->activeBuildConfigurationChanged(bc);
|
emit ProjectManager::instance()->activeBuildConfigurationChanged(bc);
|
||||||
if (bc == activeBuildConfigForCurrentProject())
|
if (bc == activeBuildConfigForCurrentProject())
|
||||||
|
Reference in New Issue
Block a user