Lines Matching +full:generate +full:- +full:env
1 #!/usr/bin/env python
4 # Use of this source code is governed by a BSD-style license that can be
7 """MB - the Meta-Build wrapper around GN.
9 MB is a wrapper script for GN that can be used to generate build files
52 def cmp(x, y): # pylint: disable=redefined-builtin
53 return (x > y) - (x < y)
64 if builder.endswith(' - builder'):
65 builders.append(builder[:-len(' - builder')])
67 builders.append(builder[:-len(' builder')])
117 subp.add_argument('-b', '--builder',
120 '-m', '--builder-group',
122 subp.add_argument('-c', '--config',
124 subp.add_argument('--phase',
128 subp.add_argument('-f', '--config-file', metavar='PATH',
132 subp.add_argument('-i', '--isolate-map-file', metavar='PATH',
138 subp.add_argument('-g', '--goma-dir',
140 subp.add_argument('--android-version-code',
142 subp.add_argument('--android-version-name',
144 subp.add_argument('-n', '--dryrun', action='store_true',
147 subp.add_argument('-v', '--verbose', action='store_true',
165 subp.add_argument('--json-output',
172 subp.add_argument('-f', '--config-file', metavar='PATH',
175 subp.add_argument('-g', '--goma-dir',
180 help='generate a new set of build files')
182 subp.add_argument('--swarming-targets-file',
185 subp.add_argument('--json-output',
188 help='path to generate build into')
192 help='generate the .isolate files for a given'
198 help='ninja target to generate the isolate for')
205 subp.add_argument('--quiet', default=False, action='store_true',
208 subp.add_argument('--recursive', default=False, action='store_true',
210 'implies --quiet')
221 'target; use "--" if the extra arguments need to include switches.\n'
225 ' % tools/mb/mb.py run -m chromium.linux -b "Linux Builder" \\\n'
230 ' % tools/mb/mb.py run out/Default content_browsertests -- \\\n'
231 ' --test-launcher-retry-limit=0'
235 subp.add_argument('-j', '--jobs', dest='jobs', type=int,
237 subp.add_argument('--no-build', dest='build', default=True,
241 help=('path to generate build into (or use).'
243 'GN-style source-relative path like '
245 subp.add_argument('-d', '--dimension', default=[], action='append', nargs=2,
248 subp.add_argument('--no-default-dimensions', action='store_false',
255 '"--" as the first arg if you need to pass '
261 subp.add_argument('-f', '--config-file', metavar='PATH',
266 subp = subps.add_parser('gerrit-buildbucket-config',
269 subp.add_argument('-f', '--config-file', metavar='PATH',
297 '--swarming-targets-file', self.args.swarming_targets_file)
337 self.ParseArgs([self.args.subcommand, '--help'])
339 self.ParseArgs(['--help'])
355 env = None
357 self.PrintCmd(cmd, env)
380 self.PathJoin(self.chromium_src_dir, 'tools', 'luci-go',
383 '-i',
387 cmd += ['--'] + self.args.extra_args
397 os_dim = ('os', 'Mac-10.12')
399 os_dim = ('os', 'Ubuntu-16.04')
401 os_dim = ('os', 'Windows-10')
406 ('cpu', 'x86-64'),
413 '"tools/mb/mb.py gerrit-buildbucket-config".')
495 # Re-run gn gen in order to ensure the config is consistent with the
504 'or pass in a -m/-b pair or a -c flag to specify the '
598 'Can not specific both -c/--config and -m/--builder-group or '
599 '-b/--builder')
604 raise MBErr('Must specify either -c/--config or '
605 '(-m/--builder-group and -b/--builder)')
621 raise MBErr('Must specify a build --phase for %s on %s' %
630 raise MBErr('Must not specify a build --phase for %s on %s' %
679 cmd = self.GNCmd('gen', build_dir, '--check')
692 # We need GN to generate the list of runtime dependencies for
710 cmd.append('--runtime-deps-list-file=%s' % gn_runtime_deps_path)
718 # generate isolates. Run() will have already logged any error output.
755 raise MBErr('did not generate any of %s' %
786 self.PathJoin(self.chromium_src_dir, 'tools', 'luci-go',
789 '-i',
807 '--isolate',
888 # Canonicalize the arg string into a sorted, newline-separated list
889 # of key-value pairs, and de-dup the keys if need be so that only
998 # targets in other toolchains, though, GN doesn't generate the
1004 self.Print('WARNING: targets with non-default toolchains were '
1016 # (see https://github.com/ninja-build/ninja/issues/1355).
1020 'command-line length issues.')
1098 def PrintCmd(self, cmd, env): argument
1109 if env and var in env:
1110 self.Print('%s%s=%s' % (env_prefix, var, env_quoter(env[var])))
1123 ninja_cmd = ['ninja', '-C', build_dir]
1125 ninja_cmd.extend(['-j', '%d' % self.args.jobs])
1130 def Run(self, cmd, env=None, force_verbose=True, buffer_output=True): argument
1133 self.PrintCmd(cmd, env)
1137 ret, out, err = self.Call(cmd, env=env, buffer_output=buffer_output)
1140 self.Print(' -> returned %d' % ret)
1147 def Call(self, cmd, env=None, buffer_output=True): argument
1151 env=env)
1153 out = out.decode('utf-8')
1154 err = err.decode('utf-8')
1157 env=env)