summaryrefslogtreecommitdiff
path: root/share/qbs/modules/java/utils.js
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2015-05-05 23:50:44 -0700
committerJake Petroules <jake.petroules@petroules.com>2015-05-08 01:49:26 +0000
commit86325123df6c8b3d69e1134276b1cacf13a33fb8 (patch)
treedb7fc7c65ee45a9f78e2b7918810e35707e2d4c8 /share/qbs/modules/java/utils.js
parent3dac2a96bd8f8814cf8a9e71319030449af0c242 (diff)
downloadqbs-86325123df6c8b3d69e1134276b1cacf13a33fb8.tar.gz
Refactor javac arguments into the JS file to prepare for fixes.
Change-Id: Ibfd1740fe2a28da0f6b21132038df96819660109 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'share/qbs/modules/java/utils.js')
-rw-r--r--share/qbs/modules/java/utils.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/share/qbs/modules/java/utils.js b/share/qbs/modules/java/utils.js
index fc8f1392c..133769b36 100644
--- a/share/qbs/modules/java/utils.js
+++ b/share/qbs/modules/java/utils.js
@@ -41,3 +41,40 @@ function extractPackageName(filePath)
return "";
return packageName;
}
+
+function javacArguments(product, inputs) {
+ var i;
+ var outputDir = ModUtils.moduleProperty(product, "classFilesDir");
+ var classPaths = [outputDir];
+ var additionalClassPaths = ModUtils.moduleProperties(product, "additionalClassPaths");
+ if (additionalClassPaths)
+ classPaths = classPaths.concat(additionalClassPaths);
+ for (i in inputs["java.jar"])
+ classPaths.push(inputs["java.jar"][i].filePath);
+ var debugArg = product.moduleProperty("qbs", "buildVariant") === "debug"
+ ? "-g" : "-g:none";
+ var args = [
+ "-classpath", classPaths.join(product.moduleProperty("qbs", "pathListSeparator")),
+ "-s", product.buildDirectory,
+ debugArg, "-d", outputDir
+ ];
+ var runtimeVersion = ModUtils.moduleProperty(product, "runtimeVersion");
+ if (runtimeVersion)
+ args.push("-target", runtimeVersion);
+ var languageVersion = ModUtils.moduleProperty(product, "languageVersion");
+ if (languageVersion)
+ args.push("-source", languageVersion);
+ var bootClassPaths = ModUtils.moduleProperties(product, "bootClassPaths");
+ if (bootClassPaths && bootClassPaths.length > 0)
+ args.push("-bootclasspath", bootClassPaths.join(';'));
+ if (!ModUtils.moduleProperty(product, "enableWarnings"))
+ args.push("-nowarn");
+ if (ModUtils.moduleProperty(product, "warningsAsErrors"))
+ args.push("-Werror");
+ var otherFlags = ModUtils.moduleProperty(product, "additionalCompilerFlags")
+ if (otherFlags)
+ args = args.concat(otherFlags);
+ for (i = 0; i < inputs["java.java"].length; ++i)
+ args.push(inputs["java.java"][i].filePath);
+ return args;
+}