OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 declare_args() { | 5 declare_args() { |
6 # Indicates whether typemapping should be supported in this build | 6 # Indicates whether typemapping should be supported in this build |
7 # configuration. This may be disabled when building external projects which | 7 # configuration. This may be disabled when building external projects which |
8 # depend on //mojo but which do not need/want all of the Chromium tree | 8 # depend on //mojo but which do not need/want all of the Chromium tree |
9 # dependencies that come with typemapping. | 9 # dependencies that come with typemapping. |
10 # | 10 # |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 # cpp_only (optional) | 151 # cpp_only (optional) |
152 # If set to true, only the C++ bindings targets will be generated. | 152 # If set to true, only the C++ bindings targets will be generated. |
153 # | 153 # |
154 # use_new_js_bindings (optional) | 154 # use_new_js_bindings (optional) |
155 # If set to true, the generated JS code will use the new module loading | 155 # If set to true, the generated JS code will use the new module loading |
156 # approach and the core API exposed by Web IDL. | 156 # approach and the core API exposed by Web IDL. |
157 # Default value is true. | 157 # Default value is true. |
158 # TODO(yzshen): Convert all users to use new JS bindings and remove the | 158 # TODO(yzshen): Convert all users to use new JS bindings and remove the |
159 # old mode. | 159 # old mode. |
160 # | 160 # |
| 161 # js_bindings_mode (optional) |
| 162 # |js_bindings_mode| and |use_new_js_bindings| are mutually exclusive. You |
| 163 # can only specify at most one of them. |
| 164 # - "new" (default): generate only the new-style JS bindings; |
| 165 # - "both": generate both the old- and new-style JS bindings; |
| 166 # - "old": generate only the old-style JS bindings. |
| 167 # TODO(yzshen): Convert all users to use new JS bindings and remove the |
| 168 # old mode. |
| 169 # |
161 # component_output_prefix (optional) | 170 # component_output_prefix (optional) |
162 # The prefix to use for the output_name of any component library emitted | 171 # The prefix to use for the output_name of any component library emitted |
163 # for generated C++ bindings. If this is omitted, C++ bindings targets are | 172 # for generated C++ bindings. If this is omitted, C++ bindings targets are |
164 # emitted as source_sets instead. Because this controls the name of the | 173 # emitted as source_sets instead. Because this controls the name of the |
165 # output shared library binary in the root output directory, it must be | 174 # output shared library binary in the root output directory, it must be |
166 # unique across the entire build configuration. | 175 # unique across the entire build configuration. |
167 # | 176 # |
168 # This is required if |component_macro_prefix| is specified. | 177 # This is required if |component_macro_prefix| is specified. |
169 # | 178 # |
170 # component_macro_prefix (optional) | 179 # component_macro_prefix (optional) |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 # component_deps (optional) | 214 # component_deps (optional) |
206 # The list of component deps to add to replace overridden_deps. | 215 # The list of component deps to add to replace overridden_deps. |
207 # overridden_deps_blink (optional) | 216 # overridden_deps_blink (optional) |
208 # component_deps_blink (optional) | 217 # component_deps_blink (optional) |
209 # These two parameters are the blink variants of the previous two. | 218 # These two parameters are the blink variants of the previous two. |
210 template("mojom") { | 219 template("mojom") { |
211 assert( | 220 assert( |
212 defined(invoker.sources) || defined(invoker.deps) || | 221 defined(invoker.sources) || defined(invoker.deps) || |
213 defined(invoker.public_deps), | 222 defined(invoker.public_deps), |
214 "\"sources\" or \"deps\" must be defined for the $target_name template.") | 223 "\"sources\" or \"deps\" must be defined for the $target_name template.") |
| 224 |
| 225 assert(!defined(invoker.use_new_js_bindings) || |
| 226 !defined(invoker.js_bindings_mode), |
| 227 "You shouldn't specify both \"use_new_js_bindings\" and " + |
| 228 "\"js_bindings_mode\".") |
| 229 |
215 if (defined(invoker.export_class_attribute) || | 230 if (defined(invoker.export_class_attribute) || |
216 defined(invoker.export_define) || defined(invoker.export_header)) { | 231 defined(invoker.export_define) || defined(invoker.export_header)) { |
217 assert(defined(invoker.export_class_attribute)) | 232 assert(defined(invoker.export_class_attribute)) |
218 assert(defined(invoker.export_define)) | 233 assert(defined(invoker.export_define)) |
219 assert(defined(invoker.export_header)) | 234 assert(defined(invoker.export_header)) |
220 assert(!defined(invoker.component_macro_prefix)) | 235 assert(!defined(invoker.component_macro_prefix)) |
221 } | 236 } |
222 if (defined(invoker.export_class_attribute_blink) || | 237 if (defined(invoker.export_class_attribute_blink) || |
223 defined(invoker.export_define_blink) || | 238 defined(invoker.export_define_blink) || |
224 defined(invoker.export_header_blink)) { | 239 defined(invoker.export_header_blink)) { |
225 assert(defined(invoker.export_class_attribute_blink)) | 240 assert(defined(invoker.export_class_attribute_blink)) |
226 assert(defined(invoker.export_define_blink)) | 241 assert(defined(invoker.export_define_blink)) |
227 assert(defined(invoker.export_header_blink)) | 242 assert(defined(invoker.export_header_blink)) |
228 assert(!defined(invoker.component_macro_prefix)) | 243 assert(!defined(invoker.component_macro_prefix)) |
229 } | 244 } |
230 if (defined(invoker.overridden_deps) || defined(invoker.component_deps)) { | 245 if (defined(invoker.overridden_deps) || defined(invoker.component_deps)) { |
231 assert(defined(invoker.overridden_deps)) | 246 assert(defined(invoker.overridden_deps)) |
232 assert(defined(invoker.component_deps)) | 247 assert(defined(invoker.component_deps)) |
233 } | 248 } |
234 | 249 |
235 if (defined(invoker.overridden_deps_blink) || | 250 if (defined(invoker.overridden_deps_blink) || |
236 defined(invoker.component_deps_blink)) { | 251 defined(invoker.component_deps_blink)) { |
237 assert(defined(invoker.overridden_deps_blink)) | 252 assert(defined(invoker.overridden_deps_blink)) |
238 assert(defined(invoker.component_deps_blink)) | 253 assert(defined(invoker.component_deps_blink)) |
239 } | 254 } |
240 | 255 |
241 if (defined(invoker.use_new_js_bindings)) { | 256 js_bindings_mode = "new" |
242 assert(invoker.use_new_js_bindings || !invoker.use_new_js_bindings, | 257 if (defined(invoker.js_bindings_mode)) { |
243 "Surpress unused variable error when JS bindings are not needed.") | 258 js_bindings_mode = invoker.js_bindings_mode |
244 } | 259 } |
| 260 if (defined(invoker.use_new_js_bindings) && !invoker.use_new_js_bindings) { |
| 261 js_bindings_mode = "old" |
| 262 } |
| 263 assert(js_bindings_mode == "new" || js_bindings_mode == "both" || |
| 264 js_bindings_mode == "old", |
| 265 "Invalid js_bindings_mode value.") |
245 | 266 |
246 all_deps = [] | 267 all_deps = [] |
247 if (defined(invoker.deps)) { | 268 if (defined(invoker.deps)) { |
248 all_deps += invoker.deps | 269 all_deps += invoker.deps |
249 } | 270 } |
250 if (defined(invoker.public_deps)) { | 271 if (defined(invoker.public_deps)) { |
251 all_deps += invoker.public_deps | 272 all_deps += invoker.public_deps |
252 } | 273 } |
253 | 274 |
254 if (defined(invoker.component_macro_prefix)) { | 275 if (defined(invoker.component_macro_prefix)) { |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 deps = [ | 891 deps = [ |
871 "//mojo/public/tools/bindings:precompile_templates", | 892 "//mojo/public/tools/bindings:precompile_templates", |
872 ] | 893 ] |
873 outputs = generator_js_outputs | 894 outputs = generator_js_outputs |
874 args = common_generator_args | 895 args = common_generator_args |
875 args += [ | 896 args += [ |
876 "-g", | 897 "-g", |
877 "javascript", | 898 "javascript", |
878 ] | 899 ] |
879 | 900 |
880 if (!defined(invoker.use_new_js_bindings) || | 901 args += [ |
881 invoker.use_new_js_bindings) { | 902 "--js_bindings_mode", |
882 args += [ "--use_new_js_bindings" ] | 903 js_bindings_mode, |
883 } | 904 ] |
884 } | 905 } |
885 } | 906 } |
886 | 907 |
887 js_target_name = target_name + "_js" | 908 js_target_name = target_name + "_js" |
888 group(js_target_name) { | 909 group(js_target_name) { |
889 public_deps = [] | 910 public_deps = [] |
890 if (defined(invoker.sources)) { | 911 if (defined(invoker.sources)) { |
891 public_deps += [ ":$generator_js_target_name" ] | 912 public_deps += [ ":$generator_js_target_name" ] |
892 } | 913 } |
893 | 914 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
926 forward_variables_from(invoker, | 947 forward_variables_from(invoker, |
927 "*", | 948 "*", |
928 [ | 949 [ |
929 "output_prefix", | 950 "output_prefix", |
930 "macro_prefix", | 951 "macro_prefix", |
931 ]) | 952 ]) |
932 component_output_prefix = invoker.output_prefix | 953 component_output_prefix = invoker.output_prefix |
933 component_macro_prefix = invoker.macro_prefix | 954 component_macro_prefix = invoker.macro_prefix |
934 } | 955 } |
935 } | 956 } |
OLD | NEW |