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': |
tasak
2014/10/17 07:38:17
Need to fix this comment.
|
+ paths to dependencies caused by implemented (for merging into main) |
+ 'implemented_interfaces_include_paths': |
tasak
2014/10/17 07:38:17
Ditto.
|
+ paths for use in C++ #include directives for implemented |
+ 'partial_interfaces_full_paths': |
+ paths to dependencies caused by partial (for merging into main) |
haraken
2014/10/16 04:24:07
partial => partial interfaces
tasak
2014/10/17 07:38:17
Done.
|
+ 'partial_interfaces_include_paths': |
+ paths for use in C++ #include directives for partial interface |
haraken
2014/10/16 04:24:07
partial interface => partial interfaces
tasak
2014/10/17 07:38:17
Done.
|
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) |
haraken
2014/10/16 04:24:07
This naming is a bit confusing because some partia
tasak
2014/10/17 07:38:17
Done.
|
+ |
+ 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) |
haraken
2014/10/16 04:24:07
Ditto.
- include_paths
- other_component_include_
tasak
2014/10/17 07:38:17
Done.
|
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 |