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

Unified Diff: Source/bindings/derived_sources.gyp

Issue 14179013: Add support for [NoInterfaceObject] extended attribute to bindings generator (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Faster processing of DOMWindow.idl + Handling of Callback interfaces Created 7 years, 8 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
Index: Source/bindings/derived_sources.gyp
diff --git a/Source/bindings/derived_sources.gyp b/Source/bindings/derived_sources.gyp
index 5b99c451b30a58599eeaa9551cd610fcfaa68bfc..71e449e215db0f0a17170f9fdf7b0728ec3bee3e 100644
--- a/Source/bindings/derived_sources.gyp
+++ b/Source/bindings/derived_sources.gyp
@@ -133,6 +133,7 @@
'<@(idl_files)',
'<@(webcore_test_support_idl_files)',
],
+ 'sources/': [['exclude', 'DOMWindow\\.idl$']],
'actions': [{
'action_name': 'derived_sources_all_in_one',
'inputs': [
@@ -224,5 +225,94 @@
'message': 'Generating binding from <(RULE_INPUT_PATH)',
}],
},
+ # Make sure DOMWindow.idl is processed if any other IDL file has changed
+ # as interfaces without NoInterfaceObject extended attribute will cause
+ # a property to be added to the DOMWindow.
+ {
+ 'target_name': 'bindings_derived_sources_domwindow',
+ 'type': 'none',
+ 'hard_dependency': 1,
+ 'dependencies': [
+ 'supplemental_dependencies',
+ '../core/core.gyp/core_derived_sources.gyp:generate_settings',
+ ],
+ 'sources': [
+ '../core/page/DOMWindow.idl',
+ ],
+ 'actions': [],
+ 'rules': [{
+ 'rule_name': 'binding_domwindow',
+ 'extension': 'idl',
+ 'msvs_external_rule': 1,
+ 'inputs': [
+ 'scripts/generate-bindings.pl',
+ 'scripts/CodeGenerator.pm',
+ 'scripts/CodeGeneratorV8.pm',
+ 'scripts/IDLParser.pm',
+ 'scripts/IDLAttributes.txt',
+ '../core/scripts/preprocessor.pm',
+ '<@(idl_files)',
+ ],
+ 'outputs': [
+ # FIXME: The .cpp file should be in webkit/bindings once
+ # we coax GYP into supporting it (see 'action' below).
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8<(RULE_INPUT_ROOT).cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8<(RULE_INPUT_ROOT).h',
+ ],
+ 'variables': {
+ 'generator_include_dirs': [
+ '--include', '../modules/filesystem',
+ '--include', '../modules/indexeddb',
+ '--include', '../modules/mediasource',
+ '--include', '../modules/mediastream',
+ '--include', '../modules/navigatorcontentutils',
+ '--include', '../modules/notifications',
+ '--include', '../modules/webaudio',
+ '--include', '../modules/webdatabase',
+ '--include', '../core/css',
+ '--include', '../core/dom',
+ '--include', '../core/fileapi',
+ '--include', '../core/html',
+ '--include', '../core/page',
+ '--include', '../core/plugins',
+ '--include', '../core/storage',
+ '--include', '../core/svg',
+ '--include', '../core/testing',
+ '--include', '../core/workers',
+ '--include', '../core/xml',
+ '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit',
abarth-chromium 2013/04/23 16:56:39 This is really super ugly. You've just copy-and-p
+ ],
+ },
+ 'msvs_cygwin_shell': 0,
+ # FIXME: Note that we put the .cpp files in webcore/bindings
+ # but the .h files in webkit/bindings. This is to work around
+ # the unfortunate fact that GYP strips duplicate arguments
+ # from lists. When we have a better GYP way to suppress that
+ # behavior, change the output location.
+ 'action': [
+ '<(perl_exe)',
+ '-w',
+ '-Iscripts',
+ '-I../core/scripts',
+ 'scripts/generate-bindings.pl',
+ '--outputHeadersDir',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
+ '--outputDir',
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings',
+ '--idlAttributesFile',
+ 'scripts/IDLAttributes.txt',
+ '--defines',
+ '<(feature_defines)',
+ '<@(generator_include_dirs)',
+ '--supplementalDependencyFile',
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ '--additionalIdlFiles',
+ '<(webcore_test_support_idl_files)',
+ '<(RULE_INPUT_PATH)',
+ '<@(preprocessor)',
+ ],
+ 'message': 'Generating binding from <(RULE_INPUT_PATH)',
+ }],
+ },
],
}

Powered by Google App Engine
This is Rietveld 408576698