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

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

Issue 618373003: [bindings] partial interfaces should not violate componentization (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed patch conflict Created 6 years, 2 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/scripts/compute_interfaces_info_overall.py
diff --git a/Source/bindings/scripts/compute_interfaces_info_overall.py b/Source/bindings/scripts/compute_interfaces_info_overall.py
index 6e311211ae92b78a02160b5ce58392bcc0f48f64..912d8db4545e7c7aa6291148f9dc266d0250832b 100755
--- a/Source/bindings/scripts/compute_interfaces_info_overall.py
+++ b/Source/bindings/scripts/compute_interfaces_info_overall.py
@@ -68,6 +68,11 @@ Current keys are:
'include_path': path for use in C++ #include directives
'dependencies_full_paths': paths to dependencies (for merging into main)
'dependencies_include_paths': paths for use in C++ #include directives
+ 'dependencies_other_component_full_paths':
+ paths to dependencies (cannot merge because of other component)
+ 'dependencies_other_component_include_paths':
+ paths for use in C++ #include directives because of dependencies in
+ other component
Note that all of these are stable information, unlikely to change without
moving or deleting files (hence requiring a full rebuild anyway) or significant
@@ -268,13 +273,36 @@ def compute_interfaces_info_overall(info_individuals):
for implemented_interface_info in implemented_interfaces_info:
if (implemented_interface_info['is_legacy_treat_as_partial_interface'] and
implemented_interface_info['include_path']):
- implemented_interfaces_include_paths.append(implemented_interface_info['include_path'])
+ implemented_interfaces_include_paths.append(
+ implemented_interface_info['include_path'])
+
+ dependencies_full_paths = implemented_interfaces_full_paths
+ dependencies_include_paths = implemented_interfaces_include_paths
+ dependencies_other_component_full_paths = []
+ dependencies_other_component_include_paths = []
+
+ component = idl_filename_to_component(interface_info['full_path'])
+ for full_path in partial_interfaces_full_paths:
+ partial_interface_component = idl_filename_to_component(full_path)
+ if component == partial_interface_component:
+ dependencies_full_paths.append(full_path)
+ else:
+ dependencies_other_component_full_paths.append(full_path)
+
+ for include_path in partial_interfaces_include_paths:
+ partial_interface_component = idl_filename_to_component(include_path)
+ if component == partial_interface_component:
+ dependencies_include_paths.append(include_path)
+ else:
+ dependencies_other_component_include_paths.append(include_path)
interface_info.update({
- 'dependencies_full_paths': (partial_interfaces_full_paths +
- implemented_interfaces_full_paths),
- 'dependencies_include_paths': (partial_interfaces_include_paths +
- implemented_interfaces_include_paths),
+ 'dependencies_full_paths': dependencies_full_paths,
+ 'dependencies_include_paths': dependencies_include_paths,
+ 'dependencies_other_component_full_paths':
+ dependencies_other_component_full_paths,
+ 'dependencies_other_component_include_paths':
+ dependencies_other_component_include_paths,
})
# Clean up temporary private information
« no previous file with comments | « Source/bindings/scripts/code_generator_v8.py ('k') | Source/bindings/scripts/generate_init_partial_interfaces.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698