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