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

Side by Side Diff: mojo/public/tools/bindings/mojom_bindings_generator.py

Issue 674383002: Initial work on Dart bindings for Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Merge. Work on templates. Created 6 years, 1 month 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 | « mojo/public/tools/bindings/mojom.gni ('k') | mojo/tools/dart_test_runner.dart » ('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 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
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
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())
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/mojom.gni ('k') | mojo/tools/dart_test_runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698