blob: b44fe917a6302a5ea8d1b713bbb56bac32e92e66 [file] [log] [blame]
[email protected]15f08dd2012-01-27 07:29:481# 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 # json_schema_files: an array of json files that comprise the api model.
9 # cc_dir: path to generated files
10 # root_namespace: the C++ namespace that all generated files go under
[email protected]cfe484902012-02-15 14:52:3211 # Functions and namespaces can be excluded by setting "nocompile" to true.
[email protected]15f08dd2012-01-27 07:29:4812 'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler',
13 'api_gen': '<(api_gen_dir)/compiler.py',
14 },
15 'rules': [
16 {
17 'rule_name': 'genapi',
18 'extension': 'json',
19 'inputs': [
[email protected]feba21e2012-03-02 15:05:2720 '<(api_gen_dir)/any.cc',
21 '<(api_gen_dir)/any.h',
22 '<(api_gen_dir)/any_helper.py',
[email protected]cfe484902012-02-15 14:52:3223 '<(api_gen_dir)/cc_generator.py',
[email protected]15f08dd2012-01-27 07:29:4824 '<(api_gen_dir)/code.py',
25 '<(api_gen_dir)/compiler.py',
[email protected]15f08dd2012-01-27 07:29:4826 '<(api_gen_dir)/cpp_type_generator.py',
[email protected]750b8362012-03-07 02:33:3527 '<(api_gen_dir)/cpp_util.py',
[email protected]cfe484902012-02-15 14:52:3228 '<(api_gen_dir)/h_generator.py',
[email protected]750b8362012-03-07 02:33:3529 '<(api_gen_dir)/json_schema.py',
[email protected]cfe484902012-02-15 14:52:3230 '<(api_gen_dir)/model.py',
31 '<(api_gen_dir)/util.cc',
32 '<(api_gen_dir)/util.h',
33 '<(api_gen_dir)/util_cc_helper.py',
[email protected]25cbf6012012-02-28 05:51:4434 # TODO(calamity): uncomment this when gyp on windows behaves like other
35 # platforms. List expansions of filepaths in inputs expand to different
36 # things.
37 # '<@(json_schema_files)',
[email protected]15f08dd2012-01-27 07:29:4838 ],
39 'outputs': [
40 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc',
41 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h',
42 ],
43 'action': [
44 'python',
45 '<(api_gen)',
46 '<(RULE_INPUT_PATH)',
47 '--root=<(DEPTH)',
48 '--destdir=<(SHARED_INTERMEDIATE_DIR)',
49 '--namespace=<(root_namespace)',
[email protected]15f08dd2012-01-27 07:29:4850 ],
[email protected]750b8362012-03-07 02:33:3551 'message': 'Generating C++ code from <(RULE_INPUT_PATH) json files',
52 'process_outputs_as_sources': 1,
53 },
54 {
55 'rule_name': 'genapi_idl',
56 'extension': 'idl',
57 'inputs': [
58 '<(api_gen_dir)/any.cc',
59 '<(api_gen_dir)/any.h',
60 '<(api_gen_dir)/any_helper.py',
61 '<(api_gen_dir)/cc_generator.py',
62 '<(api_gen_dir)/code.py',
63 '<(api_gen_dir)/compiler.py',
64 '<(api_gen_dir)/cpp_type_generator.py',
65 '<(api_gen_dir)/cpp_util.py',
66 '<(api_gen_dir)/h_generator.py',
67 '<(api_gen_dir)/idl_schema.py',
68 '<(api_gen_dir)/model.py',
69 '<(api_gen_dir)/util.cc',
70 '<(api_gen_dir)/util.h',
71 '<(api_gen_dir)/util_cc_helper.py',
72 # TODO(calamity): uncomment this when gyp on windows behaves like other
73 # platforms. List expansions of filepaths in inputs expand to different
74 # things.
75 # '<@(json_schema_files)',
76 ],
77 'outputs': [
78 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc',
79 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h',
80 ],
81 'action': [
82 'python',
83 '<(api_gen)',
84 '<(RULE_INPUT_PATH)',
85 '--root=<(DEPTH)',
86 '--destdir=<(SHARED_INTERMEDIATE_DIR)',
87 '--namespace=<(root_namespace)',
88 ],
89 'message': 'Generating C++ code from <(RULE_INPUT_PATH) IDL files',
[email protected]15f08dd2012-01-27 07:29:4890 'process_outputs_as_sources': 1,
91 },
92 ],
93 'include_dirs': [
94 '<(SHARED_INTERMEDIATE_DIR)',
95 '<(DEPTH)',
96 ],
97 'dependencies':[
98 '<(DEPTH)/tools/json_schema_compiler/api_gen_util.gyp:api_gen_util',
99 ],
100 'direct_dependent_settings': {
101 'include_dirs': [
102 '<(SHARED_INTERMEDIATE_DIR)',
103 ]
104 },
105 # This target exports a hard dependency because it generates header
106 # files.
107 'hard_dependency': 1,
108}