mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-27 06:43:32 +00:00
79940ac0dd
We already use the adoptopenjdk on some platforms, this allows us to have a more predictable Java binary on all platforms. Differential Revision: https://phabricator.services.mozilla.com/D130878
77 lines
2.1 KiB
Python
77 lines
2.1 KiB
Python
# -*- 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))
|
|
)
|