OLD | NEW |
| (Empty) |
1 # Copyright (c) 2012 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 # When including this gypi, the following variables must be set: | |
8 # schema_files: | |
9 # An array of json or idl files that comprise the api model. | |
10 # schema_include_rules (optional): | |
11 # An array of paths to include when searching for referenced objects, | |
12 # with the namespace separated by a :. | |
13 # Example: | |
14 # [ '/foo/bar:Foo::Bar::%(namespace)s' ] | |
15 # cc_dir: | |
16 # The directory to put the generated code in. | |
17 # root_namespace: | |
18 # A Python string substituion pattern used to generate the C++ | |
19 # namespace for each API. Use %(namespace)s to replace with the API | |
20 # namespace, like "toplevel::%(namespace)s_api". | |
21 # | |
22 # Functions and namespaces can be excluded by setting "nocompile" to true. | |
23 'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler', | |
24 'api_gen': '<(api_gen_dir)/compiler.py', | |
25 'schema_include_rules': [], | |
26 }, | |
27 'rules': [ | |
28 { | |
29 # GN version: json_schema_api.gni | |
30 'rule_name': 'genapi', | |
31 'msvs_external_rule': 1, | |
32 'extension': 'json', | |
33 'inputs': [ | |
34 '<(api_gen_dir)/cc_generator.py', | |
35 '<(api_gen_dir)/code.py', | |
36 '<(api_gen_dir)/compiler.py', | |
37 '<(api_gen_dir)/cpp_generator.py', | |
38 '<(api_gen_dir)/cpp_type_generator.py', | |
39 '<(api_gen_dir)/cpp_util.py', | |
40 '<(api_gen_dir)/h_generator.py', | |
41 '<(api_gen_dir)/json_schema.py', | |
42 '<(api_gen_dir)/model.py', | |
43 '<(api_gen_dir)/util.cc', | |
44 '<(api_gen_dir)/util.h', | |
45 '<(api_gen_dir)/util_cc_helper.py', | |
46 # TODO(calamity): uncomment this when gyp on windows behaves like other | |
47 # platforms. List expansions of filepaths in inputs expand to different | |
48 # things. | |
49 # '<@(schema_files)', | |
50 ], | |
51 'outputs': [ | |
52 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT
_ROOT).cc', | |
53 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT
_ROOT).h', | |
54 ], | |
55 'action': [ | |
56 'python', | |
57 '<(api_gen)', | |
58 '<(RULE_INPUT_PATH)', | |
59 '--root=<(DEPTH)', | |
60 '--destdir=<(SHARED_INTERMEDIATE_DIR)', | |
61 '--namespace=<(root_namespace)', | |
62 '--generator=cpp', | |
63 '--include-rules=<(schema_include_rules)' | |
64 ], | |
65 'message': 'Generating C++ code from <(RULE_INPUT_PATH) json files', | |
66 'process_outputs_as_sources': 1, | |
67 }, | |
68 { | |
69 'rule_name': 'genapi_idl', | |
70 'msvs_external_rule': 1, | |
71 'extension': 'idl', | |
72 'inputs': [ | |
73 '<(api_gen_dir)/cc_generator.py', | |
74 '<(api_gen_dir)/code.py', | |
75 '<(api_gen_dir)/compiler.py', | |
76 '<(api_gen_dir)/cpp_generator.py', | |
77 '<(api_gen_dir)/cpp_type_generator.py', | |
78 '<(api_gen_dir)/cpp_util.py', | |
79 '<(api_gen_dir)/h_generator.py', | |
80 '<(api_gen_dir)/idl_schema.py', | |
81 '<(api_gen_dir)/model.py', | |
82 '<(api_gen_dir)/util.cc', | |
83 '<(api_gen_dir)/util.h', | |
84 '<(api_gen_dir)/util_cc_helper.py', | |
85 # TODO(calamity): uncomment this when gyp on windows behaves like other | |
86 # platforms. List expansions of filepaths in inputs expand to different | |
87 # things. | |
88 # '<@(schema_files)', | |
89 ], | |
90 'outputs': [ | |
91 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT
_ROOT).cc', | |
92 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT
_ROOT).h', | |
93 ], | |
94 'action': [ | |
95 'python', | |
96 '<(api_gen)', | |
97 '<(RULE_INPUT_PATH)', | |
98 '--root=<(DEPTH)', | |
99 '--destdir=<(SHARED_INTERMEDIATE_DIR)', | |
100 '--namespace=<(root_namespace)', | |
101 '--generator=cpp', | |
102 '--include-rules=<(schema_include_rules)' | |
103 ], | |
104 'message': 'Generating C++ code from <(RULE_INPUT_PATH) IDL files', | |
105 'process_outputs_as_sources': 1, | |
106 }, | |
107 ], | |
108 'include_dirs': [ | |
109 '<(SHARED_INTERMEDIATE_DIR)', | |
110 '<(DEPTH)', | |
111 ], | |
112 'dependencies':[ | |
113 '<(DEPTH)/tools/json_schema_compiler/api_gen_util.gyp:api_gen_util', | |
114 ], | |
115 'direct_dependent_settings': { | |
116 'include_dirs': [ | |
117 '<(SHARED_INTERMEDIATE_DIR)', | |
118 ] | |
119 }, | |
120 # This target exports a hard dependency because it generates header | |
121 # files. | |
122 'hard_dependency': 1, | |
123 } | |
OLD | NEW |