Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Unified Diff: Source/bindings/scripts/scripts.gni

Issue 633913002: Update bindings gn files for binding modularization. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« Source/bindings/modules/modules.gni ('K') | « Source/bindings/modules/modules.gni ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/scripts.gni
diff --git a/Source/bindings/scripts/scripts.gni b/Source/bindings/scripts/scripts.gni
index 41a80c6f3dd34cd3746b42912a68bfa6c84bf10e..ccf69a5a0e9b26a91f61a2b92327e0fe9e5f6a99 100644
--- a/Source/bindings/scripts/scripts.gni
+++ b/Source/bindings/scripts/scripts.gni
@@ -28,6 +28,7 @@ idl_compiler_files = get_path_info(_gypi.idl_compiler_files, "abspath")
# sources_generated = list of generated IDL files to pass as inputs
# component_dir = name if subdirectory (one word, no slashes) of component.
# output_file = pickle file to write
+# deps = dependencies
#
# FIXME: Note the static/generated split is for consistency with GYP. This
# split is not necessary in the GN build and could be combined into a single
@@ -61,11 +62,7 @@ template("compute_interfaces_info_individual") {
"--",
] + rebase_path(invoker.sources_generated, root_build_dir)
- deps = [
- # FIXME: should be {modules|core}_generated_idls
- # http://crbug.com/358074
- "//third_party/WebKit/Source/bindings:generated_idls",
- ]
+ deps = invoker.deps
}
}
@@ -238,3 +235,96 @@ template("aggregate_generated_bindings") {
args += rebase_path(invoker.outputs, root_build_dir)
}
}
+
+# Calls the compute_global_objects script.
+#
+# Parameters:
+# sources = a list of source IDL files.
+# sources_generated = a list of generated pickle sources.
+# output_file = a pickle file to write to (need to specify directory)
+#
+template("compute_global_objects") {
+ action(target_name) {
+ script = "//third_party/WebKit/Source/bindings/scripts/compute_global_objects.py"
+
+ # Write the file list to a unique temp file to avoid blowing out the
+ # command line length limit.
+ idl_files_list = "$target_gen_dir/${target_name}_file_list.tmp"
+ write_file(idl_files_list,
+ rebase_path(invoker.sources, root_build_dir))
+
+ inputs = [
+ "//third_party/WebKit/Source/bindings/scripts/utilities.py",
+ idl_files_list,
+ ] + invoker.sources_generated + invoker.sources
+
+ outputs = [ invoker.output_file ]
+
+ args = [
+ "--idl-files-list",
+ rebase_path(idl_files_list, root_build_dir),
+ "--write-file-only-if-changed=1", # Always true for Ninja.
+ "--",
+ ]
+ args += rebase_path(invoker.sources_generated, root_build_dir)
+ args += [ rebase_path(invoker.output_file, root_build_dir) ]
+
+ deps = invoker.deps
+ }
+}
+
+# Calls the generate_global_constructors script.
+#
+# Parameters:
+# sources = a list of source IDL files.
+# global_objects_file = a global objects file generated by compute_global_objects
+# interfaces = interfaces to generate global constructors for.
+# component = component to generate global constructors for.
+# output_dir = output directory to generate idl files and header files.
+# deps = dependencies
+#
+template("generate_global_constructors") {
+ action(target_name) {
+ script = "//third_party/WebKit/Source/bindings/scripts/generate_global_constructors.py"
+
+ # Write the file list to a unique temp file to avoid blowing out the
+ # command line length limit.
+ idl_files_list = "$target_gen_dir/${target_name}_file_list.tmp"
+ write_file(idl_files_list,
+ rebase_path(invoker.sources, root_build_dir))
+
+ inputs = [
+ "//third_party/WebKit/Source/bindings/scripts/utilities.py",
+ idl_files_list,
+ invoker.global_objects_file,
+ ] + invoker.sources
+
+ args = [
+ "--idl-files-list",
+ rebase_path(idl_files_list, root_build_dir),
+ "--global-objects-file",
+ rebase_path(invoker.global_objects_file, root_build_dir),
+ "--write-file-only-if-changed=1", # Always true for Ninja.
+ "--",
+ ]
+
+ output_dir = invoker.output_dir
+ component = invoker.component
+
+ # generate outputs from invoker.interfaces.
+ output_idl_files = []
+ output_header_files = []
+ foreach(interface, invoker.interfaces) {
+ args += [ interface ]
+ output_idl_file = "$output_dir/${interface}${component}Constructors.idl"
+ output_header_file = "$output_dir/${interface}${component}Constructors.h"
+ args += [ rebase_path(output_idl_file, root_build_dir) ]
+ output_idl_files += [ output_idl_file ]
+ output_header_files += [ output_header_file ]
+ }
+
+ outputs = output_idl_files + output_header_files
+ deps = invoker.deps
+ }
+}
+
« Source/bindings/modules/modules.gni ('K') | « Source/bindings/modules/modules.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698