| Index: bindings/scripts/idl_reader.py
|
| diff --git a/bindings/scripts/idl_reader.py b/bindings/scripts/idl_reader.py
|
| index 450c73d9f29a08148fcdbded7a51264b04eae2b1..38286682420e23055e61316665b672f7b153447c 100644
|
| --- a/bindings/scripts/idl_reader.py
|
| +++ b/bindings/scripts/idl_reader.py
|
| @@ -42,7 +42,8 @@ from interface_dependency_resolver import InterfaceDependencyResolver
|
|
|
|
|
| class IdlReader(object):
|
| - def __init__(self, interfaces_info=None, outputdir=''):
|
| + def __init__(self, interfaces_info=None, outputdir='', multi_interface=False):
|
| + self.multi_interface = multi_interface
|
| self.extended_attribute_validator = IDLExtendedAttributeValidator()
|
|
|
| if interfaces_info:
|
| @@ -71,23 +72,27 @@ class IdlReader(object):
|
| raise Exception('Failed to parse %s' % idl_filename)
|
| definitions = IdlDefinitions(ast)
|
|
|
| - # Validate file contents with filename convention
|
| - # The Blink IDL filenaming convention is that the file
|
| - # <interface_name>.idl MUST contain exactly 1 interface (or exception),
|
| - # and the interface name must agree with the file's basename,
|
| - # unless it is a partial interface.
|
| - # (e.g., 'partial interface Foo' can be in FooBar.idl).
|
| - number_of_interfaces = len(definitions.interfaces)
|
| - if number_of_interfaces != 1:
|
| - raise Exception(
|
| - 'Expected exactly 1 interface in file {0}, but found {1}'
|
| - .format(idl_filename, number_of_interfaces))
|
| - interface = next(definitions.interfaces.itervalues())
|
| - idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
|
| - if not interface.is_partial and interface.name != idl_file_basename:
|
| - raise Exception(
|
| - 'Interface name "{0}" disagrees with IDL file basename "{1}".'
|
| - .format(interface.name, idl_file_basename))
|
| + if not self.multi_interface:
|
| + # Validate file contents with filename convention
|
| + # The Blink IDL filenaming convention is that the file
|
| + # <interface_name>.idl MUST contain exactly 1 interface (or exception),
|
| + # and the interface name must agree with the file's basename,
|
| + # unless it is a partial interface.
|
| + # (e.g., 'partial interface Foo' can be in FooBar.idl).
|
| + number_of_interfaces = len(definitions.interfaces)
|
| + if number_of_interfaces != 1:
|
| + raise Exception(
|
| + 'Expected exactly 1 interface in file {0}, but found {1}'
|
| + .format(idl_filename, number_of_interfaces))
|
| + interface = next(definitions.interfaces.itervalues())
|
| + idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
|
| + if not interface.is_partial and interface.name != idl_file_basename:
|
| + raise Exception(
|
| + 'Interface name "{0}" disagrees with IDL file basename "{1}".'
|
| + .format(interface.name, idl_file_basename))
|
| + else:
|
| + if len(definitions.interfaces) > 1:
|
| + print '----- Supplemental interfaces %s' % len(definitions.interfaces)
|
|
|
| # Validate extended attributes
|
| if not self.extended_attribute_validator:
|
|
|