aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/java/JavaModule.qbs
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2015-05-09 00:49:08 -0700
committerJake Petroules <jake.petroules@petroules.com>2015-05-28 15:46:43 +0000
commitc9d511989698159acff1432186bafd82bdb6bacc (patch)
tree6fbe8ca0145509295a2013399e4ae6302d2fecb1 /share/qbs/modules/java/JavaModule.qbs
parent2a13a5ec3843ef06a1a41f7220d50b7b63883abb (diff)
Add support for tracking class, h files produced by Java inner classes.
This also resolves the "perfect parsing" issue and so determining output file paths for Java class files won't be fooled by comments, etc. Feel free to use NULLs, unpaired surrogates, emoji, etc! Task-number: QBS-228 Change-Id: I3576a9a8e51a717ab8159db35f1a01e3ad91df88 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'share/qbs/modules/java/JavaModule.qbs')
-rw-r--r--share/qbs/modules/java/JavaModule.qbs16
1 files changed, 2 insertions, 14 deletions
diff --git a/share/qbs/modules/java/JavaModule.qbs b/share/qbs/modules/java/JavaModule.qbs
index b41fbe4d9..c1b1b18af 100644
--- a/share/qbs/modules/java/JavaModule.qbs
+++ b/share/qbs/modules/java/JavaModule.qbs
@@ -111,21 +111,9 @@ Module {
multiplex: true
inputs: ["java.java"]
inputsFromDependencies: ["java.jar"]
- outputFileTags: ["java.class"] // Annotations can produce additional java source files. Ignored for now.
+ outputFileTags: ["java.class", "hpp"] // Annotations can produce additional java source files. Ignored for now.
outputArtifacts: {
- // Note: We'd have to duplicate some javac functionality to catch all outputs
- // (e.g. private classes), so ignore these for now.
- var oFilePaths = [];
- // Extract package name to find out where the class name will be
- for (var i = 0; i < inputs["java.java"].length; ++i) {
- var inp = inputs["java.java"][i];
- var packageName = JavaUtils.extractPackageName(inp.filePath);
- var oFileName = inp.completeBaseName + ".class";
- var oFilePath = FileInfo.joinPaths(ModUtils.moduleProperty(product, "classFilesDir"),
- packageName.split('.').join('/'), oFileName);
- oFilePaths.push({ filePath: oFilePath, fileTags: ["java.class"] });
- }
- return oFilePaths;
+ return JavaUtils.outputArtifacts(product, inputs);
}
prepare: {
var cmd = new Command(ModUtils.moduleProperty(product, "compilerFilePath"),