Reland "ninja.py check siso_marker"

This reverts ninja.py in commit 6ed0d7b86c

Allow `-t list`, `-t commands` and `-t inputs` even in siso out dir.

Bug: b/338414465, b/339320220
Change-Id: Ia8cdaf53680207625b485e6e326fbe4db8297b96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5524253
Reviewed-by: Junji Watanabe <jwata@google.com>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
changes/53/5524253/4
Fumitoshi Ukai 1 year ago committed by LUCI CQ
parent 08d5eb6d68
commit df437783c2

@ -30,10 +30,37 @@ def findNinjaInPath():
return ninja_path
def checkOutdir(ninja_args):
out_dir = "."
tool = ""
for i, arg in enumerate(ninja_args):
if arg == "-t":
tool = ninja_args[i + 1]
elif arg.startswith("-t"):
tool = arg[2:]
elif arg == "-C":
out_dir = ninja_args[i + 1]
elif arg.startswith("-C"):
out_dir = arg[2:]
if tool in ["list", "commands", "inputs"]:
# These tools are just inspect ninja rules and not modify out dir.
# TODO: b/339320220 - implement these in siso
return
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 +111,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