# -*- 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)) )