From 36bc575bacee092ccbad3b782e269cafa1d80d26 Mon Sep 17 00:00:00 2001
From: fherrero <fherrero@iri.upc.edu>
Date: Fri, 10 Jul 2020 13:03:01 +0200
Subject: [PATCH] Add argument to add_cmake_dependencies function, to disable
 adding CMakeLists dependency to non existing target *_generate_messages_cpp
 when package does not contain messages. For example, tf2_ros, and Image
 packages (cv_bridge, camera_info_manager, image_transport)

---
 libraries/create_publisher.sh       |  6 +++---
 libraries/create_subscriber.sh      |  6 +++---
 libraries/create_tf2_broadcaster.sh |  2 +-
 libraries/create_tf2_listener.sh    |  2 +-
 libraries/scripts_library.sh        | 11 ++++++++---
 5 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/libraries/create_publisher.sh b/libraries/create_publisher.sh
index 437972a..3c261be 100755
--- a/libraries/create_publisher.sh
+++ b/libraries/create_publisher.sh
@@ -395,9 +395,9 @@ function create_publisher
   add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "${msg_pkg}"
   if [[ "${msg_file}" = "Image" ]]
   then
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "camera_info_manager"
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "image_transport"
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "cv_bridge"
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "camera_info_manager" false
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "image_transport" false
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "cv_bridge" false
   fi
 
 ################################################################################
diff --git a/libraries/create_subscriber.sh b/libraries/create_subscriber.sh
index 1ebb5ae..b01697c 100755
--- a/libraries/create_subscriber.sh
+++ b/libraries/create_subscriber.sh
@@ -401,9 +401,9 @@ function create_subscriber
   add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "${msg_pkg}"
   if [[ "${msg_file}" = "Image" ]]
   then
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "camera_info_manager"
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "image_transport"
-    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "cv_bridge"
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "camera_info_manager" false
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "image_transport" false
+    add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "cv_bridge" false
   fi
 
 ################################################################################
diff --git a/libraries/create_tf2_broadcaster.sh b/libraries/create_tf2_broadcaster.sh
index d8189af..15b7e72 100644
--- a/libraries/create_tf2_broadcaster.sh
+++ b/libraries/create_tf2_broadcaster.sh
@@ -185,7 +185,7 @@ function create_tf2_broadcaster
 ################################################################################
 # modify the CMakeLists.txt file
 
-  add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "tf2_ros"
+  add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "tf2_ros" false
 
 ################################################################################
 #compile
diff --git a/libraries/create_tf2_listener.sh b/libraries/create_tf2_listener.sh
index 3306429..58ee0f5 100644
--- a/libraries/create_tf2_listener.sh
+++ b/libraries/create_tf2_listener.sh
@@ -254,7 +254,7 @@ function create_tf2_listener
 ################################################################################
 # modify the CMakeLists.txt file
 
-  add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "tf2_ros"
+  add_cmake_dependencies "${driver_alg}" "${ros_pkg}" "tf2_ros" false
 
 ################################################################################
 #compile
diff --git a/libraries/scripts_library.sh b/libraries/scripts_library.sh
index b071e54..5193ba3 100755
--- a/libraries/scripts_library.sh
+++ b/libraries/scripts_library.sh
@@ -695,11 +695,13 @@ function add_cmake_dependencies
   local driver_alg=$1
   local ros_pkg=$2
   local new_pkg=$3
+  local is_msg_pkg=${4:-true}
   local line=""
   local old_line=""
   local comment=""
   local old_string=""
   local new_string=""
+  
 
   if [[ "${new_pkg}" != "${ros_pkg}" ]]
   then
@@ -719,9 +721,12 @@ function add_cmake_dependencies
       sed -i -e "/CATKIN_DEPENDS/ s/${old_string}/${new_string}/g" "CMakeLists.txt"
     fi
 
-    line="add_dependencies(\${PROJECT_NAME} ${new_pkg}_generate_messages_cpp)"
-    comment="add_dependencies(\${PROJECT_NAME} <msg_package_name>_generate_messages_cpp)"
-    add_line_to_file "${line}" "${comment}" "CMakeLists.txt"
+    if [[ "${is_msg_pkg}" == true ]]
+    then
+      line="add_dependencies(\${PROJECT_NAME} ${new_pkg}_generate_messages_cpp)"
+      comment="add_dependencies(\${PROJECT_NAME} <msg_package_name>_generate_messages_cpp)"
+      add_line_to_file "${line}" "${comment}" "CMakeLists.txt"
+    fi
   fi
 }
 
-- 
GitLab