1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5{ 6 'rules': [ 7 { 8 'rule_name': '<(_target_name)_mojom_bindings_generator', 9 'extension': 'mojom', 10 'variables': { 11 'mojom_base_output_dir': 12 '<!(python <(DEPTH)/build/inverse_depth.py <(DEPTH))', 13 'mojom_bindings_generator': 14 '<(DEPTH)/mojo/public/tools/bindings/mojom_bindings_generator.py', 15 'java_out_dir': '<(PRODUCT_DIR)/java_mojo/<(_target_name)/src', 16 'mojom_import_args%': [ 17 '-I<(DEPTH)' 18 ], 19 }, 20 'inputs': [ 21 '<(mojom_bindings_generator)', 22 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/enum_declaration.tmpl', 23 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl', 24 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl', 25 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_macros.tmpl', 26 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_proxy_declaration.tmpl', 27 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_request_validator_declaration.tmpl', 28 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_response_validator_declaration.tmpl', 29 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/interface_stub_declaration.tmpl', 30 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/module.cc.tmpl', 31 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl', 32 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/module-internal.h.tmpl', 33 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/params_definition.tmpl', 34 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/struct_declaration.tmpl', 35 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl', 36 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl', 37 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_declaration.tmpl', 38 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl', 39 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl', 40 '<(DEPTH)/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl', 41 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/constant_definition.tmpl', 42 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/constants.java.tmpl', 43 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/enum_definition.tmpl', 44 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/enum.java.tmpl', 45 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/header.java.tmpl', 46 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/interface_definition.tmpl', 47 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/interface.java.tmpl', 48 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/interface_internal.java.tmpl', 49 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/struct_definition.tmpl', 50 '<(DEPTH)/mojo/public/tools/bindings/generators/java_templates/struct.java.tmpl', 51 '<(DEPTH)/mojo/public/tools/bindings/generators/js_templates/enum_definition.tmpl', 52 '<(DEPTH)/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl', 53 '<(DEPTH)/mojo/public/tools/bindings/generators/js_templates/module.js.tmpl', 54 '<(DEPTH)/mojo/public/tools/bindings/generators/js_templates/struct_definition.tmpl', 55 '<(DEPTH)/mojo/public/tools/bindings/generators/python_templates/module_macros.tmpl', 56 '<(DEPTH)/mojo/public/tools/bindings/generators/python_templates/module.py.tmpl', 57 '<(DEPTH)/mojo/public/tools/bindings/generators/mojom_cpp_generator.py', 58 '<(DEPTH)/mojo/public/tools/bindings/generators/mojom_java_generator.py', 59 '<(DEPTH)/mojo/public/tools/bindings/generators/mojom_js_generator.py', 60 '<(DEPTH)/mojo/public/tools/bindings/generators/mojom_python_generator.py', 61 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/__init__.py', 62 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/error.py', 63 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/__init__.py', 64 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/data.py', 65 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/generator.py', 66 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/module.py', 67 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/pack.py', 68 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/generate/template_expander.py', 69 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/parse/__init__.py', 70 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/parse/ast.py', 71 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/parse/lexer.py', 72 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/parse/parser.py', 73 '<(DEPTH)/mojo/public/tools/bindings/pylib/mojom/parse/translate.py', 74 ], 75 'outputs': [ 76 '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom.cc', 77 '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom.h', 78 '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom.js', 79 '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)_mojom.py', 80 '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom-internal.h', 81 ], 82 'action': [ 83 'python', '<@(mojom_bindings_generator)', 84 './<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom', 85 '--use_chromium_bundled_pylibs', 86 '-d', '<(DEPTH)', 87 '<@(mojom_import_args)', 88 '-o', '<(SHARED_INTERMEDIATE_DIR)/<(mojom_base_output_dir)/<(RULE_INPUT_DIRNAME)', 89 '--java_output_directory=<(java_out_dir)', 90 ], 91 'message': 'Generating Mojo bindings from <(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).mojom', 92 'process_outputs_as_sources': 1, 93 } 94 ], 95 'include_dirs': [ 96 '<(DEPTH)', 97 '<(SHARED_INTERMEDIATE_DIR)', 98 ], 99 'direct_dependent_settings': { 100 'include_dirs': [ 101 '<(DEPTH)', 102 '<(SHARED_INTERMEDIATE_DIR)', 103 ], 104 'variables': { 105 'generated_src_dirs': [ 106 '<(PRODUCT_DIR)/java_mojo/<(_target_name)/src', 107 ], 108 }, 109 }, 110 'hard_dependency': 1, 111} 112