aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qbsprojectmanager
diff options
context:
space:
mode:
authorAaron McCarthy <mccarthy.aaron@gmail.com>2023-07-21 22:45:06 +1000
committerAaron McCarthy <mccarthy.aaron@gmail.com>2023-10-17 08:30:02 +0000
commit5977c26f2e464e073f5f182785aec4176c03eaa9 (patch)
tree83eea28d33b96c09eba096e5c284ded74017e724 /src/plugins/qbsprojectmanager
parentdf7619de8dda2cf827f1ebe584572723b4417692 (diff)
QbsProjectManager: Provide classpath data to Java language server
Change-Id: Idf09ae566139a752184defe26fee082af8be31aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qbsprojectmanager')
-rw-r--r--src/plugins/qbsprojectmanager/qbsnodes.cpp16
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h1
-rw-r--r--src/plugins/qbsprojectmanager/qbssession.cpp1
3 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp
index 460be9f7d8e..2d034108811 100644
--- a/src/plugins/qbsprojectmanager/qbsnodes.cpp
+++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp
@@ -219,6 +219,22 @@ QVariant QbsProductNode::data(Id role) const
qbsAbis << archToAbi[architecture];
return qbsAbis;
}
+
+ if (role == Android::Constants::AndroidPackageSourceDir) {
+ return m_productData.value("properties").toObject()
+ .value("sourceDirectory").toString();
+ }
+
+ if (role == Android::Constants::AndroidClassPaths) {
+ QStringList paths;
+ for (const auto &p : m_productData.value("module-properties").toObject()
+ .value(Constants::JAVA_ADDITIONAL_CLASSPATHS).toArray()) {
+ if (p.isString())
+ paths << p.toString();
+ }
+ return paths;
+ }
+
return {};
}
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
index 8b35e0f0880..7334cea7381 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
@@ -68,6 +68,7 @@ const char CPP_PLATFORMLINKERFLAGS[] = "cpp.platformLinkerFlags";
const char CPP_VCVARSALLPATH[] = "cpp.vcvarsallPath";
const char XCODE_DEVELOPERPATH[] = "xcode.developerPath";
const char XCODE_SDK[] = "xcode.sdk";
+const char JAVA_ADDITIONAL_CLASSPATHS[] = "java.additionalClassPaths";
// Settings page
const char QBS_SETTINGS_CATEGORY[] = "K.Qbs";
diff --git a/src/plugins/qbsprojectmanager/qbssession.cpp b/src/plugins/qbsprojectmanager/qbssession.cpp
index 49d8b31b56f..999e83d2d79 100644
--- a/src/plugins/qbsprojectmanager/qbssession.cpp
+++ b/src/plugins/qbsprojectmanager/qbssession.cpp
@@ -372,6 +372,7 @@ void QbsSession::insertRequestedModuleProperties(QJsonObject &request)
"cpp.useObjcPrecompiledHeader",
"cpp.useObjcxxPrecompiledHeader",
"cpp.warningLevel",
+ "java.additionalClassPaths",
"qbs.architecture",
"qbs.architectures",
"qbs.sysroot",