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

Unified Diff: Source/bindings/scripts/generate_event_interfaces.py

Issue 212983010: Make EventInterfaces.in build step not depend on bindings generation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update .idl file list Created 6 years, 9 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 | « Source/bindings/generated_bindings.gyp ('k') | Source/core/core.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/generate_event_interfaces.py
diff --git a/Source/bindings/scripts/generate_event_interfaces.py b/Source/bindings/scripts/generate_event_interfaces.py
index 926bd8cbc9eae98a2b82c1b1060466d3bc573f1f..036e2c0890be4901635afc5ebfcd6fae0b279f57 100755
--- a/Source/bindings/scripts/generate_event_interfaces.py
+++ b/Source/bindings/scripts/generate_event_interfaces.py
@@ -41,7 +41,6 @@ The .in format is documented in build/scripts/in_file.py.
"""
from optparse import OptionParser
-import cPickle as pickle
import os
import posixpath
import sys
@@ -59,15 +58,15 @@ source_dir = os.path.normpath(os.path.join(module_path, os.pardir, os.pardir))
def parse_options():
parser = OptionParser()
+ parser.add_option('--event-idl-files-list', help='file listing event IDL files')
parser.add_option('--event-interfaces-file', help='output file')
- parser.add_option('--interfaces-info-file', help='output pickle file')
parser.add_option('--write-file-only-if-changed', type='int', help='if true, do not write an output file if it would be identical to the existing one, which avoids unnecessary rebuilds in ninja')
options, args = parser.parse_args()
+ if options.event_idl_files_list is None:
+ parser.error('Must specify a file listing event IDL files using --event-idl-files-list.')
if options.event_interfaces_file is None:
parser.error('Must specify an output file using --event-interfaces-file.')
- if options.interfaces_info_file is None:
- parser.error('Must specify an input file using --interfaces-info-file.')
if options.write_file_only_if_changed is None:
parser.error('Must specify whether file is only written if changed using --write-file-only-if-changed.')
options.write_file_only_if_changed = bool(options.write_file_only_if_changed)
@@ -76,23 +75,13 @@ def parse_options():
return options
-def write_event_interfaces_file(interfaces_info, destination_filename, only_if_changed):
- # Event interfaces are interfaces that inherit from Event, and Event itself
- event_interfaces = set(
- interface_name
- for interface_name, interface_info in interfaces_info.iteritems()
- if (interface_name == 'Event' or
- (interface_info['ancestors'] and
- interface_info['ancestors'][-1] == 'Event')))
-
+def write_event_interfaces_file(event_idl_files, destination_filename, only_if_changed):
def extended_attribute_string(name, value):
if name == 'RuntimeEnabled':
value += 'Enabled'
return name + '=' + value
- def interface_line(interface_name):
- full_path = interfaces_info[interface_name]['full_path']
-
+ def interface_line(full_path):
relative_path_local, _ = os.path.splitext(os.path.relpath(full_path, source_dir))
relative_path_posix = relative_path_local.replace(os.sep, posixpath.sep)
@@ -108,8 +97,8 @@ def write_event_interfaces_file(interfaces_info, destination_filename, only_if_c
lines = ['namespace="Event"\n',
'\n']
- interface_lines = [interface_line(interface_name)
- for interface_name in event_interfaces]
+ interface_lines = [interface_line(event_idl_file)
+ for event_idl_file in event_idl_files]
interface_lines.sort()
lines.extend(interface_lines)
write_file(''.join(lines), destination_filename, only_if_changed)
@@ -119,9 +108,9 @@ def write_event_interfaces_file(interfaces_info, destination_filename, only_if_c
def main():
options = parse_options()
- with open(options.interfaces_info_file) as interfaces_info_file:
- interfaces_info = pickle.load(interfaces_info_file)
- write_event_interfaces_file(interfaces_info,
+ with open(options.event_idl_files_list) as event_idl_files_list:
+ event_idl_files = [line.rstrip('\n') for line in event_idl_files_list]
+ write_event_interfaces_file(event_idl_files,
options.event_interfaces_file,
options.write_file_only_if_changed)
« no previous file with comments | « Source/bindings/generated_bindings.gyp ('k') | Source/core/core.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698