diff --git a/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependencies-extras.cmake.in b/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependencies-extras.cmake.in index 28d93f4d..bb8d53b3 100644 --- a/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependencies-extras.cmake.in +++ b/ament_cmake_export_dependencies/cmake/ament_cmake_export_dependencies-extras.cmake.in @@ -5,8 +5,14 @@ set(_exported_dependencies "@_AMENT_CMAKE_EXPORT_DEPENDENCIES@") # find_package() all dependencies # and append their DEFINITIONS INCLUDE_DIRS and LIBRARIES variables # to @PROJECT_NAME@_DEFINITIONS , @PROJECT_NAME@_INCLUDE_DIRS and -# @PROJECT_NAME@_LIBRARIES +# @PROJECT_NAME@_LIBRARIES. +# Additionally collect the direct dependency names in +# @PROJECT_NAME@_DEPENDENCIES as well as the recursive dependency names +# in @PROJECT_NAME@_RECURSIVE_DEPENDENCIES. if(NOT "${_exported_dependencies} " STREQUAL " ") + find_package(ament_cmake_core QUIET REQUIRED) + set(@PROJECT_NAME@_DEPENDENCIES ${_exported_dependencies}) + set(@PROJECT_NAME@_RECURSIVE_DEPENDENCIES ${_exported_dependencies}) foreach(_dep ${_exported_dependencies}) if(NOT ${_dep}_FOUND) find_package("${_dep}" QUIET REQUIRED) @@ -20,5 +26,8 @@ if(NOT "${_exported_dependencies} " STREQUAL " ") if(${_dep}_LIBRARIES) list(APPEND @PROJECT_NAME@_LIBRARIES "${${_dep}_LIBRARIES}") endif() + if(${_dep}_RECURSIVE_DEPENDENCIES) + list_append_unique(@PROJECT_NAME@_RECURSIVE_DEPENDENCIES "${${_dep}_RECURSIVE_DEPENDENCIES}") + endif() endforeach() endif()