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

Unified Diff: Source/bindings/generated_bindings.gyp

Issue 173803006: Split generate_global_constructors.py out of compute_dependencies.py (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Cleaner Created 6 years, 10 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
« no previous file with comments | « no previous file | Source/bindings/scripts/compute_dependencies.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/generated_bindings.gyp
diff --git a/Source/bindings/generated_bindings.gyp b/Source/bindings/generated_bindings.gyp
index ab11178b9cbe76e76c3cdea3195cc162c9f9a8bd..a8f089b34814ec722103ce92dd09136136f1a830 100644
--- a/Source/bindings/generated_bindings.gyp
+++ b/Source/bindings/generated_bindings.gyp
@@ -28,6 +28,12 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+# Generate IDL bindings, together with auxiliary files
+# (constructors on global objects, aggregate bindings files).
+#
+# Design doc:
+# https://sites.google.com/a/chromium.org/dev/developers/design-documents/idl-build
+
{
'includes': [
'../build/scripts/scripts.gypi',
@@ -53,11 +59,8 @@
'<@(static_dependency_idl_files)',
'<@(generated_dependency_idl_files)',
],
- # Include in aggregate bindings (exclude testing)
- # The only differences for testing files are:
- # * They are not included in aggregate bindings (excluded from below list)
- # * They do not appear as a property on the global object (Window):
- # specify [NoInterfaceObject] on the interface in the .idl file
+ # Main interface IDL files (excluding dependencies and testing)
+ # are included as properties on global objects, and in aggregate bindings
'main_interface_idl_files': [
'<@(core_idl_files)',
'<@(modules_idl_files)',
@@ -74,8 +77,7 @@
],
'generated_idl_files': [
'<@(generated_interface_idl_files)',
- # FIXME: generate global constructors *before* computing dependencies
- # '<@(generated_dependency_idl_files)',
+ '<@(generated_dependency_idl_files)',
],
# Static IDL files
@@ -99,11 +101,11 @@
],
'generated_global_constructors_idl_files': [
- '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl',
- '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl',
- '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl',
- '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.idl',
- '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.idl',
+ '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl',
],
'compiler_module_files': [
@@ -170,13 +172,56 @@
},
'targets': [{
- 'target_name': 'interface_dependencies',
+ 'target_name': 'global_constructors_idls',
+ 'type': 'none',
+ 'actions': [{
+ 'action_name': 'generate_global_constructors_idls',
+ 'variables': {
+ # Write list of IDL files to a file, so that the command line doesn't
+ # exceed OS length limits.
+ # Only includes main IDL files (exclude dependencies and testing,
+ # which should not appear on global objects).
+ 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp <@(main_interface_idl_files))',
+ },
+ 'inputs': [
+ 'scripts/generate_global_constructors.py',
+ 'scripts/utilities.py',
+ '<(main_interface_idl_files_list)',
+ '<@(main_interface_idl_files)',
+ ],
+ 'outputs': [
+ '<@(generated_global_constructors_idl_files)',
+ ],
+ 'action': [
+ 'python',
+ 'scripts/generate_global_constructors.py',
+ '--idl-files-list',
+ '<(main_interface_idl_files_list)',
+ '<@(write_file_only_if_changed)',
+ '--',
+ 'Window',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl',
+ 'WorkerGlobalScope',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl',
+ 'SharedWorkerGlobalScope',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl',
+ 'DedicatedWorkerGlobalScope',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.idl',
+ 'ServiceWorkerGlobalScope',
+ '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl',
+ ],
+ 'message': 'Generating IDL files for interface properties on global objects',
+ }]
+ },
+ {
+ 'target_name': 'interfaces_info',
'type': 'none',
'dependencies': [
+ 'global_constructors_idls',
'../core/core_generated.gyp:generated_testing_idls',
],
'actions': [{
- 'action_name': 'compute_interface_dependencies',
+ 'action_name': 'compute_interfaces_info',
'variables': {
# Write list of static IDL files to a file, so that the command line
# doesn't exceed OS length limits.
@@ -185,43 +230,33 @@
'idl_files_list': '<|(idl_files_list.tmp <@(static_idl_files))',
},
'inputs': [
- 'scripts/compute_dependencies.py',
+ 'scripts/compute_interfaces_info.py',
+ 'scripts/utilities.py',
'<(idl_files_list)',
'<@(static_idl_files)',
'<@(generated_idl_files)',
- ],
- 'outputs': [
- '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
- '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
- '<@(generated_global_constructors_idl_files)',
- '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
- ],
- 'action': [
- 'python',
- 'scripts/compute_dependencies.py',
- '--idl-files-list',
- '<(idl_files_list)',
- '--interface-dependencies-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
- '--interfaces-info-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
- '--window-constructors-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl',
- '--workerglobalscope-constructors-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl',
- '--sharedworkerglobalscope-constructors-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl',
- '--dedicatedworkerglobalscope-constructors-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.idl',
- '--serviceworkerglobalscope-constructors-file',
- '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl',
- '--event-names-file',
- '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
- '<@(write_file_only_if_changed)',
- '--',
- '<@(generated_idl_files)',
- ],
- 'message': 'Computing dependencies between IDL files, and generating global scope constructor IDLs files and list of Event interfaces',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
+ ],
+ 'action': [
+ 'python',
+ 'scripts/compute_interfaces_info.py',
+ '--idl-files-list',
+ '<(idl_files_list)',
+ '--interface-dependencies-file',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
+ '--interfaces-info-file',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
+ '--event-names-file',
+ '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
+ '<@(write_file_only_if_changed)',
+ '--',
+ '<@(generated_idl_files)',
+ ],
+ 'message': 'Computing global information about IDL files, and generating list of Event interfaces',
}]
},
{
@@ -231,7 +266,7 @@
# https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependencies
'hard_dependency': 1,
'dependencies': [
- 'interface_dependencies',
+ 'interfaces_info',
'../core/core_generated.gyp:generated_testing_idls',
],
'sources': [
@@ -259,7 +294,7 @@
# depends on them, because we're not computing dependencies
# file-by-file.
# FIXME: This is too conservative, and causes excess rebuilds:
- # compute this file-by-file.
+ # compute this file-by-file. http://crbug.com/341748
'<@(dependency_idl_files)',
],
'outputs': [
« no previous file with comments | « no previous file | Source/bindings/scripts/compute_dependencies.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698