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..a9097333bbaa5a98b2f4fa1d15a6426265e73887 100755 |
--- a/Source/bindings/scripts/compute_interfaces_info_overall.py |
+++ b/Source/bindings/scripts/compute_interfaces_info_overall.py |
@@ -66,8 +66,14 @@ Current keys are: |
* paths: |
'full_path': path to the IDL file, so can lookup an IDL by interface name |
'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 |
+ 'implemented_interfaces_full_paths': |
+ paths to dependencies caused by implemented (for merging into main) |
+ 'implemented_interfaces_include_paths': |
+ paths for use in C++ #include directives for implemented |
+ 'partial_interfaces_full_paths': |
+ paths to dependencies caused by partial (for merging into main) |
+ 'partial_interfaces_include_paths': |
+ paths for use in C++ #include directives for partial interface |
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 +274,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 |
+ partial_interface_dependencies_full_paths = [] |
+ partial_interface_dependencies_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: |
+ partial_interface_dependencies_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: |
+ partial_interface_dependencies_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, |
+ 'partial_interface_dependencies_full_paths': |
+ partial_interface_dependencies_full_paths, |
+ 'partial_interface_dependencies_include_paths': |
+ partial_interface_dependencies_include_paths, |
}) |
# Clean up temporary private information |