blob: 130f6d17fca1bc6ff3a89e5da3f89e3c39d816dc [file] [log] [blame]
[email protected]11e67072012-11-17 14:20:291# Copyright 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_file: a json file that comprise the structure model.
9 # namespace: the C++ namespace that all generated files go under
10 # cc_dir: path to generated files
11 # Functions and namespaces can be excluded by setting "nocompile" to true.
12 'struct_gen_dir': '<(DEPTH)/tools/json_to_struct',
13 'struct_gen': '<(struct_gen_dir)/json_to_struct.py',
14 },
15 'rules': [
16 {
17 'rule_name': 'genstaticinit',
18 'extension': 'json',
19 'inputs': [
20 '<(struct_gen_dir)/element_generator.py',
21 '<(struct_gen_dir)/json_to_struct.py',
22 '<(struct_gen_dir)/struct_generator.py',
23 '<(schema_file)',
24 ],
25 'outputs': [
26 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc',
27 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h',
28 ],
29 'action': [
30 'python',
31 '<(struct_gen)',
32 '<(RULE_INPUT_PATH)',
33 '--destbase=<(SHARED_INTERMEDIATE_DIR)',
34 '--destdir=<(cc_dir)',
35 '--namespace=<(namespace)',
36 '--schema=<(schema_file)',
37 ],
38 'message': 'Generating C++ static initializers from <(RULE_INPUT_PATH)',
39 'process_outputs_as_sources': 1,
40 },
41 ],
42 'include_dirs': [
43 '<(SHARED_INTERMEDIATE_DIR)',
44 '<(DEPTH)',
45 ],
46 # This target exports a hard dependency because it generates header
47 # files.
48 'hard_dependency': 1,
49}