Commit fc6f55a6 authored by Kent Tamura's avatar Kent Tamura Committed by Commit Bot

Bindings: generate_global_constructors template needs one more parameter.

Add "basename" parameter to template("generate_global_constructors"),
and generate snake_case IDL files and C++ header files.

This is a preparation of the Great Blink mv. At this momnet, we only
have lists of global scope interface names in *.gn. After the great mv,
it's difficult to produce generated IDL list and C++ header list from
the interface names in *.gn. So we need to introduce additional
snake_cased interface list.

Bug: 578345
Change-Id: Ia7f861e43d9b622926adde0280e4297c71bcc750
Reviewed-on: https://chromium-review.googlesource.com/672225Reviewed-by: default avatarHitoshi Yoshida <peria@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502817}
parent 2d88d035
......@@ -32,7 +32,8 @@ generate_global_constructors("core_global_constructors_idls") {
sources = core_idl_files + core_idl_with_modules_dependency_files
global_objects_file = "$bindings_core_output_dir/GlobalObjectsCore.pickle"
interfaces = core_global_constructors_original_interfaces
component = "Core"
basenames = core_global_constructors_original_interface_basenames
component = "core"
output_dir = blink_core_output_dir
deps = [
":core_global_objects",
......
......@@ -157,7 +157,8 @@ generate_global_constructors("modules_core_global_constructors_idls") {
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.pickle"
interfaces = modules_core_global_constructors_original_interfaces
component = "Core"
basenames = modules_core_global_constructors_original_interface_basenames
component = "core"
output_dir = blink_modules_output_dir
deps = [
":modules_global_objects",
......@@ -169,7 +170,8 @@ generate_global_constructors("modules_global_constructors_idls") {
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.pickle"
interfaces = modules_global_constructors_original_interfaces
component = "Modules"
basenames = modules_global_constructors_original_interface_basenames
component = "modules"
output_dir = blink_modules_output_dir
deps = [
":modules_global_objects",
......
......@@ -462,16 +462,22 @@ template("generate_global_constructors") {
output_dir = invoker.output_dir
component = invoker.component
# generate outputs from invoker.interfaces.
# generate outputs from invoker.interfaces and invoker.basenames.
output_idl_files = []
output_header_files = []
# Need a variable due to a GN sytax restriction. We can't do "invoker.basenames[i]".
basename_list = invoker.basenames
i = 0
foreach(interface, invoker.interfaces) {
basename = basename_list[i]
args += [ interface ]
output_idl_file = "$output_dir/${interface}${component}Constructors.idl"
output_idl_file = "$output_dir/${basename}_${component}_constructors.idl"
args += [ rebase_path(output_idl_file, root_build_dir) ]
output_idl_files += [ output_idl_file ]
output_header_files +=
[ "$output_dir/${interface}${component}Constructors.h" ]
[ "$output_dir/${basename}_${component}_constructors.h" ]
i += 1
}
outputs = output_idl_files + output_header_files
......
......@@ -17,13 +17,20 @@ core_global_constructors_original_interfaces = [
"DedicatedWorkerGlobalScope",
]
# The size and the order in the following list must match to the previous one.
core_global_constructors_original_interface_basenames = [
"window",
"shared_worker_global_scope",
"dedicated_worker_global_scope",
]
# The interfaces aren't technically files, but we can treat them as file names
# to get process_file_template to generate lists of IDL files corresponding
# to each interface.
core_global_constructors_generated_idl_files =
process_file_template(
core_global_constructors_original_interfaces,
[ "$blink_core_output_dir/{{source_name_part}}CoreConstructors.idl" ])
core_global_constructors_original_interface_basenames,
[ "$blink_core_output_dir/{{source_name_part}}_core_constructors.idl" ])
core_idl_files =
get_path_info([
......
......@@ -17,6 +17,14 @@ modules_core_global_constructors_original_interfaces = [
"ServiceWorkerGlobalScope",
]
# The size and the order in the following list must match to the previous one.
modules_core_global_constructors_original_interface_basenames = [
"audio_worklet_global_scope",
"compositor_worker_global_scope",
"paint_worklet_global_scope",
"service_worker_global_scope",
]
modules_global_constructors_original_interfaces = [
"AudioWorkletGlobalScope",
"CompositorWorkerGlobalScope",
......@@ -27,15 +35,26 @@ modules_global_constructors_original_interfaces = [
"Window",
]
# The size and the order in the following list must match to the previous one.
modules_global_constructors_original_interface_basenames = [
"audio_worklet_global_scope",
"compositor_worker_global_scope",
"dedicated_worker_global_scope",
"paint_worklet_global_scope",
"service_worker_global_scope",
"shared_worker_global_scope",
"window",
]
# The interfaces aren't technically files, but we can treat them as file names
# to get process_file_template to generate lists of IDL files corresponding
# to each interface.
modules_core_global_constructors_generated_idl_files = process_file_template(
modules_core_global_constructors_original_interfaces,
[ "$blink_modules_output_dir/{{source_name_part}}CoreConstructors.idl" ])
modules_core_global_constructors_original_interface_basenames,
[ "$blink_modules_output_dir/{{source_name_part}}_core_constructors.idl" ])
modules_global_constructors_generated_idl_files = process_file_template(
modules_global_constructors_original_interfaces,
[ "$blink_modules_output_dir/{{source_name_part}}ModulesConstructors.idl" ])
modules_global_constructors_original_interface_basenames,
[ "$blink_modules_output_dir/{{source_name_part}}_modules_constructors.idl" ])
modules_idl_files =
get_path_info([
......
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