From 5b0030a2f80245836bbddfdfbea970ce7e75f31b Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Fri, 14 Mar 2025 23:58:02 +0000 Subject: [PATCH 1/2] Deprecate ament_target_dependencies() Signed-off-by: Shane Loretz --- .../cmake/ament_target_dependencies.cmake | 26 +++++++++++++++++++ ament_cmake_target_dependencies/package.xml | 3 +++ 2 files changed, 29 insertions(+) diff --git a/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake b/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake index 946ebcc6..528851c2 100644 --- a/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake +++ b/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake @@ -67,6 +67,32 @@ function(ament_target_dependencies target) endif() set(optional_keyword PUBLIC) endif() + + # Collect targets to use in deprecation warning + set(upstream_targets_for_deprecation_warning "") + foreach(package_name ${ARG_UNPARSED_ARGUMENTS}) + foreach(_target IN LISTS ${package_name}_TARGETS) + if(TARGET ${_target}) + if(_target MATCHES "(.+)::.+__rosidl_.+") + message(STATUS "Matches: ${_target}") + # suggest ${package_name_TARGETS} for message packages + list_append_unique(upstream_targets_for_deprecation_warning "\${${CMAKE_MATCH_1}_TARGETS}") + else() + message(STATUS "Does not match: ${_target}") + list_append_unique(upstream_targets_for_deprecation_warning ${_target}) + endif() + endif() + endforeach() + endforeach() + list(SORT upstream_targets_for_deprecation_warning) + list(JOIN upstream_targets_for_deprecation_warning "\n " upstream_targets_for_deprecation_warning) + message(DEPRECATION "ament_target_dependencies() is deprecated. " + "Use target_link_libraries() with modern CMake targets instead. " + "Try replacing this call with:\n" + " target_link_libraries(${target} ${required_keyword}\n" + " ${upstream_targets_for_deprecation_warning}\n" + " )\n") + set(definitions "") set(include_dirs "") set(interfaces "") diff --git a/ament_cmake_target_dependencies/package.xml b/ament_cmake_target_dependencies/package.xml index 24bee024..142c24ed 100644 --- a/ament_cmake_target_dependencies/package.xml +++ b/ament_cmake_target_dependencies/package.xml @@ -20,5 +20,8 @@ ament_cmake + + This package has been deprecated in favor of using target_link_libraries() with modern CMake targets. + From 7761d1a9c0265254ade69752cf3041b692c62724 Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Tue, 18 Mar 2025 23:06:48 +0000 Subject: [PATCH 2/2] Don't deprecate package yet, and remove debug logs Signed-off-by: Shane Loretz --- .../cmake/ament_target_dependencies.cmake | 2 -- ament_cmake_target_dependencies/package.xml | 3 --- 2 files changed, 5 deletions(-) diff --git a/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake b/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake index 528851c2..093b0c94 100644 --- a/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake +++ b/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake @@ -74,11 +74,9 @@ function(ament_target_dependencies target) foreach(_target IN LISTS ${package_name}_TARGETS) if(TARGET ${_target}) if(_target MATCHES "(.+)::.+__rosidl_.+") - message(STATUS "Matches: ${_target}") # suggest ${package_name_TARGETS} for message packages list_append_unique(upstream_targets_for_deprecation_warning "\${${CMAKE_MATCH_1}_TARGETS}") else() - message(STATUS "Does not match: ${_target}") list_append_unique(upstream_targets_for_deprecation_warning ${_target}) endif() endif() diff --git a/ament_cmake_target_dependencies/package.xml b/ament_cmake_target_dependencies/package.xml index 142c24ed..24bee024 100644 --- a/ament_cmake_target_dependencies/package.xml +++ b/ament_cmake_target_dependencies/package.xml @@ -20,8 +20,5 @@ ament_cmake - - This package has been deprecated in favor of using target_link_libraries() with modern CMake targets. -