forked from mirrors/gecko-dev
Bug 1686646 - Look for more tools in MOZ_FETCHES_DIR. r=firefox-build-system-reviewers,dmajor
This will allow to find them on automation without setting anything in mozconfigs. Differential Revision: https://phabricator.services.mozilla.com/D101720
This commit is contained in:
parent
758c53a631
commit
4ed35480e2
5 changed files with 34 additions and 21 deletions
|
|
@ -5,11 +5,12 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
||||
@depends(mozbuild_state_path, "--help")
|
||||
@depends(toolchains_base_dir, "--help")
|
||||
@imports(_from="os.path", _import="isdir")
|
||||
@imports(_from="mozboot.android", _import="NDK_VERSION")
|
||||
def default_android_ndk_root(mozbuild_state_path, _):
|
||||
path = os.path.join(mozbuild_state_path, "android-ndk-%s" % NDK_VERSION)
|
||||
def default_android_ndk_root(toolchains_base_dir, _):
|
||||
for ndk in ("android-ndk-%s" % NDK_VERSION, "android-ndk"):
|
||||
path = os.path.join(toolchains_base_dir, ndk)
|
||||
if isdir(path):
|
||||
return path
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
# Ensure Android SDK and build-tools versions depending on mobile target.
|
||||
|
||||
|
||||
@depends(host, mozbuild_state_path, "--help")
|
||||
@depends(host, toolchains_base_dir, "--help")
|
||||
@imports(_from="os.path", _import="isdir")
|
||||
def default_android_sdk_root(host, mozbuild_state_path, _):
|
||||
def default_android_sdk_root(host, toolchains_base_dir, _):
|
||||
sdk_basename = {
|
||||
"Darwin": "android-sdk-macosx",
|
||||
"Linux": "android-sdk-linux",
|
||||
"WINNT": "android-sdk-windows",
|
||||
}.get(host.kernel)
|
||||
if sdk_basename:
|
||||
path = os.path.join(mozbuild_state_path, sdk_basename)
|
||||
}.get(host.kernel, "android-sdk")
|
||||
for sdk_basename in (sdk_basename, "android-sdk"):
|
||||
path = os.path.join(toolchains_base_dir, sdk_basename)
|
||||
if isdir(path):
|
||||
return path
|
||||
|
||||
|
|
|
|||
|
|
@ -657,11 +657,11 @@ def vc_toolchain_search_path(vc_compiler_path, original_path):
|
|||
clang_search_path = bootstrap_search_path("clang", "bin")
|
||||
|
||||
|
||||
@depends(original_path)
|
||||
@depends(bootstrap_search_path("rustc", "bin", when="MOZ_AUTOMATION"), original_path)
|
||||
@imports("os")
|
||||
@imports(_from="os", _import="environ")
|
||||
def rust_search_path(original_path):
|
||||
result = list(original_path)
|
||||
def rust_search_path(rust_path, original_path):
|
||||
result = list(rust_path or original_path)
|
||||
# Also add the rustup install directory for cargo/rustc.
|
||||
cargo_home = environ.get("CARGO_HOME", "")
|
||||
if cargo_home:
|
||||
|
|
|
|||
|
|
@ -240,8 +240,12 @@ def original_path():
|
|||
|
||||
|
||||
@template
|
||||
def bootstrap_search_path(*path_parts):
|
||||
@depends(bootstrap_search_path_order, original_path, toolchains_base_dir)
|
||||
def bootstrap_search_path(*path_parts, **kwargs):
|
||||
when = kwargs.pop("when", None)
|
||||
if kwargs:
|
||||
configure_error("bootstrap_search_path only takes `when` as keyword argument")
|
||||
|
||||
@depends(bootstrap_search_path_order, original_path, toolchains_base_dir, when=when)
|
||||
def bootstrap_search_path(order, original_path, toolchains_base_dir):
|
||||
path = [os.path.join(toolchains_base_dir, *path_parts)]
|
||||
if order == "prepend":
|
||||
|
|
@ -251,13 +255,17 @@ def bootstrap_search_path(*path_parts):
|
|||
return bootstrap_search_path
|
||||
|
||||
|
||||
@depends(target, host)
|
||||
def want_wine(target, host):
|
||||
return target.kernel == "WINNT" and host.kernel != "WINNT"
|
||||
|
||||
|
||||
wine = check_prog(
|
||||
"WINE",
|
||||
["wine64", "wine"],
|
||||
allow_missing=True,
|
||||
when=depends(target, host)(
|
||||
lambda t, h: t.kernel == "WINNT" and h.kernel != "WINNT"
|
||||
),
|
||||
when=want_wine,
|
||||
paths=bootstrap_search_path("wine", "bin", when=want_wine),
|
||||
)
|
||||
check_prog("WGET", ("wget",), allow_missing=True)
|
||||
|
||||
|
|
|
|||
|
|
@ -2076,12 +2076,12 @@ with only_when(requires_wasm_sandboxing & compile_environment):
|
|||
help="Path to wasi sysroot for wasm sandboxing",
|
||||
)
|
||||
|
||||
@depends("--with-wasi-sysroot", mozbuild_state_path)
|
||||
@depends("--with-wasi-sysroot", toolchains_base_dir)
|
||||
@imports("os")
|
||||
def wasi_sysroot(wasi_sysroot, mozbuild_state_path):
|
||||
def wasi_sysroot(wasi_sysroot, toolchains_base_dir):
|
||||
if not wasi_sysroot:
|
||||
sysroot = os.path.join(
|
||||
mozbuild_state_path, "wasi-sysroot", "share", "wasi-sysroot"
|
||||
toolchains_base_dir, "wasi-sysroot", "share", "wasi-sysroot"
|
||||
)
|
||||
if os.path.isdir(sysroot):
|
||||
return sysroot
|
||||
|
|
@ -2326,6 +2326,7 @@ check_prog(
|
|||
"PDBSTR",
|
||||
["pdbstr.exe"],
|
||||
allow_missing=True,
|
||||
paths=bootstrap_search_path("pdbstr", when=compile_environment & target_is_windows),
|
||||
when=compile_environment & target_is_windows,
|
||||
)
|
||||
|
||||
|
|
@ -2341,6 +2342,9 @@ def allow_missing_winchecksec(automation, c_compiler):
|
|||
check_prog(
|
||||
"WINCHECKSEC",
|
||||
["winchecksec.exe", "winchecksec"],
|
||||
paths=bootstrap_search_path(
|
||||
"winchecksec", when=compile_environment & target_is_windows
|
||||
),
|
||||
allow_missing=allow_missing_winchecksec,
|
||||
when=compile_environment & target_is_windows,
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue