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

Side by Side Diff: tools-webrtc/mb/mb.py

Issue 2585743002: Move tools/mb -> tools-webrtc/mb (Closed)
Patch Set: Fixed presubmits and tests Created 4 years 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 | « tools-webrtc/mb/mb.bat ('k') | tools-webrtc/mb/mb_config.pyl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 # Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 # 3 #
4 # Use of this source code is governed by a BSD-style license 4 # Use of this source code is governed by a BSD-style license
5 # that can be found in the LICENSE file in the root of the source 5 # that can be found in the LICENSE file in the root of the source
6 # tree. An additional intellectual property rights grant can be found 6 # tree. An additional intellectual property rights grant can be found
7 # in the file PATENTS. All contributing project authors may 7 # in the file PATENTS. All contributing project authors may
8 # be found in the AUTHORS file in the root of the source tree. 8 # be found in the AUTHORS file in the root of the source tree.
9 9
10 """MB - the Meta-Build wrapper around GYP and GN 10 """MB - the Meta-Build wrapper around GYP and GN
(...skipping 14 matching lines...) Expand all
25 import re 25 import re
26 import shutil 26 import shutil
27 import sys 27 import sys
28 import subprocess 28 import subprocess
29 import tempfile 29 import tempfile
30 import traceback 30 import traceback
31 import urllib2 31 import urllib2
32 32
33 from collections import OrderedDict 33 from collections import OrderedDict
34 34
35 CHROMIUM_SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname( 35 SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
36 os.path.abspath(__file__)))) 36 CHROMIUM_SRC_DIR = os.path.dirname(os.path.dirname(SCRIPT_DIR))
37 sys.path = [os.path.join(CHROMIUM_SRC_DIR, 'build')] + sys.path 37 sys.path = [os.path.join(CHROMIUM_SRC_DIR, 'build')] + sys.path
38 38
39 import gn_helpers 39 import gn_helpers
40 40
41 41
42 def main(args): 42 def main(args):
43 mbw = MetaBuildWrapper() 43 mbw = MetaBuildWrapper()
44 return mbw.Main(args) 44 return mbw.Main(args)
45 45
46 46
47 class MetaBuildWrapper(object): 47 class MetaBuildWrapper(object):
48 def __init__(self): 48 def __init__(self):
49 self.chromium_src_dir = CHROMIUM_SRC_DIR 49 self.chromium_src_dir = CHROMIUM_SRC_DIR
50 self.default_config = os.path.join(self.chromium_src_dir, 'tools', 'mb', 50 self.default_config = os.path.join(SCRIPT_DIR, 'mb_config.pyl')
51 'mb_config.pyl')
52 self.default_isolate_map = os.path.join(self.chromium_src_dir, 'testing', 51 self.default_isolate_map = os.path.join(self.chromium_src_dir, 'testing',
53 'buildbot', 'gn_isolate_map.pyl') 52 'buildbot', 'gn_isolate_map.pyl')
54 self.executable = sys.executable 53 self.executable = sys.executable
55 self.platform = sys.platform 54 self.platform = sys.platform
56 self.sep = os.sep 55 self.sep = os.sep
57 self.args = argparse.Namespace() 56 self.args = argparse.Namespace()
58 self.configs = {} 57 self.configs = {}
59 self.masters = {} 58 self.masters = {}
60 self.mixins = {} 59 self.mixins = {}
61 60
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 if not sub_mixin in self.mixins: 413 if not sub_mixin in self.mixins:
415 errs.append('Unknown mixin "%s" referenced by mixin "%s".' % 414 errs.append('Unknown mixin "%s" referenced by mixin "%s".' %
416 (sub_mixin, mixin)) 415 (sub_mixin, mixin))
417 referenced_mixins.add(sub_mixin) 416 referenced_mixins.add(sub_mixin)
418 417
419 # Check that every mixin defined is actually referenced somewhere. 418 # Check that every mixin defined is actually referenced somewhere.
420 for mixin in self.mixins: 419 for mixin in self.mixins:
421 if not mixin in referenced_mixins: 420 if not mixin in referenced_mixins:
422 errs.append('Unreferenced mixin "%s".' % mixin) 421 errs.append('Unreferenced mixin "%s".' % mixin)
423 422
424 # If we're checking the Chromium config, check that the 'chromium' bots
425 # which build public artifacts do not include the chrome_with_codecs mixin.
426 if self.args.config_file == self.default_config:
427 if 'chromium' in self.masters:
428 for builder in self.masters['chromium']:
429 config = self.masters['chromium'][builder]
430 def RecurseMixins(current_mixin):
431 if current_mixin == 'chrome_with_codecs':
432 errs.append('Public artifact builder "%s" can not contain the '
433 '"chrome_with_codecs" mixin.' % builder)
434 return
435 if not 'mixins' in self.mixins[current_mixin]:
436 return
437 for mixin in self.mixins[current_mixin]['mixins']:
438 RecurseMixins(mixin)
439
440 for mixin in self.configs[config]:
441 RecurseMixins(mixin)
442 else:
443 errs.append('Missing "chromium" master. Please update this '
444 'proprietary codecs check with the name of the master '
445 'responsible for public build artifacts.')
446
447 if errs: 423 if errs:
448 raise MBErr(('mb config file %s has problems:' % self.args.config_file) + 424 raise MBErr(('mb config file %s has problems:' % self.args.config_file) +
449 '\n ' + '\n '.join(errs)) 425 '\n ' + '\n '.join(errs))
450 426
451 if print_ok: 427 if print_ok:
452 self.Print('mb config file %s looks ok.' % self.args.config_file) 428 self.Print('mb config file %s looks ok.' % self.args.config_file)
453 return 0 429 return 0
454 430
455 def CmdAudit(self): 431 def CmdAudit(self):
456 """Track the progress of the GYP->GN migration on the bots.""" 432 """Track the progress of the GYP->GN migration on the bots."""
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 # Then check to see if the arg contains any metacharacters other than 1538 # Then check to see if the arg contains any metacharacters other than
1563 # double quotes; if it does, quote everything (including the double 1539 # double quotes; if it does, quote everything (including the double
1564 # quotes) for safety. 1540 # quotes) for safety.
1565 if any(a in UNSAFE_FOR_CMD for a in arg): 1541 if any(a in UNSAFE_FOR_CMD for a in arg):
1566 arg = ''.join('^' + a if a in ALL_META_CHARS else a for a in arg) 1542 arg = ''.join('^' + a if a in ALL_META_CHARS else a for a in arg)
1567 return arg 1543 return arg
1568 1544
1569 1545
1570 if __name__ == '__main__': 1546 if __name__ == '__main__':
1571 sys.exit(main(sys.argv[1:])) 1547 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « tools-webrtc/mb/mb.bat ('k') | tools-webrtc/mb/mb_config.pyl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698