summaryrefslogtreecommitdiffstats
path: root/build/moz.configure/java.configure
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--build/moz.configure/java.configure76
1 files changed, 76 insertions, 0 deletions
diff --git a/build/moz.configure/java.configure b/build/moz.configure/java.configure
new file mode 100644
index 0000000000..0bb0a22c71
--- /dev/null
+++ b/build/moz.configure/java.configure
@@ -0,0 +1,76 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# Java detection
+# ========================================================
+option(
+ "--with-java-bin-path",
+ nargs=1,
+ help="Location of Java binaries",
+)
+
+
+@depends("--with-java-bin-path", host, toolchains_base_dir)
+@imports(_from="mozboot.android", _import="JavaLocationFailedException")
+@imports(_from="mozboot.android", _import="locate_java_bin_path")
+@imports(_from="os", _import="environ")
+@imports(_from="os.path", _import="dirname")
+def java_search_paths(path, host, toolchains_base_dir):
+ if path:
+ # Look for javac and jar in the specified path.
+ return path
+
+ try:
+ path = locate_java_bin_path(host.kernel, toolchains_base_dir)
+
+ java_home = environ.get("JAVA_HOME")
+ if java_home and java_home != dirname(path):
+ log.info(
+ "Ignoring JAVA_HOME value. Use --with-java-bin-path "
+ "to override the default Java location."
+ )
+ return [path]
+ except JavaLocationFailedException as e:
+ die(str(e))
+
+
+# Finds the given java tool, failing with a custom error message if we can't
+# find it.
+
+
+@template
+def check_java_tool(tool):
+ check = check_prog(
+ tool.upper(), (tool,), paths=java_search_paths, allow_missing=True
+ )
+
+ @depends(check)
+ def require_tool(result):
+ if result is None:
+ die(
+ "The program %s was not found. Use '--with-java-bin-path={java-bin-dir}'"
+ % tool
+ )
+ return result
+
+ return require_tool
+
+
+check_java_tool("java")
+
+
+# Java Code Coverage
+# ========================================================
+option(
+ "--enable-java-coverage",
+ env="MOZ_JAVA_CODE_COVERAGE",
+ help="Enable Java code coverage",
+)
+
+set_config(
+ "MOZ_JAVA_CODE_COVERAGE", depends("--enable-java-coverage")(lambda v: bool(v))
+)