diff options
author | Christian Kandeler <[email protected]> | 2025-03-07 12:09:21 +0100 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2025-03-11 14:52:34 +0000 |
commit | 35e6763b6eea131e0800b40c84c9c9dd86dde2e3 (patch) | |
tree | 19242823634f7297499acf032af25aff063893c4 /src/plugins | |
parent | d408ad2e4fbbebe5e1c6208d029f2663217c2e20 (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.cpp | 4 | ||||
-rw-r--r-- | src/plugins/android/androidutils.h | 2 | ||||
-rw-r--r-- | src/plugins/android/javalanguageserver.cpp | 34 | ||||
-rw-r--r-- | src/plugins/projectexplorer/project.cpp | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/project.h | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/target.cpp | 4 |
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()) |