Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(764)

Side by Side Diff: tools/mb/docs/design_spec.md

Issue 1411183010: Make MB aware of iOS bot configs and get iOS working. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rework to read GYP_DEFINES/gn_args from bot configs in MB Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # The MB (Meta-Build wrapper) design spec 1 # The MB (Meta-Build wrapper) design spec
2 2
3 [TOC] 3 [TOC]
4 4
5 ## Intro 5 ## Intro
6 6
7 MB is intended to address two major aspects of the GYP -> GN transition 7 MB is intended to address two major aspects of the GYP -> GN transition
8 for Chromium: 8 for Chromium:
9 9
10 1. "bot toggling" - make it so that we can easily flip a given bot 10 1. "bot toggling" - make it so that we can easily flip a given bot
(...skipping 20 matching lines...) Expand all
31 31
32 ### Command line 32 ### Command line
33 33
34 It is structured as a single binary that supports a list of subcommands: 34 It is structured as a single binary that supports a list of subcommands:
35 35
36 * `mb gen -c linux_rel_bot //out/Release` 36 * `mb gen -c linux_rel_bot //out/Release`
37 * `mb analyze -m tryserver.chromium.linux -b linux_rel /tmp/input.json /tmp/outp ut.json` 37 * `mb analyze -m tryserver.chromium.linux -b linux_rel /tmp/input.json /tmp/outp ut.json`
38 38
39 ### Configurations 39 ### Configurations
40 40
41 `mb` looks in the `//tools/mb/mb_config.pyl` config file to determine whether 41 `mb` will first look for a bot config file in a set of different locations
42 to use GYP or GN for a particular build directory, and what set of flags 42 (initially just in //ios/build/bots). Bot config files are JSON files that
43 (`GYP_DEFINES` or `gn args`) to use. 43 contain keys for 'GYP_DEFINES' (a list of strings that will be joined together
44 with spaces and passed to GYP, or a dict that will be similarly converted),
45 'gn_args' (a list of strings that will be joined together), and an
46 'mb_type' field that says whether to use GN or GYP. Bot config files
47 require the full list of settings to be given explicitly.
48
49 If no mathcing bot config file is found, `mb` looks in the
50 `//tools/mb/mb_config.pyl` config file to determine whether to use GYP or GN
51 for a particular build directory, and what set of flags (`GYP_DEFINES` or `gn
52 args`) to use.
44 53
45 A config can either be specified directly (useful for testing) or by specifying 54 A config can either be specified directly (useful for testing) or by specifying
46 the master name and builder name (useful on the bots so that they do not need 55 the master name and builder name (useful on the bots so that they do not need
47 to specify a config directly and can be hidden from the details). 56 to specify a config directly and can be hidden from the details).
48 57
49 See the [user guide](user_guide.md#mb_config.pyl) for details. 58 See the [user guide](user_guide.md#mb_config.pyl) for details.
50 59
51 ### Handling the analyze step 60 ### Handling the analyze step
52 61
53 The interface to `mb analyze` is described in the 62 The interface to `mb analyze` is described in the
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 * Some common flags (goma\_dir being the obvious one) may need to be 430 * Some common flags (goma\_dir being the obvious one) may need to be
422 specified via the user, and it's unclear how to integrate this with 431 specified via the user, and it's unclear how to integrate this with
423 the concept of build\_configs. 432 the concept of build\_configs.
424 433
425 Right now, MB has hard-coded support for a few flags (i.e., you can 434 Right now, MB has hard-coded support for a few flags (i.e., you can
426 pass the --goma-dir flag, and it will know to expand "${goma\_dir}" in 435 pass the --goma-dir flag, and it will know to expand "${goma\_dir}" in
427 the string before calling out to the tool. We may want to generalize 436 the string before calling out to the tool. We may want to generalize
428 this to a common key/value approach (perhaps then meeting the 437 this to a common key/value approach (perhaps then meeting the
429 ChromeOS non-goal, above), or we may want to keep this very strictly 438 ChromeOS non-goal, above), or we may want to keep this very strictly
430 limited for simplicity. 439 limited for simplicity.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698