0
Files
src/tools/mb
andrewxu 2b1413f9b4 Add a directory to the directory list that needs clean-up
This CL adds lacros_clang_x64/resources/accessibility/ to the list of
files that need clean-up and are skipped during isolation.

Without this CL, I got the error like the following when running
the Swarming script:

//out/debug//lacros_clang_x64/resources/accessibility/
error: gn `data` items may not list generated directories; list
files in directory instead for:
//out/debug//lacros_clang_x64/resources/accessibility/
Traceback (most recent call last):
  File ".../chromium/src/tools/run-swarmed.py", line 388, in <module>
    sys.exit(main())
             ^^^^^^
  File ".../chromium/src/tools/run-swarmed.py", line 322, in main
    subprocess.check_call(mb_cmd, shell=os.name == 'nt')
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', 'tools/mb/mb.py', 'isolate', '--no-build', '//out/debug/', 'browser_tests']' returned non-zero exit status 1.

Bug: b/40098182
Change-Id: Iaca76a75029b84b2da58cff7323fccc0ecbcd04f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5269468
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Andrew Xu <andrewxu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1257186}
2024-02-07 04:31:09 +00:00
..

MB - The Meta-Build wrapper

MB is a simple wrapper around the GN build tool.

It was originally written as part of the GYP->GN migration, in order to provide a uniform interface to either GYP or GN, such that users and bots can call one script and not need to worry about whether a given bot was meant to use GN or GYP.

It eventually grew additional functionality and is now still used even though everything is GN-only.

It supports two main functions:

  1. "gen" - the main gn gen invocation that generates the Ninja files needed for the build.

  2. "analyze" - the step that takes a list of modified files and a list of desired targets and reports which targets will need to be rebuilt.

We also use MB as a forcing function to collect all of the different build configurations that we actually support for Chromium builds into one place, in //tools/mb/mb_config.pyl.

For more information, see: