| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/python.gni") |
| import("//third_party/blink/renderer/bindings/bindings.gni") |
| import("//third_party/blink/renderer/bindings/generated_in_modules.gni") |
| import("//third_party/blink/renderer/bindings/modules/v8/generated.gni") |
| import("//third_party/blink/renderer/bindings/scripts/scripts.gni") |
| import("//third_party/blink/renderer/modules/modules.gni") |
| import("//third_party/blink/renderer/modules/modules_idl_files.gni") |
| |
| visibility = [ "//third_party/blink/renderer/*" ] |
| |
| blink_modules_sources("v8") { |
| visibility = [] |
| visibility = [ "//third_party/blink/renderer/modules" ] |
| |
| sources = generated_enumeration_sources_in_modules |
| if (use_blink_v8_binding_new_idl_callback_function) { |
| sources += generated_callback_function_sources_in_modules |
| } |
| if (use_blink_v8_binding_new_idl_callback_interface) { |
| sources += generated_callback_interface_sources_in_modules |
| } |
| if (use_blink_v8_binding_new_idl_dictionary) { |
| sources += generated_dictionary_sources_in_modules |
| } |
| if (use_blink_v8_binding_new_idl_interface) { |
| sources += generated_interface_sources_in_modules + |
| generated_namespace_sources_in_modules |
| } |
| |
| deps = [ |
| ":generate_mojo_bindings", |
| ":generated", |
| "//third_party/blink/renderer/platform", |
| "//v8", |
| ] |
| } |
| |
| source_set("testing") { |
| testonly = true |
| |
| visibility = [] |
| visibility = [ "//third_party/blink/renderer/modules/*" ] |
| |
| configs += [ |
| "//third_party/blink/renderer:config", |
| "//third_party/blink/renderer:inside_blink", |
| ] |
| |
| sources = [] |
| if (use_blink_v8_binding_new_idl_interface) { |
| sources += generated_interface_sources_for_testing_in_modules |
| } else { |
| sources += [ |
| "$bindings_modules_v8_output_dir/v8_internals_partial.cc", |
| "$bindings_modules_v8_output_dir/v8_internals_partial.h", |
| ] |
| } |
| |
| deps = [ |
| ":generated", |
| "//third_party/blink/renderer/core", |
| "//third_party/blink/renderer/modules", |
| "//third_party/blink/renderer/platform", |
| "//v8", |
| ] |
| if (!use_blink_v8_binding_new_idl_interface) { |
| deps += [ ":generate_bindings_modules_v8_partial_interfaces_for_testing" ] |
| } |
| } |
| |
| group("generated") { |
| visibility = [] |
| visibility = [ |
| "//third_party/blink/renderer/bindings/modules/v8/*", |
| "//third_party/blink/renderer/modules/*", |
| ] |
| |
| public_deps = [ |
| ":bindings_modules_v8_generated", |
| "//third_party/blink/renderer/bindings:generate_bindings_all", |
| ] |
| } |
| |
| group("bindings_modules_v8_generated") { |
| public_deps = [ |
| ":bindings_modules_impl_generated", |
| ":bindings_modules_v8_generated_init_partial", |
| ":generate_bindings_modules_v8_interfaces", |
| ":generate_bindings_modules_v8_partial_interfaces", |
| ":generate_bindings_modules_v8_partial_interfaces_for_testing", |
| ":generate_v8_context_snapshot_external_references", |
| "//third_party/blink/renderer/bindings/core/v8:bindings_core_v8_generated", |
| ] |
| } |
| |
| if (!use_blink_v8_binding_new_idl_callback_interface || |
| !use_blink_v8_binding_new_idl_dictionary || |
| !use_blink_v8_binding_new_idl_interface) { |
| idl_compiler("generate_bindings_modules_v8_interfaces") { |
| sources = [] |
| if (!use_blink_v8_binding_new_idl_callback_interface) { |
| sources += filter_include(modules_idl_files, [ "*_callback.idl" ]) |
| } |
| if (!use_blink_v8_binding_new_idl_dictionary) { |
| sources += modules_dictionary_idl_files |
| } |
| if (!use_blink_v8_binding_new_idl_interface) { |
| sources += filter_exclude(modules_idl_files, [ "*_callback.idl" ]) |
| } |
| output_dir = bindings_modules_v8_output_dir |
| output_name_suffix = "" |
| target_component = "modules" |
| } |
| } else { |
| group("generate_bindings_modules_v8_interfaces") { |
| } |
| } |
| |
| idl_impl("bindings_modules_impl_generated") { |
| if (use_blink_v8_binding_new_idl_dictionary) { |
| dict_idls = [] |
| } else { |
| dict_idls = modules_dictionary_idl_files |
| } |
| non_dict_outputs = bindings_modules_generated_union_type_files |
| if (!use_blink_v8_binding_new_idl_callback_function) { |
| non_dict_outputs += generated_modules_callback_function_files |
| } |
| non_dict_output_dir = bindings_modules_v8_output_dir |
| target_component = "modules" |
| } |
| |
| if (use_blink_v8_binding_new_idl_interface) { |
| group("generate_bindings_modules_v8_partial_interfaces") { |
| } |
| } else { |
| idl_compiler("generate_bindings_modules_v8_partial_interfaces") { |
| sources = core_interface_idl_files_modules_dependent |
| output_dir = bindings_modules_v8_output_dir |
| output_name_suffix = "_partial" |
| target_component = "modules" |
| } |
| } |
| |
| if (use_blink_v8_binding_new_idl_interface) { |
| group("generate_bindings_modules_v8_partial_interfaces_for_testing") { |
| } |
| } else { |
| idl_compiler("generate_bindings_modules_v8_partial_interfaces_for_testing") { |
| sources = webcore_testing_idl_with_modules_dependency_files |
| output_dir = bindings_modules_v8_output_dir |
| output_name_suffix = "_partial" |
| target_component = "modules" |
| } |
| } |
| |
| if (use_blink_v8_binding_new_idl_interface) { |
| group("bindings_modules_origin_trial_features") { |
| } |
| } else { |
| generate_origin_trial_features("bindings_modules_origin_trial_features") { |
| sources = modules_idl_files + modules_generated_dependency_idl_files + |
| modules_dependency_idl_files |
| component = "modules" |
| output_dir = bindings_modules_output_dir + "/v8" |
| deps = [ |
| "//third_party/blink/renderer/bindings:global_constructors_idls", |
| "//third_party/blink/renderer/bindings/modules:interfaces_info_modules", |
| "//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls", |
| ] |
| } |
| } |
| |
| if (use_blink_v8_binding_new_idl_interface) { |
| group("bindings_modules_v8_generated_init_partial") { |
| } |
| } else { |
| action("bindings_modules_v8_generated_init_partial") { |
| script = "$bindings_scripts_dir/generate_init_partial_interfaces.py" |
| |
| inputs = [ "$bindings_output_dir/interfaces_info.pickle" ] |
| outputs = [ bindings_modules_generated_init_partial_interfaces_file ] |
| |
| # Put the IDL file list in a response file to avoid command-line limits. |
| response_file_contents = |
| rebase_path(core_interface_idl_files_modules_dependent, root_build_dir) |
| |
| args = [ |
| "--idl-files-list", |
| "{{response_file_name}}", |
| "--output", |
| rebase_path(bindings_modules_generated_init_partial_interfaces_file, |
| root_build_dir), |
| ] |
| |
| deps = [ "//third_party/blink/renderer/bindings:interfaces_info" ] |
| } |
| } |
| |
| # Note that this intentionally depends on the generator target of the mojom |
| # target instead of the mojom target itself directly. This is to ensure that the |
| # dependencies are header-only and don't link against any bindings code. |
| group("generate_mojo_bindings") { |
| visibility = [] # Allow re-assignment of list. |
| visibility = [ ":*" ] |
| |
| deps = [ |
| "//device/gamepad/public/mojom:mojom_blink_headers", |
| "//device/vr/public/mojom:vr_service_blink_headers", |
| "//media/capture/mojom:image_capture_blink_headers", |
| "//media/midi:mojo_blink_headers", |
| "//services/device/public/mojom:generic_sensor_headers", |
| "//services/device/public/mojom:mojom_blink_headers", |
| "//services/device/public/mojom:usb_blink_headers", |
| "//services/shape_detection/public/mojom:mojom_blink_headers", |
| |
| # IndexedDB Mojom Blink headers are provided by the mojom_modules |
| # target. |
| "//third_party/blink/public/mojom:mojom_modules_blink_headers", |
| ] |
| } |
| |
| blink_modules_sources("bindings_modules_impl") { |
| # ":generate_bindings_modules_v8_partial_interfaces_for_testing" is not |
| # included here. |
| sources = get_target_outputs(":bindings_modules_impl_generated") |
| |
| if (!use_blink_v8_binding_new_idl_callback_interface || |
| !use_blink_v8_binding_new_idl_dictionary || |
| !use_blink_v8_binding_new_idl_interface) { |
| sources += get_target_outputs(":generate_bindings_modules_v8_interfaces") |
| } |
| if (!use_blink_v8_binding_new_idl_interface) { |
| sources += |
| get_target_outputs(":generate_bindings_modules_v8_partial_interfaces") + |
| get_target_outputs(":bindings_modules_v8_generated_init_partial") + |
| get_target_outputs(":bindings_modules_origin_trial_features") |
| } |
| |
| deps = [ |
| ":bindings_modules_origin_trial_features", |
| ":bindings_modules_v8_generated", |
| ":generate_mojo_bindings", |
| ":generated", |
| "//third_party/blink/renderer/modules/mediarecorder:buildflags", |
| "//third_party/dawn/src/dawn:dawn_headers", |
| ] |
| } |
| |
| action("generate_v8_context_snapshot_external_references") { |
| script = "$bindings_scripts_dir/generate_v8_context_snapshot_external_references.py" |
| idl_files = |
| core_interface_idl_files_core_only + |
| core_interface_idl_files_modules_dependent + modules_definition_idl_files |
| output = bindings_generated_v8_context_snapshot_external_references_file |
| |
| inputs = idl_files + [ script ] |
| outputs = [ output ] |
| |
| response_file_contents = rebase_path(idl_files, root_build_dir) |
| args = [ |
| "--cache-dir", |
| rebase_path(bindings_scripts_output_dir, root_build_dir), |
| "--output", |
| rebase_path(output, root_build_dir), |
| "--idl-files-list", |
| "{{response_file_name}}", |
| "--info-dir", |
| rebase_path("$bindings_output_dir", root_build_dir), |
| "--target-component", |
| "modules", |
| ] |
| |
| deps = [ |
| "//third_party/blink/renderer/bindings:interfaces_info", |
| "//third_party/blink/renderer/bindings/scripts:cached_jinja_templates", |
| "//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables", |
| ] |
| } |