Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / mojo / public / bindings / mojom_bindings_generator.gypi
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   'variables': {
7     'output_dir': '<(SHARED_INTERMEDIATE_DIR)/mojom',
8   },
9   'rules': [
10     {
11       'rule_name': 'Generate C++ source files from mojom files',
12       'extension': 'mojom',
13       'variables': {
14         'mojom_bindings_generator':
15             '<(DEPTH)/mojo/public/bindings/mojom_bindings_generator.py',
16       },
17       'inputs': [
18         '<(mojom_bindings_generator)',
19         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/enum_declaration.tmpl',
20         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_declaration.tmpl',
21         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl',
22         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_proxy_declaration.tmpl',
23         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_stub_declaration.tmpl',
24         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/module.cc.tmpl',
25         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/module.h.tmpl',
26         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/module_internal.h.tmpl',
27         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/params_definition.tmpl',
28         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl',
29         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/struct_declaration.tmpl',
30         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/struct_definition.tmpl',
31         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/struct_destructor.tmpl',
32         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/struct_macros.tmpl',
33         '<(DEPTH)/mojo/public/bindings/generators/cpp_templates/wrapper_class_declaration.tmpl',
34         '<(DEPTH)/mojo/public/bindings/generators/js_templates/enum_definition.tmpl',
35         '<(DEPTH)/mojo/public/bindings/generators/js_templates/interface_definition.tmpl',
36         '<(DEPTH)/mojo/public/bindings/generators/js_templates/module.js.tmpl',
37         '<(DEPTH)/mojo/public/bindings/generators/js_templates/struct_definition.tmpl',
38         '<(DEPTH)/mojo/public/bindings/generators/mojom_cpp_generator.py',
39         '<(DEPTH)/mojo/public/bindings/generators/mojom_js_generator.py',
40         '<(DEPTH)/mojo/public/bindings/pylib/parse/__init__.py',
41         '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_lexer.py',
42         '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_parser.py',
43         '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_translate.py',
44         '<(DEPTH)/mojo/public/bindings/pylib/generate/__init__.py',
45         '<(DEPTH)/mojo/public/bindings/pylib/generate/mojom.py',
46         '<(DEPTH)/mojo/public/bindings/pylib/generate/mojom_data.py',
47         '<(DEPTH)/mojo/public/bindings/pylib/generate/mojom_generator.py',
48         '<(DEPTH)/mojo/public/bindings/pylib/generate/mojom_pack.py',
49         '<(DEPTH)/mojo/public/bindings/pylib/generate/template_expander.py',
50       ],
51       'outputs': [
52         '<(output_dir)/<(RULE_INPUT_ROOT).cc',
53         '<(output_dir)/<(RULE_INPUT_ROOT).h',
54         '<(output_dir)/<(RULE_INPUT_ROOT).js',
55         '<(output_dir)/<(RULE_INPUT_ROOT)_internal.h',
56       ],
57       'action': [
58         'python', '<@(mojom_bindings_generator)',
59         '<(RULE_INPUT_PATH)',
60         '-i', 'mojom',
61         '-o', '<(output_dir)',
62       ],
63       'message': 'Generating C++ from mojom <(RULE_INPUT_PATH)',
64       'process_outputs_as_sources': 1,
65     }
66   ],
67   'dependencies': [
68     'mojo_bindings',
69     'mojo_system',
70   ],
71   'include_dirs': [
72     '<(DEPTH)',
73     '<(SHARED_INTERMEDIATE_DIR)',
74   ],
75   'direct_dependent_settings': {
76     'include_dirs': [
77       '<(DEPTH)',
78       '<(SHARED_INTERMEDIATE_DIR)',
79     ],
80   },
81   'hard_dependency': 1,
82 }