Index: Source/bindings/scripts/compute_interfaces_info_individual.py |
diff --git a/Source/bindings/scripts/compute_interfaces_info_individual.py b/Source/bindings/scripts/compute_interfaces_info_individual.py |
index eb5a2363475486795225f10ce39ec9eb9620414c..c32e46b414d2bdad53a5bea599025ba40b5e8c99 100755 |
--- a/Source/bindings/scripts/compute_interfaces_info_individual.py |
+++ b/Source/bindings/scripts/compute_interfaces_info_individual.py |
@@ -64,7 +64,8 @@ def parse_options(): |
parser = optparse.OptionParser(usage=usage) |
parser.add_option('--cache-directory', help='cache directory') |
parser.add_option('--idl-files-list', help='file listing IDL files') |
- parser.add_option('--interfaces-info-file', help='output pickle file') |
+ parser.add_option('--interfaces-info-file', help='interface info pickle file') |
+ parser.add_option('--component-info-file', help='component wide info 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() |
@@ -197,8 +198,8 @@ class InterfaceInfoCollector(object): |
else: |
raise Exception('IDL file must contain one interface or dictionary') |
- self.union_types.update( |
- collect_union_types_from_definitions(definitions)) |
+ this_union_types = collect_union_types_from_definitions(definitions) |
+ self.union_types.update(this_union_types) |
extended_attributes = definition.extended_attributes |
implemented_as = extended_attributes.get('ImplementedAs') |
@@ -220,6 +221,7 @@ class InterfaceInfoCollector(object): |
interface_info.update({ |
'extended_attributes': extended_attributes, |
'full_path': full_path, |
+ 'has_union_types': bool(this_union_types), |
'implemented_as': implemented_as, |
'implemented_by_interfaces': left_interfaces, |
'implements_interfaces': right_interfaces, |
@@ -237,7 +239,13 @@ class InterfaceInfoCollector(object): |
return { |
'interfaces_info': self.interfaces_info, |
# Can't pickle defaultdict, convert to dict |
+ # FIXME: this should be included in get_component_info. |
'partial_interface_files': dict(self.partial_interface_files), |
+ } |
+ |
+ def get_component_info_as_dict(self): |
+ """Returns component wide information as a dict.""" |
+ return { |
'union_types': self.union_types, |
} |
@@ -265,7 +273,9 @@ def main(): |
write_pickle_file(options.interfaces_info_file, |
info_collector.get_info_as_dict(), |
options.write_file_only_if_changed) |
- |
+ write_pickle_file(options.component_info_file, |
+ info_collector.get_component_info_as_dict(), |
+ options.write_file_only_if_changed) |
if __name__ == '__main__': |
sys.exit(main()) |