Update mojo sdk to rev 59145288bae55b0fce4276b017df6a1117bcf00f
[chromium-blink-merge.git] / mojo / public / tools / bindings / mojom_bindings_generator_explicit.gypi
blob0b836dba449391a3dbe1a6d69240479ff83362b7
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.
6   'includes': [
7     'mojom_bindings_generator_variables.gypi',
8   ],
9   'variables': {
10     'mojom_base_output_dir':
11         '<!(python <(DEPTH)/build/inverse_depth.py <(DEPTH))',
12     'mojom_generated_outputs': [
13       '<!@(python <(DEPTH)/mojo/public/tools/bindings/mojom_list_outputs.py --basedir <(mojom_base_output_dir) <@(mojom_files))',
14     ],
15   },
16   # Given mojom files as inputs, generate sources.  These sources will be
17   # exported to another target (via dependent_settings) to be compiled.  This
18   # keeps code generation separate from compilation, allowing the same sources
19   # to be compiled with multiple toolchains - target, NaCl, etc.
20   'actions': [
21     {
22       'action_name': '<(_target_name)_mojom_bindings_generator',
23       'variables': {
24         'java_out_dir': '<(PRODUCT_DIR)/java_mojo/<(_target_name)/src',
25         'mojom_import_args%': [
26          '-I<(DEPTH)'
27         ],
28       },
29       'inputs': [
30         '<@(mojom_bindings_generator_sources)',
31         '<@(mojom_files)',
32       ],
33       'outputs': [
34         '<@(mojom_generated_outputs)',
35       ],
36       'action': [
37         'python', '<@(mojom_bindings_generator)',
38         '<@(mojom_files)',
39         '--use_bundled_pylibs',
40         '-d', '<(DEPTH)',
41         '<@(mojom_import_args)',
42         '-o', '<(SHARED_INTERMEDIATE_DIR)',
43         '--java_output_directory=<(java_out_dir)',
44       ],
45       'message': 'Generating Mojo bindings from <@(mojom_files)',
46     }
47   ],
48   # Prevent the generated sources from being injected into the "all" target by
49   # preventing the code generator from being directly depended on by the "all"
50   # target.
51   'suppress_wildcard': '1',
52   'direct_dependent_settings': {
53     # A target directly depending on this action will compile the generated
54     # sources.
55     'sources': [
56       '<@(mojom_generated_outputs)',
57     ],
58     # Include paths needed to compile the generated sources into a library.
59     'include_dirs': [
60       '<(DEPTH)',
61       '<(SHARED_INTERMEDIATE_DIR)',
62     ],
63     # Make sure the generated header files are available for any static library
64     # that depends on a static library that depends on this generator.
65     'hard_dependency': 1,
66     'direct_dependent_settings': {
67       # Include paths needed to find the generated header files and their
68       # transitive dependancies when using the library.
69       'include_dirs': [
70         '<(DEPTH)',
71         '<(SHARED_INTERMEDIATE_DIR)',
72       ],
73       'variables': {
74         'generated_src_dirs': [
75           '<(PRODUCT_DIR)/java_mojo/<(_target_name)/src',
76         ],
77       },
78     }
79   },