| 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 mojom_generator_root = "//mojo/public/tools/bindings" | 5 mojom_generator_root = "//mojo/public/tools/bindings" |
| 6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py" | 6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py" |
| 7 mojom_generator_sources = [ | 7 mojom_generator_sources = [ |
| 8 "$mojom_generator_root/generators/mojom_cpp_generator.py", | 8 "$mojom_generator_root/generators/mojom_cpp_generator.py", |
| 9 "$mojom_generator_root/generators/mojom_js_generator.py", | 9 "$mojom_generator_root/generators/mojom_js_generator.py", |
| 10 "$mojom_generator_root/generators/mojom_java_generator.py", | 10 "$mojom_generator_root/generators/mojom_java_generator.py", |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 # invoker.public_deps) are mojom targets. | 129 # invoker.public_deps) are mojom targets. |
| 130 group("${target_name}__check_deps_are_all_mojom") { | 130 group("${target_name}__check_deps_are_all_mojom") { |
| 131 deps = [] | 131 deps = [] |
| 132 foreach(d, all_deps) { | 132 foreach(d, all_deps) { |
| 133 name = get_label_info(d, "label_no_toolchain") | 133 name = get_label_info(d, "label_no_toolchain") |
| 134 toolchain = get_label_info(d, "toolchain") | 134 toolchain = get_label_info(d, "toolchain") |
| 135 deps += [ "${name}__is_mojom(${toolchain})" ] | 135 deps += [ "${name}__is_mojom(${toolchain})" ] |
| 136 } | 136 } |
| 137 } | 137 } |
| 138 | 138 |
| 139 # Generate code that is shared by different variants. |
| 140 if (defined(invoker.sources)) { |
| 141 common_generator_args = [ |
| 142 "--use_bundled_pylibs", |
| 143 "generate", |
| 144 "{{source}}", |
| 145 "-d", |
| 146 rebase_path("//", root_build_dir), |
| 147 "-I", |
| 148 rebase_path("//", root_build_dir), |
| 149 "-o", |
| 150 rebase_path(root_gen_dir), |
| 151 "--bytecode_path", |
| 152 rebase_path("$root_gen_dir/mojo/public/tools/bindings"), |
| 153 ] |
| 154 |
| 155 if (defined(invoker.import_dirs)) { |
| 156 foreach(import_dir, invoker.import_dirs) { |
| 157 common_generator_args += [ |
| 158 "-I", |
| 159 rebase_path(import_dir, root_build_dir), |
| 160 ] |
| 161 } |
| 162 } |
| 163 |
| 164 generator_shared_cpp_outputs = [ |
| 165 "{{source_gen_dir}}/{{source_name_part}}.mojom-shared-internal.h", |
| 166 "{{source_gen_dir}}/{{source_name_part}}.mojom-shared.cc", |
| 167 "{{source_gen_dir}}/{{source_name_part}}.mojom-shared.h", |
| 168 ] |
| 169 generator_shared_target_name = "${target_name}_shared__generator" |
| 170 action_foreach(generator_shared_target_name) { |
| 171 script = mojom_generator_script |
| 172 inputs = mojom_generator_sources |
| 173 sources = invoker.sources |
| 174 deps = [ |
| 175 "//mojo/public/tools/bindings:precompile_templates", |
| 176 ] |
| 177 outputs = generator_shared_cpp_outputs |
| 178 args = common_generator_args |
| 179 args += [ |
| 180 "--generate_non_variant_code", |
| 181 "-g", |
| 182 "c++", |
| 183 ] |
| 184 } |
| 185 } |
| 186 |
| 187 shared_cpp_sources_suffix = "shared_cpp_sources" |
| 188 shared_cpp_sources_target_name = "${target_name}_${shared_cpp_sources_suffix}" |
| 189 source_set(shared_cpp_sources_target_name) { |
| 190 if (defined(invoker.testonly)) { |
| 191 testonly = invoker.testonly |
| 192 } |
| 193 deps = [] |
| 194 if (defined(invoker.sources)) { |
| 195 sources = |
| 196 process_file_template(invoker.sources, generator_shared_cpp_outputs) |
| 197 deps += [ ":$generator_shared_target_name" ] |
| 198 } |
| 199 public_deps = [] |
| 200 foreach(d, all_deps) { |
| 201 # Resolve the name, so that a target //mojo/something becomes |
| 202 # //mojo/something:something and we can append shared_cpp_sources_suffix |
| 203 # to get the cpp dependency name. |
| 204 full_name = get_label_info("$d", "label_no_toolchain") |
| 205 public_deps += [ "${full_name}_${shared_cpp_sources_suffix}" ] |
| 206 } |
| 207 } |
| 208 |
| 209 # Generate code for variants. |
| 139 foreach(bindings_configuration, _bindings_configurations) { | 210 foreach(bindings_configuration, _bindings_configurations) { |
| 140 cpp_only = false | 211 cpp_only = false |
| 141 variant_suffix = "" | 212 variant_suffix = "" |
| 142 if (defined(bindings_configuration.variant)) { | 213 if (defined(bindings_configuration.variant)) { |
| 143 variant = bindings_configuration.variant | 214 variant = bindings_configuration.variant |
| 144 variant_suffix = "_${variant}" | 215 variant_suffix = "_${variant}" |
| 145 cpp_only = true | 216 cpp_only = true |
| 146 } | 217 } |
| 147 type_mappings_target_name = "${target_name}${variant_suffix}__type_mappings" | 218 type_mappings_target_name = "${target_name}${variant_suffix}__type_mappings" |
| 148 type_mappings_path = | 219 type_mappings_path = |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 action_foreach(generator_target_name) { | 271 action_foreach(generator_target_name) { |
| 201 script = mojom_generator_script | 272 script = mojom_generator_script |
| 202 inputs = mojom_generator_sources | 273 inputs = mojom_generator_sources |
| 203 sources = invoker.sources | 274 sources = invoker.sources |
| 204 deps = [ | 275 deps = [ |
| 205 ":$type_mappings_target_name", | 276 ":$type_mappings_target_name", |
| 206 "//mojo/public/tools/bindings:precompile_templates", | 277 "//mojo/public/tools/bindings:precompile_templates", |
| 207 ] | 278 ] |
| 208 outputs = generator_cpp_outputs + generator_java_outputs + | 279 outputs = generator_cpp_outputs + generator_java_outputs + |
| 209 generator_js_outputs | 280 generator_js_outputs |
| 210 args = [ | 281 args = common_generator_args |
| 211 "--use_bundled_pylibs", | |
| 212 "generate", | |
| 213 "{{source}}", | |
| 214 "-d", | |
| 215 rebase_path("//", root_build_dir), | |
| 216 "-I", | |
| 217 rebase_path("//", root_build_dir), | |
| 218 "-o", | |
| 219 rebase_path(root_gen_dir), | |
| 220 "--bytecode_path", | |
| 221 rebase_path("$root_gen_dir/mojo/public/tools/bindings"), | |
| 222 ] | |
| 223 | |
| 224 if (defined(invoker.import_dirs)) { | |
| 225 foreach(import_dir, invoker.import_dirs) { | |
| 226 args += [ | |
| 227 "-I", | |
| 228 rebase_path(import_dir, root_build_dir), | |
| 229 ] | |
| 230 } | |
| 231 } | |
| 232 | 282 |
| 233 if (cpp_only) { | 283 if (cpp_only) { |
| 234 args += [ | 284 args += [ |
| 235 "-g", | 285 "-g", |
| 236 "c++", | 286 "c++", |
| 237 ] | 287 ] |
| 238 } else { | 288 } else { |
| 239 args += [ | 289 args += [ |
| 240 "-g", | 290 "-g", |
| 241 "c++,javascript,java", | 291 "c++,javascript,java", |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 if (defined(invoker.export_define)) { | 429 if (defined(invoker.export_define)) { |
| 380 defines += [ invoker.export_define ] | 430 defines += [ invoker.export_define ] |
| 381 } | 431 } |
| 382 if (defined(invoker.export_define_blink)) { | 432 if (defined(invoker.export_define_blink)) { |
| 383 defines += [ invoker.export_define_blink ] | 433 defines += [ invoker.export_define_blink ] |
| 384 } | 434 } |
| 385 if (enabled_sources != []) { | 435 if (enabled_sources != []) { |
| 386 sources = process_file_template(enabled_sources, generator_cpp_outputs) | 436 sources = process_file_template(enabled_sources, generator_cpp_outputs) |
| 387 } | 437 } |
| 388 deps = [ | 438 deps = [ |
| 439 ":$shared_cpp_sources_target_name", |
| 389 "//mojo/public/cpp/bindings:struct_traits", | 440 "//mojo/public/cpp/bindings:struct_traits", |
| 390 "//mojo/public/interfaces/bindings:bindings__generator", | 441 "//mojo/public/interfaces/bindings:bindings__generator", |
| 391 ] | 442 ] |
| 392 if (enabled_sources != []) { | 443 if (enabled_sources != []) { |
| 393 deps += [ ":$generator_target_name" ] | 444 deps += [ ":$generator_target_name" ] |
| 394 } | 445 } |
| 395 public_deps = [ | 446 public_deps = [ |
| 396 "//base", | 447 "//base", |
| 397 ] | 448 ] |
| 398 foreach(d, all_deps) { | 449 foreach(d, all_deps) { |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 full_name = get_label_info(d, "label_no_toolchain") | 520 full_name = get_label_info(d, "label_no_toolchain") |
| 470 deps += [ "${full_name}_java" ] | 521 deps += [ "${full_name}_java" ] |
| 471 } | 522 } |
| 472 | 523 |
| 473 srcjar_deps = [ ":$java_srcjar_target_name" ] | 524 srcjar_deps = [ ":$java_srcjar_target_name" ] |
| 474 run_findbugs_override = false | 525 run_findbugs_override = false |
| 475 } | 526 } |
| 476 } | 527 } |
| 477 } | 528 } |
| 478 } | 529 } |
| OLD | NEW |