Skip to content

Commit a4dc5b5

Browse files
committed
Consider include directories of all dependencies recursively
1 parent ca8c26e commit a4dc5b5

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,20 +127,16 @@ function(ament_target_dependencies target)
127127
if(NOT ARG_INTERFACE)
128128
target_compile_definitions(${target}
129129
${required_keyword} ${definitions})
130-
# the interface include dirs must be ordered
131-
set(interface_include_dirs)
132-
foreach(interface ${interfaces})
133-
get_target_property(_include_dirs ${interface} INTERFACE_INCLUDE_DIRECTORIES)
134-
if(_include_dirs)
135-
list_append_unique(interface_include_dirs ${_include_dirs})
136-
endif()
137-
endforeach()
138-
ament_include_directories_order(ordered_interface_include_dirs ${interface_include_dirs})
139-
# the interface include dirs are used privately to ensure proper order
140-
# and the interfaces cover the public case
141-
target_include_directories(${target} ${system_keyword}
142-
PRIVATE ${ordered_interface_include_dirs})
143130
endif()
131+
132+
# fetch include directories of all transitive dependencies (already sorted)
133+
ament_get_recursive_properties(interface_include_dirs_ordered _ ${interfaces})
134+
135+
# the interface include dirs are used privately - just to ensure proper ordering
136+
# the interfaces cover the public case
137+
target_include_directories(${target} ${system_keyword}
138+
PRIVATE ${interface_include_dirs_ordered})
139+
144140
ament_include_directories_order(ordered_include_dirs ${include_dirs})
145141
target_link_libraries(${target}
146142
${optional_keyword} ${interfaces})

0 commit comments

Comments
 (0)