aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2025-03-07 12:09:21 +0100
committerChristian Kandeler <[email protected]>2025-03-11 14:52:34 +0000
commit35e6763b6eea131e0800b40c84c9c9dd86dde2e3 (patch)
tree19242823634f7297499acf032af25aff063893c4 /src/plugins
parentd408ad2e4fbbebe5e1c6208d029f2663217c2e20 (diff)
Android: Use BuildConfiguration instead of Target
... in JLSClient. Change-Id: I9c8fc0c3b381021c12c9e35afe38574c429c6fee Reviewed-by: David Schulz <[email protected]> Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/android/androidutils.cpp4
-rw-r--r--src/plugins/android/androidutils.h2
-rw-r--r--src/plugins/android/javalanguageserver.cpp34
-rw-r--r--src/plugins/projectexplorer/project.cpp1
-rw-r--r--src/plugins/projectexplorer/project.h2
-rw-r--r--src/plugins/projectexplorer/target.cpp4
6 files changed, 28 insertions, 19 deletions
diff --git a/src/plugins/android/androidutils.cpp b/src/plugins/android/androidutils.cpp
index 572ad5921b9..0156ee818ab 100644
--- a/src/plugins/android/androidutils.cpp
+++ b/src/plugins/android/androidutils.cpp
@@ -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();
}
diff --git a/src/plugins/android/androidutils.h b/src/plugins/android/androidutils.h
index 59e673b4320..a640589db02 100644
--- a/src/plugins/android/androidutils.h
+++ b/src/plugins/android/androidutils.h
@@ -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);
diff --git a/src/plugins/android/javalanguageserver.cpp b/src/plugins/android/javalanguageserver.cpp
index 7fae9986d43..6c4876438ac 100644
--- a/src/plugins/android/javalanguageserver.cpp
+++ b/src/plugins/android/javalanguageserver.cpp
@@ -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();
}
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index 3bc2ac7bb56..e88ed8a345e 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -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());
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index baf1e6409ac..46f6b4c1732 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -212,6 +212,8 @@ signals:
void removedTarget(ProjectExplorer::Target *target);
void addedTarget(ProjectExplorer::Target *target);
+ void activeBuildConfigurationChanged(BuildConfiguration *bc);
+
void vanishedTargetsChanged();
void settingsLoaded();
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index 0aa9cbb4445..051694dfe85 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -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())