| 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
|
|
|