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

Side by Side Diff: mojo/public/tools/mojom_fetcher/mojom_gn.py

Issue 1709333002: Remove mojom_fetcher. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 10 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
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """BUILD file generator for mojoms."""
7
8 import argparse
9 import errno
10 import imp
11 import logging
12 import os
13 import sys
14 import urllib2
15
16 # Local library
17 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
18 "pylib"))
19 # Bindings library
20 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
21 "..", "bindings", "pylib"))
22 # Jinja2 library
23 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
24 "..", "..", "third_party"))
25 import jinja2
26
27 from fetcher.repository import Repository
28
29
30 class BuildGNGenerator(object):
31 def __init__(self, repository, template_dir):
32 self._repository = repository
33 self._import_dirs = []
34 self.environment = jinja2.Environment(
35 loader=jinja2.FileSystemLoader(template_dir))
36
37 def generate(self):
38 build_gn_tmpl = self.environment.get_template('build_gn.tmpl')
39 directories = self._repository.get_all_external_mojom_directories()
40 for directory in directories:
41 logging.debug("Generating %s", directory.get_build_gn_path())
42 params = directory.get_jinja_parameters(self._import_dirs)
43 f = self._open(directory.get_build_gn_path(), "w")
44 f.write(build_gn_tmpl.render(**params))
45
46 def add_import_dirs(self, import_dirs):
47 self._import_dirs.extend(import_dirs)
48
49 def _open(self, filename, mode):
50 return open(filename, mode)
51
52
53 def _main(args):
54 repository_path = os.path.abspath(args.repository_path)
55 repository = Repository(repository_path, args.external_dir)
56 gn_generator = BuildGNGenerator(
57 repository, os.path.dirname(os.path.abspath(__file__)))
58 if args.extra_import_dirs:
59 gn_generator.add_import_dirs(args.extra_import_dirs)
60 gn_generator.generate()
61
62
63 def main():
64 logging.basicConfig(level=logging.WARNING)
65 parser = argparse.ArgumentParser(
66 description='Generate BUILD.gn files for mojoms.')
67 parser.add_argument('--repository-path', type=str, default='.',
68 help='The path to the client repository.')
69 parser.add_argument('--external-dir', type=str, default='external',
70 help='Directory for external interfaces')
71 parser.add_argument(
72 '--extra-import-dirs', type=str, action='append',
73 help='Additional directories to search for imported mojoms.')
74 args = parser.parse_args()
75 return _main(args)
76
77
78 if __name__ == '__main__':
79 sys.exit(main())
OLDNEW
« no previous file with comments | « mojo/public/tools/mojom_fetcher/mojom_fetcher.py ('k') | mojo/public/tools/mojom_fetcher/pylib/fetcher/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698