WebstorePrivate extension API cleanup, part 1:
[chromium-blink-merge.git] / build / json_schema_bundle_registration_compile.gypi
blob8c5af4e8a029c9f4bbda95c36f7d28c965cca015
1 # Copyright 2014 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   '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     #   impl_dir_:
11     #     The root path of API implementations; also used for the
12     #     output location. (N.B. Named as such to prevent gyp from
13     #     expanding it as a relative path.)
14     #   root_namespace:
15     #     A Python string substituion pattern used to generate the C++
16     #     namespace for each API. Use %(namespace)s to replace with the API
17     #     namespace, like "toplevel::%(namespace)s_api".
18     #
19     # Functions and namespaces can be excluded by setting "nocompile" to true.
20     'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler',
21     'api_gen': '<(api_gen_dir)/compiler.py',
22     'generator_files': [
23       '<(api_gen_dir)/cc_generator.py',
24       '<(api_gen_dir)/code.py',
25       '<(api_gen_dir)/compiler.py',
26       '<(api_gen_dir)/cpp_bundle_generator.py',
27       '<(api_gen_dir)/cpp_type_generator.py',
28       '<(api_gen_dir)/cpp_util.py',
29       '<(api_gen_dir)/h_generator.py',
30       '<(api_gen_dir)/idl_schema.py',
31       '<(api_gen_dir)/json_schema.py',
32       '<(api_gen_dir)/model.py',
33       '<(api_gen_dir)/util_cc_helper.py',
34     ],
35   },
36   'actions': [
37     {
38       # GN version: json_schema_api.gni
39       'action_name': 'genapi_bundle_registration',
40       'inputs': [
41         '<@(generator_files)',
42         '<@(schema_files)',
43         '<@(non_compiled_schema_files)',
44       ],
45       'outputs': [
46         '<(SHARED_INTERMEDIATE_DIR)/<(impl_dir_)/generated_api_registration.h',
47         '<(SHARED_INTERMEDIATE_DIR)/<(impl_dir_)/generated_api_registration.cc',
48       ],
49       'action': [
50         'python',
51         '<(api_gen)',
52         '--root=<(DEPTH)',
53         '--destdir=<(SHARED_INTERMEDIATE_DIR)',
54         '--namespace=<(root_namespace)',
55         '--generator=cpp-bundle-registration',
56         '--impl-dir=<(impl_dir_)',
57         '<@(schema_files)',
58         '<@(non_compiled_schema_files)',
59       ],
60       'message': 'Generating C++ API bundle code for function registration',
61       'process_outputs_as_sources': 1,
62       # Avoid running MIDL compiler on IDL input files.
63       'explicit_idl_action': 1,
64     },
65   ],
66   'include_dirs': [
67     '<(SHARED_INTERMEDIATE_DIR)',
68     '<(DEPTH)',
69   ],
70   'direct_dependent_settings': {
71     'include_dirs': [
72       '<(SHARED_INTERMEDIATE_DIR)',
73     ]
74   },
75   # This target exports a hard dependency because it generates header
76   # files.
77   'hard_dependency': 1,