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") { ...@@ -48,8 +48,7 @@ generate_web_idl_collection("core_web_idl_collection") {
component = "core" component = "core"
output_dir = bindings_core_output_dir output_dir = bindings_core_output_dir
deps = [ deps = [
"//third_party/blink/renderer/bindings/core:core_global_constructors_idls", ":core_global_constructors_idls",
"//third_party/blink/renderer/core:generated_testing_idls",
"//third_party/blink/renderer/core:generated_testing_idls_internal_runtime_flags", "//third_party/blink/renderer/core:generated_testing_idls_internal_runtime_flags",
"//third_party/blink/renderer/core:generated_testing_idls_settings", "//third_party/blink/renderer/core:generated_testing_idls_settings",
] ]
......
...@@ -254,6 +254,12 @@ idl_impl("bindings_core_impl_generated") { ...@@ -254,6 +254,12 @@ idl_impl("bindings_core_impl_generated") {
generated_core_callback_function_files generated_core_callback_function_files
non_dict_output_dir = bindings_core_v8_output_dir non_dict_output_dir = bindings_core_v8_output_dir
target_component = "core" 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 # 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 # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
...@@ -109,40 +109,12 @@ compute_interfaces_info_individual("interfaces_info_individual_modules") { ...@@ -109,40 +109,12 @@ compute_interfaces_info_individual("interfaces_info_individual_modules") {
modules_generated_dependency_idl_files modules_generated_dependency_idl_files
interfaces_info_file = interfaces_info_file =
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle" "$bindings_modules_output_dir/InterfacesInfoModulesIndividual.pickle"
component_info_file = component_info_file =
"$bindings_modules_output_dir/ComponentInfoModules.pickle" "$bindings_modules_output_dir/ComponentInfoModules.pickle"
deps = [ deps = [
":modules_core_global_constructors_idls",
":modules_global_constructors_idls", ":modules_global_constructors_idls",
] "//third_party/blink/renderer/bindings: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",
] ]
} }
...@@ -155,19 +127,6 @@ compute_global_objects("modules_global_objects") { ...@@ -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") { generate_global_constructors("modules_global_constructors_idls") {
sources = modules_idl_files sources = modules_idl_files
global_objects_file = global_objects_file =
...@@ -211,14 +170,8 @@ source_set("generated") { ...@@ -211,14 +170,8 @@ source_set("generated") {
generate_web_idl_collection("modules_web_idl_collection") { generate_web_idl_collection("modules_web_idl_collection") {
# |sources| contains all IDL files under modules/. # |sources| contains all IDL files under modules/.
sources = modules_definition_idl_files + modules_static_interface_idl_files + 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" output = "web_idl_collection_for_modules.pickle"
component = "modules" component = "modules"
output_dir = bindings_modules_output_dir 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") { ...@@ -33,6 +33,12 @@ idl_impl("bindings_modules_impl_generated") {
generated_modules_callback_function_files generated_modules_callback_function_files
non_dict_output_dir = bindings_modules_v8_output_dir non_dict_output_dir = bindings_modules_v8_output_dir
target_component = "modules" 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") { idl_compiler("generate_bindings_modules_v8_partial_interfaces") {
...@@ -55,6 +61,8 @@ generate_origin_trial_features("bindings_modules_origin_trial_features") { ...@@ -55,6 +61,8 @@ generate_origin_trial_features("bindings_modules_origin_trial_features") {
component = "modules" component = "modules"
output_dir = bindings_modules_output_dir + "/v8" output_dir = bindings_modules_output_dir + "/v8"
deps = [ 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", "//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
] ]
} }
...@@ -82,7 +90,7 @@ action("bindings_modules_v8_generated_init_partial") { ...@@ -82,7 +90,7 @@ action("bindings_modules_v8_generated_init_partial") {
] ]
deps = [ 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") { ...@@ -160,9 +168,7 @@ action("generate_v8_context_snapshot_external_references") {
] ]
deps = [ deps = [
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core", "//third_party/blink/renderer/bindings:interfaces_info",
"//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_jinja_templates",
"//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables", "//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
] ]
......
...@@ -206,12 +206,9 @@ template("idl_compiler") { ...@@ -206,12 +206,9 @@ template("idl_compiler") {
_inputs += core_all_dependency_idl_files + modules_all_dependency_idl_files _inputs += core_all_dependency_idl_files + modules_all_dependency_idl_files
_public_deps = [ _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", "//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/modules:modules_global_constructors_idls",
"//third_party/blink/renderer/bindings/scripts:cached_jinja_templates", "//third_party/blink/renderer/bindings/scripts:cached_jinja_templates",
"//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables", "//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
...@@ -313,14 +310,9 @@ template("idl_impl") { ...@@ -313,14 +310,9 @@ template("idl_impl") {
] ]
deps = [ deps = [
# FIXME: should be interfaces_info_core (w/o modules) "//third_party/blink/renderer/bindings/scripts:cached_jinja_templates",
# http://crbug.com/358074 "//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
"//third_party/blink/renderer/bindings/core:interfaces_info_individual_core", ] + invoker.deps
"//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",
]
} }
} }
...@@ -445,7 +437,12 @@ template("generate_global_constructors") { ...@@ -445,7 +437,12 @@ template("generate_global_constructors") {
} }
outputs = output_idl_files + output_header_files outputs = output_idl_files + output_header_files
deps = invoker.deps if (defined(invoker.deps)) {
deps = invoker.deps
}
if (defined(invoker.public_deps)) {
public_deps = invoker.public_deps
}
} }
} }
...@@ -471,6 +468,7 @@ template("generate_origin_trial_features") { ...@@ -471,6 +468,7 @@ template("generate_origin_trial_features") {
"//third_party/blink/renderer/bindings/scripts/utilities.py", "//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}.cc.tmpl",
"//third_party/blink/renderer/bindings/templates/origin_trial_features_for_${invoker.component}.h.tmpl", "//third_party/blink/renderer/bindings/templates/origin_trial_features_for_${invoker.component}.h.tmpl",
"$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
idl_files_list, idl_files_list,
] + invoker.sources ] + invoker.sources
...@@ -492,14 +490,8 @@ template("generate_origin_trial_features") { ...@@ -492,14 +490,8 @@ template("generate_origin_trial_features") {
"${invoker.output_dir}/origin_trial_features_for_${invoker.component}.h", "${invoker.output_dir}/origin_trial_features_for_${invoker.component}.h",
] ]
# TODO: This should not always require modules; For core features, this deps = [ "//third_party/blink/renderer/bindings:interfaces_info" ] +
# should be interfaces_info_core (w/o modules). This is the same issue as invoker.deps
# 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",
]
} }
} }
...@@ -517,7 +509,9 @@ template("generate_web_idl_collection") { ...@@ -517,7 +509,9 @@ template("generate_web_idl_collection") {
outputs = [ outputs = [
output_path, output_path,
] ]
deps = invoker.deps if (defined(invoker.deps)) {
deps = invoker.deps
}
# List input file names in a temporary file. # List input file names in a temporary file.
response_file_contents = rebase_path(invoker.sources, root_build_dir) 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