浏览代码

Reland "siso.py: check ninja marker"

This reverts commit b1c6497e19ef0efe51a24e28bfcc18189d1b65f1.

Reason for revert: Fix var name

```
ukai@ukai ...src/chromium/src % ~/src/depot_tools/depot_tools/siso ninja -C out/ninja
depot_tools/siso.py: Using Siso binary from SISO_PATH: /usr/local/google/home/ukai/go/bin/siso.
depot_tools/siso.py: out/ninja contains Ninja state file.
Use `autoninja` to use reclient,
or run `gn clean out/ninja` to switch from ninja to siso

ukai@ukai ...src/chromium/src % ~/src/depot_tools/depot_tools/siso ninja -C out/siso base
depot_tools/siso.py: Using Siso binary from SISO_PATH: /usr/local/google/home/ukai/go/bin/siso.
 4.63s init credentials
reapi instance: projects/rbe-chrome-untrusted/instances/default_instance
 1.63s loading fs state
 3.42s load build.ninja
15.32s Regenerating ninja files
 3.64s reloading
build finished
local:3 remote:0 cache:0 fallback:0 skip:3026
reapi: ops: 17(err:1) / r:0(err:0) 0B / w:0(err:0) 0B
fs: ops: 12092(err:192) / r:350(err:0) 189.04MiB / w:1(err:0) 13.96KiB
27.29s Build Succeeded: 3 steps - 0.11/s

```

Original change's description:
> Revert "siso.py: check ninja marker"
>
> This reverts commit 41bbfb8b90d7290acb7ef406dfbea01724fe83e3.
>
> Reason for revert:
> ukai@ukai ...src/chromium/src % siso ninja -C out/siso
> depot_tools/siso.py: Using Siso binary from SISO_PATH: /usr/local/google/home/ukai/go/bin/siso.
> Traceback (most recent call last):
>   File "/usr/local/google/home/ukai/depot_tools/siso.py", line 115, in <module>
>     sys.exit(main(sys.argv))
>              ^^^^^^^^^^^^^^
>   File "/usr/local/google/home/ukai/depot_tools/siso.py", line 104, in main
>     checkOutdir(args[1:])
>   File "/usr/local/google/home/ukai/depot_tools/siso.py", line 21, in checkOutdir
>     for i, arg in enumerate(ninja_args):
>                             ^^^^^^^^^^
> NameError: name 'ninja_args' is not defined. Did you mean: 'ninja_marker'?
>
>
> Original change's description:
> > siso.py: check ninja marker
> >
> > If out dir was built by Ninja, don't build by Siso.
> >
> > (still allow `siso query` etc)
> >
> > Bug: b/338414465
> > Change-Id: I48f8fbb5e83714fd3d27ff3a2bfffe929e4ef121
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5518396
> > Reviewed-by: Junji Watanabe <jwata@google.com>
> > Commit-Queue: Junji Watanabe <jwata@google.com>
> > Auto-Submit: Fumitoshi Ukai <ukai@google.com>
> > Commit-Queue: Fumitoshi Ukai <ukai@google.com>
>
> Bug: b/338414465
> Change-Id: Ie69ca1b6c1d3dc47475d9356beab29a917356479
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5514902
> Reviewed-by: Philipp Wollermann <philwo@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Fumitoshi Ukai <ukai@google.com>

Bug: b/338414465
Change-Id: Idb18ad9191a062f83b538c1e2a76ee77200c4df0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5518397
Reviewed-by: Philipp Wollermann <philwo@chromium.org>
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Fumitoshi Ukai 1 年之前
父节点
当前提交
c9fb389f4b
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      siso.py

+ 24 - 0
siso.py

@@ -15,6 +15,29 @@ import sys
 import gclient_paths
 
 
+def checkOutdir(args):
+    subcmd = ''
+    out_dir = "."
+    for i, arg in enumerate(args):
+        if not arg.startswith("-") and not subcmd:
+            subcmd = arg
+            continue
+        if arg == "-C":
+            out_dir = args[i + 1]
+        elif arg.startswith("-C"):
+            out_dir = arg[2:]
+    if subcmd != "ninja":
+        return
+    ninja_marker = os.path.join(out_dir, ".ninja_deps")
+    if os.path.exists(ninja_marker):
+        print("depot_tools/siso.py: %s contains Ninja state file.\n"
+              "Use `autoninja` to use reclient,\n"
+              "or run `gn clean %s` to switch from ninja to siso\n" %
+              (out_dir, out_dir),
+              file=sys.stderr)
+        sys.exit(1)
+
+
 def main(args):
     # Propagate signals to siso process so that it can run cleanup steps.
     # Siso will be terminated immediately after the second Ctrl-C.
@@ -78,6 +101,7 @@ def main(args):
             base_path, 'third_party', 'siso',
             'siso' + gclient_paths.GetExeSuffix())
         if os.path.isfile(siso_path):
+            checkOutdir(args[1:])
             return subprocess.call([siso_path] + args[1:], env=env)
 
     print(