OLD | NEW |
---|---|
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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
180 graph at all). We can't tell these two apart, so we should ignore missing | 180 graph at all). We can't tell these two apart, so we should ignore missing |
181 files. | 181 files. |
182 | 182 |
183 There may be targets listed in the input that don't exist in the build | 183 There may be targets listed in the input that don't exist in the build |
184 graph; unlike missing files, this can only indicate a configuration error, | 184 graph; unlike missing files, this can only indicate a configuration error, |
185 and so we should return which targets are missing so the caller can | 185 and so we should return which targets are missing so the caller can |
186 treat this as an error, if so desired. | 186 treat this as an error, if so desired. |
187 | 187 |
188 Any of the three inputs may be an empty list: | 188 Any of the three inputs may be an empty list: |
189 | 189 |
190 * It doesn't make sense to call analyze at all if no files were modified, | 190 * It normally doesn't make sense to call analyze at all if no files |
191 so this should probably return an error. | 191 were modified, but in rare cases we can hit a race where we try to |
192 test a patch after it has already been committed, in which case | |
193 the list of modified files is empty. We should return 'no dependency' | |
194 in that case. | |
Dirk Pranke
2015/11/13 02:14:28
sky@, you might want to double-check that GYP hand
sky
2015/11/13 16:26:49
GYP ends up generating an error in this case. I do
| |
192 | 195 |
193 * Passing an empty list for one or the other of test_targets and | 196 * Passing an empty list for one or the other of test_targets and |
194 additional_compile_targets is perfectly sensible: in the former case, | 197 additional_compile_targets is perfectly sensible: in the former case, |
195 it can indicate that you don't want to run any tests, and in the latter, | 198 it can indicate that you don't want to run any tests, and in the latter, |
196 it can indicate that you don't want to do build anything else in | 199 it can indicate that you don't want to do build anything else in |
197 addition to the test targets. | 200 addition to the test targets. |
198 | 201 |
199 * It doesn't make sense to call analyze if you don't want to compile | 202 * It doesn't make sense to call analyze if you don't want to compile |
200 anything at all, so passing [] for both test_targets and | 203 anything at all, so passing [] for both test_targets and |
201 additional_compile_targets should probably return an error. | 204 additional_compile_targets should probably return an error. |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
418 * Some common flags (goma\_dir being the obvious one) may need to be | 421 * Some common flags (goma\_dir being the obvious one) may need to be |
419 specified via the user, and it's unclear how to integrate this with | 422 specified via the user, and it's unclear how to integrate this with |
420 the concept of build\_configs. | 423 the concept of build\_configs. |
421 | 424 |
422 Right now, MB has hard-coded support for a few flags (i.e., you can | 425 Right now, MB has hard-coded support for a few flags (i.e., you can |
423 pass the --goma-dir flag, and it will know to expand "${goma\_dir}" in | 426 pass the --goma-dir flag, and it will know to expand "${goma\_dir}" in |
424 the string before calling out to the tool. We may want to generalize | 427 the string before calling out to the tool. We may want to generalize |
425 this to a common key/value approach (perhaps then meeting the | 428 this to a common key/value approach (perhaps then meeting the |
426 ChromeOS non-goal, above), or we may want to keep this very strictly | 429 ChromeOS non-goal, above), or we may want to keep this very strictly |
427 limited for simplicity. | 430 limited for simplicity. |
OLD | NEW |