OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """The frontend for the Mojo bindings system.""" | 6 """The frontend for the Mojo bindings system.""" |
7 | 7 |
8 | 8 |
9 import argparse | 9 import argparse |
10 import imp | 10 import imp |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 "mojom_cpp_generator.py") | 52 "mojom_cpp_generator.py") |
53 elif generator_name.lower() == "javascript": | 53 elif generator_name.lower() == "javascript": |
54 generator_name = os.path.join(script_dir, "generators", | 54 generator_name = os.path.join(script_dir, "generators", |
55 "mojom_js_generator.py") | 55 "mojom_js_generator.py") |
56 elif generator_name.lower() == "java": | 56 elif generator_name.lower() == "java": |
57 generator_name = os.path.join(script_dir, "generators", | 57 generator_name = os.path.join(script_dir, "generators", |
58 "mojom_java_generator.py") | 58 "mojom_java_generator.py") |
59 elif generator_name.lower() == "python": | 59 elif generator_name.lower() == "python": |
60 generator_name = os.path.join(script_dir, "generators", | 60 generator_name = os.path.join(script_dir, "generators", |
61 "mojom_python_generator.py") | 61 "mojom_python_generator.py") |
| 62 elif generator_name.lower() == "dart": |
| 63 generator_name = os.path.join(script_dir, "generators", |
| 64 "mojom_dart_generator.py") |
62 # Specified generator python module: | 65 # Specified generator python module: |
63 elif generator_name.endswith(".py"): | 66 elif generator_name.endswith(".py"): |
64 pass | 67 pass |
65 else: | 68 else: |
66 print "Unknown generator name %s" % generator_name | 69 print "Unknown generator name %s" % generator_name |
67 sys.exit(1) | 70 sys.exit(1) |
68 generator_module = imp.load_source(os.path.basename(generator_name)[:-3], | 71 generator_module = imp.load_source(os.path.basename(generator_name)[:-3], |
69 generator_name) | 72 generator_name) |
70 generators.append(generator_module) | 73 generators.append(generator_module) |
71 return generators | 74 return generators |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 parser = argparse.ArgumentParser( | 166 parser = argparse.ArgumentParser( |
164 description="Generate bindings from mojom files.") | 167 description="Generate bindings from mojom files.") |
165 parser.add_argument("filename", nargs="+", | 168 parser.add_argument("filename", nargs="+", |
166 help="mojom input file") | 169 help="mojom input file") |
167 parser.add_argument("-d", "--depth", dest="depth", default=".", | 170 parser.add_argument("-d", "--depth", dest="depth", default=".", |
168 help="depth from source root") | 171 help="depth from source root") |
169 parser.add_argument("-o", "--output_dir", dest="output_dir", default=".", | 172 parser.add_argument("-o", "--output_dir", dest="output_dir", default=".", |
170 help="output directory for generated files") | 173 help="output directory for generated files") |
171 parser.add_argument("-g", "--generators", dest="generators_string", | 174 parser.add_argument("-g", "--generators", dest="generators_string", |
172 metavar="GENERATORS", | 175 metavar="GENERATORS", |
173 default="c++,javascript,java,python", | 176 default="c++,javascript,java,python,dart", |
174 help="comma-separated list of generators") | 177 help="comma-separated list of generators") |
175 parser.add_argument("--debug_print_intermediate", action="store_true", | 178 parser.add_argument("--debug_print_intermediate", action="store_true", |
176 help="print the intermediate representation") | 179 help="print the intermediate representation") |
177 parser.add_argument("-I", dest="import_directories", action="append", | 180 parser.add_argument("-I", dest="import_directories", action="append", |
178 metavar="directory", default=[], | 181 metavar="directory", default=[], |
179 help="add a directory to be searched for import files") | 182 help="add a directory to be searched for import files") |
180 parser.add_argument("--use_chromium_bundled_pylibs", action="store_true", | 183 parser.add_argument("--use_chromium_bundled_pylibs", action="store_true", |
181 help="use Python modules bundled in the Chromium source") | 184 help="use Python modules bundled in the Chromium source") |
182 (args, remaining_args) = parser.parse_known_args() | 185 (args, remaining_args) = parser.parse_known_args() |
183 | 186 |
184 generator_modules = LoadGenerators(args.generators_string) | 187 generator_modules = LoadGenerators(args.generators_string) |
185 | 188 |
186 if not os.path.exists(args.output_dir): | 189 if not os.path.exists(args.output_dir): |
187 os.makedirs(args.output_dir) | 190 os.makedirs(args.output_dir) |
188 | 191 |
189 processor = MojomProcessor(lambda filename: filename in args.filename) | 192 processor = MojomProcessor(lambda filename: filename in args.filename) |
190 for filename in args.filename: | 193 for filename in args.filename: |
191 processor.ProcessFile(args, remaining_args, generator_modules, filename) | 194 processor.ProcessFile(args, remaining_args, generator_modules, filename) |
192 | 195 |
193 return 0 | 196 return 0 |
194 | 197 |
195 | 198 |
196 if __name__ == "__main__": | 199 if __name__ == "__main__": |
197 sys.exit(main()) | 200 sys.exit(main()) |
OLD | NEW |