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

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

Issue 2160353003: Implement multi-phase build support in MB. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 5 months 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
« no previous file with comments | « no previous file | tools/mb/docs/user_guide.md » ('j') | tools/mb/mb_unittest.py » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 28 matching lines...) Expand all
39 ### Configurations 39 ### Configurations
40 40
41 `mb` will first look for a bot config file in a set of different locations 41 `mb` will first look for a bot config file in a set of different locations
42 (initially just in //ios/build/bots). Bot config files are JSON files that 42 (initially just in //ios/build/bots). Bot config files are JSON files that
43 contain keys for 'GYP_DEFINES' (a list of strings that will be joined together 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), 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 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 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. 47 require the full list of settings to be given explicitly.
48 48
49 If no mathcing bot config file is found, `mb` looks in the 49 If no matching 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 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 51 for a particular build directory, and what set of flags (`GYP_DEFINES` or `gn
52 args`) to use. 52 args`) to use.
53 53
54 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
55 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
56 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).
57 57
58 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.
59 59
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 417
418 * MB is not intended at this time to be something developers use frequently, 418 * MB is not intended at this time to be something developers use frequently,
419 or to add a lot of features to. We hope to be able to get rid of it once 419 or to add a lot of features to. We hope to be able to get rid of it once
420 the GYP->GN migration is done, and so we should not add things for 420 the GYP->GN migration is done, and so we should not add things for
421 developers that can't easily be added to GN itself. 421 developers that can't easily be added to GN itself.
422 422
423 * MB is not intended to replace the 423 * MB is not intended to replace the
424 [CR tool](https://code.google.com/p/chromium/wiki/CRUserManual). Not 424 [CR tool](https://code.google.com/p/chromium/wiki/CRUserManual). Not
425 only is it only intended to replace the gyp\_chromium part of `'gclient 425 only is it only intended to replace the gyp\_chromium part of `'gclient
426 runhooks'`, it is not really meant as a developer-facing tool. 426 runhooks'`, it is not really meant as a developer-facing tool.
427
428 ### Open issues
429
430 * Some common flags (goma\_dir being the obvious one) may need to be
431 specified via the user, and it's unclear how to integrate this with
432 the concept of build\_configs.
433
434 Right now, MB has hard-coded support for a few flags (i.e., you can
435 pass the --goma-dir flag, and it will know to expand "${goma\_dir}" in
436 the string before calling out to the tool. We may want to generalize
437 this to a common key/value approach (perhaps then meeting the
438 ChromeOS non-goal, above), or we may want to keep this very strictly
439 limited for simplicity.
OLDNEW
« no previous file with comments | « no previous file | tools/mb/docs/user_guide.md » ('j') | tools/mb/mb_unittest.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698