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") { ...@@ -32,7 +32,8 @@ generate_global_constructors("core_global_constructors_idls") {
sources = core_idl_files + core_idl_with_modules_dependency_files sources = core_idl_files + core_idl_with_modules_dependency_files
global_objects_file = "$bindings_core_output_dir/GlobalObjectsCore.pickle" global_objects_file = "$bindings_core_output_dir/GlobalObjectsCore.pickle"
interfaces = core_global_constructors_original_interfaces interfaces = core_global_constructors_original_interfaces
component = "Core" basenames = core_global_constructors_original_interface_basenames
component = "core"
output_dir = blink_core_output_dir output_dir = blink_core_output_dir
deps = [ deps = [
":core_global_objects", ":core_global_objects",
......
...@@ -157,7 +157,8 @@ generate_global_constructors("modules_core_global_constructors_idls") { ...@@ -157,7 +157,8 @@ generate_global_constructors("modules_core_global_constructors_idls") {
global_objects_file = global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.pickle" "$bindings_modules_output_dir/GlobalObjectsModules.pickle"
interfaces = modules_core_global_constructors_original_interfaces 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 output_dir = blink_modules_output_dir
deps = [ deps = [
":modules_global_objects", ":modules_global_objects",
...@@ -169,7 +170,8 @@ generate_global_constructors("modules_global_constructors_idls") { ...@@ -169,7 +170,8 @@ generate_global_constructors("modules_global_constructors_idls") {
global_objects_file = global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.pickle" "$bindings_modules_output_dir/GlobalObjectsModules.pickle"
interfaces = modules_global_constructors_original_interfaces interfaces = modules_global_constructors_original_interfaces
component = "Modules" basenames = modules_global_constructors_original_interface_basenames
component = "modules"
output_dir = blink_modules_output_dir output_dir = blink_modules_output_dir
deps = [ deps = [
":modules_global_objects", ":modules_global_objects",
......
...@@ -462,16 +462,22 @@ template("generate_global_constructors") { ...@@ -462,16 +462,22 @@ template("generate_global_constructors") {
output_dir = invoker.output_dir output_dir = invoker.output_dir
component = invoker.component component = invoker.component
# generate outputs from invoker.interfaces. # generate outputs from invoker.interfaces and invoker.basenames.
output_idl_files = [] output_idl_files = []
output_header_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) { foreach(interface, invoker.interfaces) {
basename = basename_list[i]
args += [ interface ] 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) ] args += [ rebase_path(output_idl_file, root_build_dir) ]
output_idl_files += [ output_idl_file ] output_idl_files += [ output_idl_file ]
output_header_files += output_header_files +=
[ "$output_dir/${interface}${component}Constructors.h" ] [ "$output_dir/${basename}_${component}_constructors.h" ]
i += 1
} }
outputs = output_idl_files + output_header_files outputs = output_idl_files + output_header_files
......
...@@ -17,13 +17,20 @@ core_global_constructors_original_interfaces = [ ...@@ -17,13 +17,20 @@ core_global_constructors_original_interfaces = [
"DedicatedWorkerGlobalScope", "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 # 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 get process_file_template to generate lists of IDL files corresponding
# to each interface. # to each interface.
core_global_constructors_generated_idl_files = core_global_constructors_generated_idl_files =
process_file_template( process_file_template(
core_global_constructors_original_interfaces, core_global_constructors_original_interface_basenames,
[ "$blink_core_output_dir/{{source_name_part}}CoreConstructors.idl" ]) [ "$blink_core_output_dir/{{source_name_part}}_core_constructors.idl" ])
core_idl_files = core_idl_files =
get_path_info([ get_path_info([
......
...@@ -17,6 +17,14 @@ modules_core_global_constructors_original_interfaces = [ ...@@ -17,6 +17,14 @@ modules_core_global_constructors_original_interfaces = [
"ServiceWorkerGlobalScope", "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 = [ modules_global_constructors_original_interfaces = [
"AudioWorkletGlobalScope", "AudioWorkletGlobalScope",
"CompositorWorkerGlobalScope", "CompositorWorkerGlobalScope",
...@@ -27,15 +35,26 @@ modules_global_constructors_original_interfaces = [ ...@@ -27,15 +35,26 @@ modules_global_constructors_original_interfaces = [
"Window", "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 # 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 get process_file_template to generate lists of IDL files corresponding
# to each interface. # to each interface.
modules_core_global_constructors_generated_idl_files = process_file_template( modules_core_global_constructors_generated_idl_files = process_file_template(
modules_core_global_constructors_original_interfaces, modules_core_global_constructors_original_interface_basenames,
[ "$blink_modules_output_dir/{{source_name_part}}CoreConstructors.idl" ]) [ "$blink_modules_output_dir/{{source_name_part}}_core_constructors.idl" ])
modules_global_constructors_generated_idl_files = process_file_template( modules_global_constructors_generated_idl_files = process_file_template(
modules_global_constructors_original_interfaces, modules_global_constructors_original_interface_basenames,
[ "$blink_modules_output_dir/{{source_name_part}}ModulesConstructors.idl" ]) [ "$blink_modules_output_dir/{{source_name_part}}_modules_constructors.idl" ])
modules_idl_files = modules_idl_files =
get_path_info([ 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