Commit 87b0db79 authored by Hitoshi Yoshida's avatar Hitoshi Yoshida Committed by Commit Bot

GN: Refactor GNs for bindings code generator

Historically, we run IDL code generator in modules/ component,
but it's actually independent from all components.
This CL moves the task to bindings/ to make it clear.


Bug: 953125, 839389
Change-Id: I89cd99fb05717f287a3573cf86690280b88036c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1573303Reviewed-by: default avatarKenichi Ishibashi <bashi@chromium.org>
Reviewed-by: default avatarYuki Shiino <yukishiino@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#662506}
parent 1a531c8a
# 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("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/modules/modules_idl_files.gni")
action("interfaces_info") {
script = "$bindings_scripts_dir/compute_interfaces_info_overall.py"
inputs = [
"$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
"$bindings_modules_output_dir/InterfacesInfoModulesIndividual.pickle",
]
outputs = [
"$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
]
args = [
"--",
rebase_path("$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
root_build_dir),
rebase_path(
"$bindings_modules_output_dir/InterfacesInfoModulesIndividual.pickle",
root_build_dir),
rebase_path("$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
root_build_dir),
]
public_deps = [
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core",
"//third_party/blink/renderer/bindings/modules:interfaces_info_individual_modules",
]
}
generate_global_constructors("global_constructors_idls") {
sources = core_idl_files + core_idl_with_modules_dependency_files
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.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",
]
}
......@@ -48,8 +48,7 @@ generate_web_idl_collection("core_web_idl_collection") {
component = "core"
output_dir = bindings_core_output_dir
deps = [
"//third_party/blink/renderer/bindings/core:core_global_constructors_idls",
"//third_party/blink/renderer/core:generated_testing_idls",
":core_global_constructors_idls",
"//third_party/blink/renderer/core:generated_testing_idls_internal_runtime_flags",
"//third_party/blink/renderer/core:generated_testing_idls_settings",
]
......
......@@ -254,6 +254,12 @@ idl_impl("bindings_core_impl_generated") {
generated_core_callback_function_files
non_dict_output_dir = bindings_core_v8_output_dir
target_component = "core"
# TODO(peria): Drop dependency on bindings:interfaces_info.
deps = [
"//third_party/blink/renderer/bindings:interfaces_info",
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core",
]
}
# Even though the idl_impl() call above generates .cpp and .h files for both
......
# Copyright 2014 Tfe Chromium Authors. All rights reserved.
# 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.
......@@ -109,40 +109,12 @@ compute_interfaces_info_individual("interfaces_info_individual_modules") {
modules_generated_dependency_idl_files
interfaces_info_file =
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle"
"$bindings_modules_output_dir/InterfacesInfoModulesIndividual.pickle"
component_info_file =
"$bindings_modules_output_dir/ComponentInfoModules.pickle"
deps = [
":modules_core_global_constructors_idls",
":modules_global_constructors_idls",
]
}
action("interfaces_info") {
script = "$bindings_scripts_dir/compute_interfaces_info_overall.py"
inputs = [
"$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle",
]
outputs = [
"$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
]
args = [
"--",
rebase_path("$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
root_build_dir),
rebase_path(
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle",
root_build_dir),
rebase_path("$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
root_build_dir),
]
public_deps = [
":interfaces_info_individual_modules",
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core",
"//third_party/blink/renderer/bindings:global_constructors_idls",
]
}
......@@ -155,19 +127,6 @@ compute_global_objects("modules_global_objects") {
]
}
generate_global_constructors("modules_core_global_constructors_idls") {
sources = core_idl_files + core_idl_with_modules_dependency_files
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.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 = [
":modules_global_objects",
]
}
generate_global_constructors("modules_global_constructors_idls") {
sources = modules_idl_files
global_objects_file =
......@@ -211,14 +170,8 @@ source_set("generated") {
generate_web_idl_collection("modules_web_idl_collection") {
# |sources| contains all IDL files under modules/.
sources = modules_definition_idl_files + modules_static_interface_idl_files +
modules_all_dependency_idl_files
modules_static_dependency_idl_files
output = "web_idl_collection_for_modules.pickle"
component = "modules"
output_dir = bindings_modules_output_dir
deps = [
"//third_party/blink/renderer/bindings/modules:modules_core_global_constructors_idls",
"//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
"//third_party/blink/renderer/bindings/modules/v8:bindings_modules_origin_trial_features",
]
}
......@@ -33,6 +33,12 @@ idl_impl("bindings_modules_impl_generated") {
generated_modules_callback_function_files
non_dict_output_dir = bindings_modules_v8_output_dir
target_component = "modules"
# TODO(peria): Drop dependency on bindings:interfaces_info.
deps = [
"//third_party/blink/renderer/bindings:interfaces_info",
"//third_party/blink/renderer/bindings/modules:interfaces_info_individual_modules",
]
}
idl_compiler("generate_bindings_modules_v8_partial_interfaces") {
......@@ -55,6 +61,8 @@ generate_origin_trial_features("bindings_modules_origin_trial_features") {
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_individual_modules",
"//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
]
}
......@@ -82,7 +90,7 @@ action("bindings_modules_v8_generated_init_partial") {
]
deps = [
"//third_party/blink/renderer/bindings/modules:interfaces_info",
"//third_party/blink/renderer/bindings:interfaces_info",
]
}
......@@ -160,9 +168,7 @@ action("generate_v8_context_snapshot_external_references") {
]
deps = [
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core",
"//third_party/blink/renderer/bindings/modules:interfaces_info",
"//third_party/blink/renderer/bindings/modules:interfaces_info_individual_modules",
"//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",
]
......
......@@ -206,12 +206,9 @@ template("idl_compiler") {
_inputs += core_all_dependency_idl_files + modules_all_dependency_idl_files
_public_deps = [
"//third_party/blink/renderer/bindings:global_constructors_idls",
"//third_party/blink/renderer/bindings:interfaces_info",
"//third_party/blink/renderer/bindings/core:core_global_constructors_idls",
# FIXME: should be interfaces_info_core (w/o modules)
# http://crbug.com/358074
"//third_party/blink/renderer/bindings/modules:interfaces_info",
"//third_party/blink/renderer/bindings/modules:modules_core_global_constructors_idls",
"//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
"//third_party/blink/renderer/bindings/scripts:cached_jinja_templates",
"//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
......@@ -313,14 +310,9 @@ template("idl_impl") {
]
deps = [
# FIXME: should be interfaces_info_core (w/o modules)
# http://crbug.com/358074
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core",
"//third_party/blink/renderer/bindings/modules:interfaces_info",
"//third_party/blink/renderer/bindings/modules:interfaces_info_individual_modules",
"//third_party/blink/renderer/bindings/scripts:cached_jinja_templates",
"//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
]
] + invoker.deps
}
}
......@@ -445,8 +437,13 @@ template("generate_global_constructors") {
}
outputs = output_idl_files + output_header_files
if (defined(invoker.deps)) {
deps = invoker.deps
}
if (defined(invoker.public_deps)) {
public_deps = invoker.public_deps
}
}
}
# Calls the generate_origin_trial_features script.
......@@ -471,6 +468,7 @@ template("generate_origin_trial_features") {
"//third_party/blink/renderer/bindings/scripts/utilities.py",
"//third_party/blink/renderer/bindings/templates/origin_trial_features_for_${invoker.component}.cc.tmpl",
"//third_party/blink/renderer/bindings/templates/origin_trial_features_for_${invoker.component}.h.tmpl",
"$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
idl_files_list,
] + invoker.sources
......@@ -492,14 +490,8 @@ template("generate_origin_trial_features") {
"${invoker.output_dir}/origin_trial_features_for_${invoker.component}.h",
]
# TODO: This should not always require modules; For core features, this
# should be interfaces_info_core (w/o modules). This is the same issue as
# above in the idl_compiler template.
# http://crbug.com/358074
deps = invoker.deps + [
"//third_party/blink/renderer/bindings/modules:interfaces_info",
"//third_party/blink/renderer/bindings/modules:modules_core_global_constructors_idls",
]
deps = [ "//third_party/blink/renderer/bindings:interfaces_info" ] +
invoker.deps
}
}
......@@ -517,7 +509,9 @@ template("generate_web_idl_collection") {
outputs = [
output_path,
]
if (defined(invoker.deps)) {
deps = invoker.deps
}
# List input file names in a temporary file.
response_file_contents = rebase_path(invoker.sources, root_build_dir)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment