Index: Source/bindings/scripts/aggregate_generated_bindings.py |
diff --git a/Source/bindings/scripts/aggregate_generated_bindings.py b/Source/bindings/scripts/aggregate_generated_bindings.py |
index 5efb42c9ea0edd46e2750bf8e03aa6655672e3ae..a8d40c41d9a2eebb064f442b7baa2bce9621e135 100755 |
--- a/Source/bindings/scripts/aggregate_generated_bindings.py |
+++ b/Source/bindings/scripts/aggregate_generated_bindings.py |
@@ -53,7 +53,7 @@ import os |
import re |
import sys |
-from utilities import idl_filename_to_interface_name, read_idl_files_list_from_file |
+from utilities import idl_filename_to_component, idl_filename_to_interface_name, read_idl_files_list_from_file |
# A regexp for finding Conditional attributes in interface definitions. |
CONDITIONAL_PATTERN = re.compile( |
@@ -135,7 +135,7 @@ def extract_meta_data(file_paths): |
return meta_data_list |
-def generate_content(component_dir, files_meta_data_this_partition): |
+def generate_content(component_dir, aggregate_partial_interfaces, files_meta_data_this_partition): |
# Add fixed content. |
output = [COPYRIGHT_TEMPLATE, |
'#define NO_IMPLICIT_ATOMICSTRING\n\n'] |
@@ -152,8 +152,13 @@ def generate_content(component_dir, files_meta_data_this_partition): |
output.append('\n#if ENABLE(%s)\n' % conditional) |
prev_conditional = conditional |
- output.append('#include "bindings/%s/v8/V8%s.cpp"\n' % |
- (component_dir, meta_data['name'])) |
+ if aggregate_partial_interfaces: |
+ cpp_filename = 'V8%sPartial.cpp' % meta_data['name'] |
+ else: |
+ cpp_filename = 'V8%s.cpp' % meta_data['name'] |
+ |
+ output.append('#include "bindings/%s/v8/%s"\n' % |
+ (component_dir, cpp_filename)) |
if prev_conditional: |
output.append('#endif\n') |
@@ -179,6 +184,12 @@ def main(args): |
output_file_names = args[in_out_break_index + 1:] |
idl_file_names = read_idl_files_list_from_file(input_file_name) |
+ components = set([idl_filename_to_component(filename) |
+ for filename in idl_file_names]) |
+ if len(components) != 1: |
+ raise Exception('Cannot aggregate generated codes in different components') |
+ aggregate_partial_interfaces = component_dir not in components |
+ |
files_meta_data = extract_meta_data(idl_file_names) |
total_partitions = len(output_file_names) |
for partition, file_name in enumerate(output_file_names): |
@@ -186,6 +197,7 @@ def main(args): |
meta_data for meta_data in files_meta_data |
if hash(meta_data['name']) % total_partitions == partition] |
file_contents = generate_content(component_dir, |
+ aggregate_partial_interfaces, |
files_meta_data_this_partition) |
write_content(file_contents, file_name) |