| 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 # "Built-in" generators: | 49 # "Built-in" generators: |
| 50 if generator_name.lower() == "c++": | 50 if generator_name.lower() == "c++": |
| 51 generator_name = os.path.join(script_dir, "generators", | 51 generator_name = os.path.join(script_dir, "generators", |
| 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": |
| 60 generator_name = os.path.join(script_dir, "generators", |
| 61 "mojom_python_generator.py") |
| 59 # Specified generator python module: | 62 # Specified generator python module: |
| 60 elif generator_name.endswith(".py"): | 63 elif generator_name.endswith(".py"): |
| 61 pass | 64 pass |
| 62 else: | 65 else: |
| 63 print "Unknown generator name %s" % generator_name | 66 print "Unknown generator name %s" % generator_name |
| 64 sys.exit(1) | 67 sys.exit(1) |
| 65 generator_module = imp.load_source(os.path.basename(generator_name)[:-3], | 68 generator_module = imp.load_source(os.path.basename(generator_name)[:-3], |
| 66 generator_name) | 69 generator_name) |
| 67 generators.append(generator_module) | 70 generators.append(generator_module) |
| 68 return generators | 71 return generators |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 def main(): | 162 def main(): |
| 160 parser = argparse.ArgumentParser( | 163 parser = argparse.ArgumentParser( |
| 161 description="Generate bindings from mojom files.") | 164 description="Generate bindings from mojom files.") |
| 162 parser.add_argument("filename", nargs="+", | 165 parser.add_argument("filename", nargs="+", |
| 163 help="mojom input file") | 166 help="mojom input file") |
| 164 parser.add_argument("-d", "--depth", dest="depth", default=".", | 167 parser.add_argument("-d", "--depth", dest="depth", default=".", |
| 165 help="depth from source root") | 168 help="depth from source root") |
| 166 parser.add_argument("-o", "--output_dir", dest="output_dir", default=".", | 169 parser.add_argument("-o", "--output_dir", dest="output_dir", default=".", |
| 167 help="output directory for generated files") | 170 help="output directory for generated files") |
| 168 parser.add_argument("-g", "--generators", dest="generators_string", | 171 parser.add_argument("-g", "--generators", dest="generators_string", |
| 169 metavar="GENERATORS", default="c++,javascript,java", | 172 metavar="GENERATORS", |
| 173 default="c++,javascript,java,python", |
| 170 help="comma-separated list of generators") | 174 help="comma-separated list of generators") |
| 171 parser.add_argument("--debug_print_intermediate", action="store_true", | 175 parser.add_argument("--debug_print_intermediate", action="store_true", |
| 172 help="print the intermediate representation") | 176 help="print the intermediate representation") |
| 173 parser.add_argument("-I", dest="import_directories", action="append", | 177 parser.add_argument("-I", dest="import_directories", action="append", |
| 174 metavar="directory", default=[], | 178 metavar="directory", default=[], |
| 175 help="add a directory to be searched for import files") | 179 help="add a directory to be searched for import files") |
| 176 parser.add_argument("--use_chromium_bundled_pylibs", action="store_true", | 180 parser.add_argument("--use_chromium_bundled_pylibs", action="store_true", |
| 177 help="use Python modules bundled in the Chromium source") | 181 help="use Python modules bundled in the Chromium source") |
| 178 (args, remaining_args) = parser.parse_known_args() | 182 (args, remaining_args) = parser.parse_known_args() |
| 179 | 183 |
| 180 generator_modules = LoadGenerators(args.generators_string) | 184 generator_modules = LoadGenerators(args.generators_string) |
| 181 | 185 |
| 182 if not os.path.exists(args.output_dir): | 186 if not os.path.exists(args.output_dir): |
| 183 os.makedirs(args.output_dir) | 187 os.makedirs(args.output_dir) |
| 184 | 188 |
| 185 for filename in args.filename: | 189 for filename in args.filename: |
| 186 ProcessFile(args, remaining_args, generator_modules, filename) | 190 ProcessFile(args, remaining_args, generator_modules, filename) |
| 187 | 191 |
| 188 return 0 | 192 return 0 |
| 189 | 193 |
| 190 | 194 |
| 191 if __name__ == "__main__": | 195 if __name__ == "__main__": |
| 192 sys.exit(main()) | 196 sys.exit(main()) |
| OLD | NEW |