Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: build/json_schema.gni

Issue 343233002: Make chrome/common compile in GN (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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.
4
5 # TODO(brettw) this should maybe be moved to tools/json_schema_compiler/ where
6 # the script is. Currently, we keep it in the build directory with the gyp
7 # version to make it easier to find.
8 #
9 # Or, considering the fact that it references the chrome/extensions directory,
10 # it should possibly be moved there.
jamesr 2014/06/20 21:45:08 that would be my vote
11
12 _api_gen_dir = "//tools/json_schema_compiler"
13 _api_gen = "$_api_gen_dir/compiler.py"
14 _impl_dir = "chrome/browser/extensions/api"
15
16 _python_files = [
17 "$_api_gen_dir/cc_generator.py",
18 "$_api_gen_dir/code.py",
19 "$_api_gen_dir/compiler.py",
20 "$_api_gen_dir/cpp_bundle_generator.py",
21 "$_api_gen_dir/cpp_type_generator.py",
22 "$_api_gen_dir/cpp_util.py",
23 "$_api_gen_dir/h_generator.py",
24 "$_api_gen_dir/idl_schema.py",
25 "$_api_gen_dir/json_schema.py",
26 "$_api_gen_dir/model.py",
27 "$_api_gen_dir/util_cc_helper.py",
28 ]
29
30 # Runs the schema compiler over a list of sources.
31 #
32 # Parameters:
33 # sources
34 # The .json and .idl files to compile.
35 #
36 # root_namespace
37 # The C++ namespace that all generated files go under.
38 #
39 # deps, visibility (optional)
40 template("json_schema_compile") {
41 assert(defined(invoker.sources), "Need sources for $target_name")
42 assert(defined(invoker.root_namespace),
43 "Need root_namespace defined for $target_name")
44
45 action_name = "${target_name}_action"
46 source_set_name = target_name
47
48 action_foreach(action_name) {
49 visibility = ":$source_set_name"
50 script = _api_gen
51
52 source_prereqs = _python_files
53 sources = invoker.sources
54
55 # TODO(GYP) We should probably be using {{source_gen_dir}} instead of
56 # $target_gen_dir but support for this string isn't pushed out in GN
57 # binaries yet. Replace this when it is.
58 outputs = [
59 "$target_gen_dir/{{source_name_part}}.cc",
60 "$target_gen_dir/{{source_name_part}}.h",
61 ]
62
63 args = [
64 "--root", rebase_path("//", root_build_dir),
65 "--destdir", rebase_path(root_gen_dir, root_build_dir),
66 "--namespace", invoker.root_namespace,
67 "--generator=cpp",
68 "--impl-dir", _impl_dir,
69 "{{source}}",
70 ]
71 }
72
73 source_set(source_set_name) {
74 if (defined(invoker.visibility)) {
75 visibility = invoker.visibility
76 }
77
78 sources = get_target_outputs(":$action_name")
79
80 deps = [ ":$action_name" ]
81 if (defined(invoker.deps)) {
82 deps += invoker.deps
83 }
84 }
85 }
86
87 # Runs the schema bundler.
88 #
89 # Parameters:
90 # sources
91 # The .json and .idl files to bundle.
92 #
93 # root_namespace
94 # The C++ namespace that all generated files go under.
95 #
96 # deps, visibility (optional)
97 template("json_schema_bundle") {
98 assert(defined(invoker.sources), "Need sources for $target_name")
99 assert(defined(invoker.root_namespace),
100 "Need root_namespace defined for $target_name")
101
102 action_name = "${target_name}_action"
103 source_set_name = target_name
104
105 action(action_name) {
106 visibility = ":$source_set_name"
107 script = _api_gen
108
109 source_prereqs = _python_files
110 source_prereqs += invoker.sources
111
112 outputs = [
113 "$target_gen_dir/generated_api.h",
114 "$target_gen_dir/generated_api.cc",
115 "$target_gen_dir/generated_schemas.h",
116 "$target_gen_dir/generated_schemas.cc",
117 ]
118
119 args = [
120 "--root", rebase_path("//", root_build_dir),
121 "--destdir", rebase_path(root_gen_dir, root_build_dir),
122 "--namespace", invoker.root_namespace,
123 "--generator=cpp-bundle",
124 "--impl-dir", _impl_dir,
125 ] + rebase_path(invoker.sources, root_build_dir)
126 }
127
128 source_set(source_set_name) {
129 if (defined(invoker.visibility)) {
130 visibility = invoker.visibility
131 }
132
133 sources = get_target_outputs(":$action_name")
134
135 deps = [ ":$action_name" ]
136 if (defined(invoker.deps)) {
137 deps += invoker.deps
138 }
139 }
140 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698