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