ninja.py: check siso_marker

If out dir was built by siso, don't build by ninja

Bug: b/338414465
Change-Id: I121beaa6c17409cc7a4b4535e158ed89c47cac89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5514899
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
changes/99/5514899/3
Fumitoshi Ukai 2 years ago committed by LUCI CQ
parent 4d9ad255f1
commit 6247b7d939

@ -30,10 +30,28 @@ def findNinjaInPath():
return ninja_path
def checkOutdir(ninja_args):
out_dir = "."
for i, arg in enumerate(ninja_args):
if arg == "-C":
out_dir = ninja_args[i + 1]
elif arg.startswith("-C"):
out_dir = arg[2:]
siso_marker = os.path.join(out_dir, ".siso_deps")
if os.path.exists(siso_marker):
print("depot_tools/ninja.py: %s contains Siso state file.\n"
"Use `autoninja` to choose appropriate build tool,\n"
"or run `gn clean %s` to switch from siso to ninja\n" %
(out_dir, out_dir),
file=sys.stderr)
sys.exit(1)
def fallback(ninja_args):
# Try to find ninja in PATH.
ninja_path = findNinjaInPath()
if ninja_path:
checkOutdir(ninja_args)
return subprocess.call([ninja_path] + ninja_args)
print(
@ -84,6 +102,7 @@ def main(args):
"ninja" + gclient_paths.GetExeSuffix(),
)
if os.path.isfile(ninja_path):
checkOutdir(args[1:])
return subprocess.call([ninja_path] + args[1:])
return fallback(args[1:])

Loading…
Cancel
Save