diff options
author | dpranke <dpranke@chromium.org> | 2015-04-14 13:54:51 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-14 20:55:15 +0000 |
commit | d1fba489d9b1068007487bcaa5813b10243bc837 (patch) | |
tree | 3a313998f8745e7594905eebcb76b90dd21ba4a2 /tools | |
parent | b084115318153be24258039270d6dd7f694b893f (diff) | |
download | chromium_src-d1fba489d9b1068007487bcaa5813b10243bc837.zip chromium_src-d1fba489d9b1068007487bcaa5813b10243bc837.tar.gz chromium_src-d1fba489d9b1068007487bcaa5813b10243bc837.tar.bz2 |
Explicitly specify the path to GN in mb.py.
Previously we were (a) assuming it was in the path and (b) not accounting
for it being called 'gn.exe' on windows.
TBR=phajdan.jr@chromium.org
BUG=454413
CQ_EXTRA_TRYBOTS=tryserver.chromium.mac:mac_chromium_gn_dbg
Review URL: https://codereview.chromium.org/1082353002
Cr-Commit-Position: refs/heads/master@{#325116}
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/mb/mb.py | 24 | ||||
-rw-r--r-- | tools/mb/mb_unittest.py | 4 |
2 files changed, 20 insertions, 8 deletions
diff --git a/tools/mb/mb.py b/tools/mb/mb.py index 1b7bbb9..2a9941b 100755 --- a/tools/mb/mb.py +++ b/tools/mb/mb.py @@ -35,6 +35,7 @@ class MetaBuildWrapper(object): self.chromium_src_dir = p.normpath(d(d(d(p.abspath(__file__))))) self.default_config = p.join(self.chromium_src_dir, 'tools', 'mb', 'mb_config.pyl') + self.platform = sys.platform self.args = argparse.Namespace() self.configs = {} self.masters = {} @@ -131,7 +132,7 @@ class MetaBuildWrapper(object): def CmdLookup(self): vals = self.GetConfig() if vals['type'] == 'gn': - cmd = self.GNCmd('<path>', vals['gn_args']) + cmd = self.GNCmd('gen', '<path>', vals['gn_args']) elif vals['type'] == 'gyp': cmd = self.GYPCmd('<path>', vals['gyp_defines'], vals['gyp_config']) else: @@ -309,13 +310,22 @@ class MetaBuildWrapper(object): return vals def RunGNGen(self, path, vals): - cmd = self.GNCmd(path, vals['gn_args']) + cmd = self.GNCmd('gen', path, vals['gn_args']) ret, _, _ = self.Run(cmd) return ret - def GNCmd(self, path, gn_args): - # TODO(dpranke): Find gn explicitly in the path ... - cmd = ['gn', 'gen', path] + def GNCmd(self, subcommand, path, gn_args=''): + if self.platform == 'linux2': + gn_path = os.path.join(self.chromium_src_dir, 'buildtools', 'linux64', + 'gn') + elif self.platform == 'darwin': + gn_path = os.path.join(self.chromium_src_dir, 'buildtools', 'mac', + 'gn') + else: + gn_path = os.path.join(self.chromium_src_dir, 'buildtools', 'win', + 'gn.exe') + + cmd = [gn_path, subcommand, path] gn_args = gn_args.replace("$(goma_dir)", self.args.goma_dir) if gn_args: cmd.append('--args=%s' % gn_args) @@ -408,8 +418,8 @@ class MetaBuildWrapper(object): all_needed_targets = set() for f in inp['files']: - cmd = ['gn', 'refs', self.args.path[0], '//' + f, - '--type=executable', '--all', '--as=output'] + cmd = self.GNCmd('refs', self.args.path[0]) + [ + '//' + f, '--type=executable', '--all', '--as=output'] ret, out, _ = self.Run(cmd) if ret: self.WriteFailureAndRaise('gn refs returned %d: %s' % (ret, out), diff --git a/tools/mb/mb_unittest.py b/tools/mb/mb_unittest.py index 19cd87f..5613df6 100644 --- a/tools/mb/mb_unittest.py +++ b/tools/mb/mb_unittest.py @@ -18,6 +18,7 @@ class FakeMBW(mb.MetaBuildWrapper): self.calls = [] self.out = '' self.err = '' + self.platform = 'linux2' self.chromium_src_dir = '/fake_src' self.default_config = '/fake_src/tools/mb/mb_config.pyl' @@ -151,7 +152,8 @@ class UnitTest(unittest.TestCase): out=("python build/gyp_chromium -G 'output_dir=<path>' " "-G config=Release -D goma=1 -D gomadir=/foo\n")) self.check(['lookup', '-c', 'gn_rel_bot', '-g', '/foo'], ret=0, - out=("gn gen '<path>' '--args=is_debug=false use_goma=true " + out=("/fake_src/buildtools/linux64/gn gen '<path>' " + "'--args=is_debug=false use_goma=true " "goma_dir=\"/foo\"'\n" )) def test_help(self): |