| # Copyright 2019 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/core/v8/generated.gni") |
| import("//third_party/blink/renderer/bindings/generated_in_core.gni") |
| import("//third_party/blink/renderer/bindings/generated_in_modules.gni") |
| import("//third_party/blink/renderer/bindings/idl_in_core.gni") |
| import("//third_party/blink/renderer/bindings/idl_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/build/scripts/scripts.gni") |
| import("//third_party/blink/renderer/core/core_idl_files.gni") |
| import("//third_party/blink/renderer/modules/modules_idl_files.gni") |
| |
| visibility = [ "//third_party/blink/renderer/*" ] |
| |
| action("interfaces_info") { |
| script = "$bindings_scripts_dir/compute_interfaces_info_overall.py" |
| |
| inputs = [ |
| "$bindings_core_output_dir/interfaces_info_core.pickle", |
| "$bindings_modules_output_dir/interfaces_info_modules.pickle", |
| ] |
| outputs = [ "$bindings_output_dir/interfaces_info.pickle" ] |
| |
| args = [ |
| "--", |
| rebase_path("$bindings_core_output_dir/interfaces_info_core.pickle", |
| root_build_dir), |
| rebase_path("$bindings_modules_output_dir/interfaces_info_modules.pickle", |
| root_build_dir), |
| rebase_path("$bindings_output_dir/interfaces_info.pickle", root_build_dir), |
| ] |
| |
| public_deps = [ |
| "//third_party/blink/renderer/bindings/core:interfaces_info_core", |
| "//third_party/blink/renderer/bindings/modules:interfaces_info_modules", |
| ] |
| } |
| |
| if (use_blink_v8_binding_new_idl_interface) { |
| group("global_constructors_idls") { |
| } |
| } else { |
| generate_global_constructors("global_constructors_idls") { |
| sources = |
| core_interface_idl_files_core_only + |
| core_interface_idl_files_modules_dependent + |
| core_buffer_source_type_idl_files + core_callback_interface_idl_files |
| global_objects_file = |
| "$bindings_modules_output_dir/global_objects_modules.pickle" |
| interfaces = modules_core_global_constructors_original_interfaces |
| basenames = modules_core_global_constructors_original_interface_basenames |
| component = "core" |
| output_dir = blink_modules_output_dir |
| deps = [ |
| "//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls", |
| "//third_party/blink/renderer/bindings/modules:modules_global_objects", |
| ] |
| } |
| } |
| |
| template("collect_idl_files") { |
| action_with_pydeps(target_name) { |
| script = "${bindings_scripts_dir}/collect_idl_files.py" |
| |
| inputs = invoker.inputs |
| outputs = [ invoker.output ] |
| |
| # List input file names in a temporary file. |
| response_file_contents = rebase_path(inputs, root_build_dir) |
| args = [ |
| "--idl_list_file", |
| "{{response_file_name}}", |
| "--component", |
| invoker.component, |
| "--output", |
| rebase_path(invoker.output, root_build_dir), |
| ] |
| if (defined(invoker.for_testing) && invoker.for_testing) { |
| args += [ "--for_testing" ] |
| } |
| |
| if (defined(invoker.deps)) { |
| deps = invoker.deps |
| } |
| } |
| } |
| |
| collect_idl_files("web_idl_in_core") { |
| component = "core" |
| |
| inputs = static_idl_files_in_core |
| |
| output = "${bindings_output_dir}/web_idl_in_core.pickle" |
| } |
| |
| collect_idl_files("web_idl_in_core_for_testing") { |
| component = "core" |
| for_testing = true |
| |
| inputs = static_idl_files_in_core_for_testing |
| inputs += get_path_info( |
| [ |
| "$root_gen_dir/third_party/blink/renderer/core/testing/internal_runtime_flags.idl", |
| "$root_gen_dir/third_party/blink/renderer/core/testing/internal_settings_generated.idl", |
| ], |
| "abspath") |
| deps = [ |
| "//third_party/blink/renderer/core:generated_testing_idls_internal_runtime_flags", |
| "//third_party/blink/renderer/core:generated_testing_idls_settings", |
| ] |
| |
| output = "${bindings_output_dir}/web_idl_in_core_for_testing.pickle" |
| } |
| |
| collect_idl_files("web_idl_in_modules") { |
| component = "modules" |
| |
| inputs = static_idl_files_in_modules |
| |
| output = "${bindings_output_dir}/web_idl_in_modules.pickle" |
| } |
| |
| collect_idl_files("web_idl_in_modules_for_testing") { |
| component = "modules" |
| for_testing = true |
| |
| inputs = static_idl_files_in_modules_for_testing |
| |
| output = "${bindings_output_dir}/web_idl_in_modules_for_testing.pickle" |
| } |
| |
| action_with_pydeps("web_idl_database") { |
| visibility += [ "//tools/privacy_budget/blink_apis:*" ] |
| |
| script = "${bindings_scripts_dir}/build_web_idl_database.py" |
| |
| input_data_files = get_target_outputs(":web_idl_in_core") + |
| get_target_outputs(":web_idl_in_core_for_testing") + |
| get_target_outputs(":web_idl_in_modules") + |
| get_target_outputs(":web_idl_in_modules_for_testing") |
| runtime_enabled_features_file = "../platform/runtime_enabled_features.json5" |
| inputs = input_data_files + [ runtime_enabled_features_file ] |
| outputs = [ web_idl_database_filepath ] |
| |
| args = [ |
| "--output", |
| rebase_path(web_idl_database_filepath, root_build_dir), |
| "--runtime_enabled_features", |
| rebase_path(runtime_enabled_features_file, root_build_dir), |
| "--", |
| ] + rebase_path(input_data_files, root_build_dir) |
| |
| deps = [ |
| ":web_idl_in_core", |
| ":web_idl_in_core_for_testing", |
| ":web_idl_in_modules", |
| ":web_idl_in_modules_for_testing", |
| ] |
| } |
| |
| template("generate_bindings") { |
| action_with_pydeps(target_name) { |
| script = "${bindings_scripts_dir}/generate_bindings.py" |
| |
| if (defined(invoker.pool)) { |
| pool = invoker.pool |
| } |
| |
| web_idl_database_outputs = get_target_outputs(":web_idl_database") |
| web_idl_database = web_idl_database_outputs[0] |
| |
| inputs = [ web_idl_database ] |
| outputs = invoker.outputs |
| |
| args = [ |
| "--web_idl_database", |
| rebase_path(web_idl_database, root_build_dir), |
| "--root_src_dir", |
| rebase_path("//", root_build_dir), |
| "--root_gen_dir", |
| rebase_path(root_gen_dir, root_build_dir), |
| "--output_core_reldir", |
| rebase_path("${bindings_output_dir}/core/v8/", root_gen_dir), |
| "--output_modules_reldir", |
| rebase_path("${bindings_output_dir}/modules/v8/", root_gen_dir), |
| ] + invoker.targets |
| |
| deps = [ ":web_idl_database" ] |
| } |
| } |
| |
| generate_bindings("generate_bindings_all") { |
| targets = [ "enumeration" ] |
| outputs = generated_enumeration_sources_in_core + |
| generated_enumeration_sources_in_modules + |
| generated_enumeration_sources_for_testing_in_core |
| if (use_blink_v8_binding_new_idl_callback_function) { |
| targets += [ "callback_function" ] |
| outputs += generated_callback_function_sources_in_core + |
| generated_callback_function_sources_in_modules + |
| generated_callback_function_sources_for_testing_in_core |
| } |
| if (use_blink_v8_binding_new_idl_callback_interface) { |
| targets += [ "callback_interface" ] |
| outputs += generated_callback_interface_sources_in_core + |
| generated_callback_interface_sources_in_modules |
| } |
| if (use_blink_v8_binding_new_idl_dictionary) { |
| targets += [ "dictionary" ] |
| outputs += generated_dictionary_sources_in_core + |
| generated_dictionary_sources_in_modules + |
| generated_dictionary_sources_for_testing_in_core |
| } |
| if (use_blink_v8_binding_new_idl_interface) { |
| targets += [ "interface" ] |
| outputs += generated_interface_sources_in_core + |
| generated_interface_sources_in_modules + |
| generated_interface_sources_for_testing_in_core + |
| generated_interface_sources_for_testing_in_modules |
| targets += [ "namespace" ] |
| outputs += generated_namespace_sources_in_core + |
| generated_namespace_sources_in_modules |
| } |
| } |
| |
| # Exposes the libraries that affect the resulting blob image of the V8 context |
| # snapshot. |
| group("v8_context_snapshot_influential_libs") { |
| visibility = [] |
| visibility = [ "//tools/v8_context_snapshot/*" ] |
| |
| public_deps = [ |
| "//third_party/blink/renderer/core", |
| "//third_party/blink/renderer/modules", |
| "//third_party/blink/renderer/platform", |
| ] |
| } |