From e0d3c4f64ec51e1affd20f23f405745890be9689 Mon Sep 17 00:00:00 2001
From: Ken Tossell <ken@tossell.net>
Date: Thu, 27 Jun 2013 14:56:03 -0400
Subject: [PATCH] fixed dependencies and nodelet export

---
 libuvc_camera/CMakeLists.txt    | 35 ++++++++++++++++++++++-----------
 libuvc_camera/cfg/UVCCamera.cfg |  2 +-
 libuvc_camera/package.xml       | 19 ++++++++++++++++--
 3 files changed, 41 insertions(+), 15 deletions(-)

diff --git a/libuvc_camera/CMakeLists.txt b/libuvc_camera/CMakeLists.txt
index dcabded..d8f2b88 100644
--- a/libuvc_camera/CMakeLists.txt
+++ b/libuvc_camera/CMakeLists.txt
@@ -2,27 +2,38 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(libuvc_camera)
 # Load catkin and all dependencies required for this package
-find_package(catkin REQUIRED COMPONENTS libuvc)
+find_package(catkin REQUIRED COMPONENTS roscpp camera_info_manager driver_base dynamic_reconfigure image_transport nodelet sensor_msgs)
+
+generate_dynamic_reconfigure_options(cfg/UVCCamera.cfg)
 
 #find_package(libuvc REQUIRED)
-catkin_package(DEPENDS roscpp camera_info_manager driver_base dynamic_reconfigure image_transport nodelet sensor_msgs libuvc
-    INCLUDE_DIRS include
-    LIBRARIES ${PROJECT_NAME})
+catkin_package(
+  CATKIN_DEPENDS
+    roscpp
+    camera_info_manager
+    driver_base
+    dynamic_reconfigure
+    image_transport
+    nodelet
+    sensor_msgs
+  LIBRARIES libuvc_camera_nodelet
+  )
 
 include_directories(include ${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS})
 link_directories(${catkin_LINK_DIRS})
 
-find_package(catkin REQUIRED dynamic_reconfigure)
-generate_dynamic_reconfigure_options(cfg/UVCCamera.cfg)
-
 find_package(Boost REQUIRED COMPONENTS thread)
 include_directories(${Boost_INCLUDE_DIRS})
 
-#find_package(libuvc REQUIRED)
-include_directories(${libuvc_INCLUDE_DIRS})
-
 add_executable(camera_node src/main.cpp src/camera_driver.cpp)
-target_link_libraries(camera_node uvc ${Boost_LIBRARIES})
+target_link_libraries(camera_node uvc ${Boost_LIBRARIES} ${catkin_LIBRARIES})
 
 add_library(libuvc_camera_nodelet src/nodelet.cpp src/camera_driver.cpp)
-target_link_libraries(libuvc_camera_nodelet uvc ${Boost_LIBRARIES})
+add_dependencies(libuvc_camera_nodelet ${libuvc_camera_EXPORTED_TARGETS})
+target_link_libraries(libuvc_camera_nodelet uvc ${Boost_LIBRARIES} ${catkin_LIBRARIES})
+
+install(TARGETS camera_node libuvc_camera_nodelet
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+  )
\ No newline at end of file
diff --git a/libuvc_camera/cfg/UVCCamera.cfg b/libuvc_camera/cfg/UVCCamera.cfg
index d0a7518..31271bd 100755
--- a/libuvc_camera/cfg/UVCCamera.cfg
+++ b/libuvc_camera/cfg/UVCCamera.cfg
@@ -4,7 +4,7 @@
 PACKAGE='libuvc_camera'
 import roslib; roslib.load_manifest(PACKAGE)
 
-from dynamic_reconfigure.parameter_generator import *
+from dynamic_reconfigure.parameter_generator_catkin import *
 from driver_base.msg import SensorLevels
 
 gen = ParameterGenerator()
diff --git a/libuvc_camera/package.xml b/libuvc_camera/package.xml
index ddde2eb..85713ed 100644
--- a/libuvc_camera/package.xml
+++ b/libuvc_camera/package.xml
@@ -33,16 +33,30 @@
   <!-- Examples: -->
   <!-- Use build_depend for packages you need at compile time: -->
   <!--   <build_depend>message_generation</build_depend> -->
+  <build_depend>roscpp</build_depend>
+  <build_depend>camera_info_manager</build_depend>
+  <build_depend>driver_base</build_depend>
+  <build_depend>dynamic_reconfigure</build_depend>
   <build_depend>image_transport</build_depend>
+  <build_depend>libuvc</build_depend>
+  <build_depend>nodelet</build_depend>
+  <build_depend>sensor_msgs</build_depend>
   <!-- Use buildtool_depend for build tool packages: -->
   <!--   <buildtool_depend>catkin</buildtool_depend> -->
+  <buildtool_depend>catkin</buildtool_depend>
   <!-- Use run_depend for packages you need at runtime: -->
   <!--   <run_depend>message_runtime</run_depend> -->
-  <run_depend>libuvc</run_depend>
+  <run_depend>roscpp</run_depend>
+  <run_depend>camera_info_manager</run_depend>
+  <run_depend>driver_base</run_depend>
+  <run_depend>dynamic_reconfigure</run_depend>
   <run_depend>image_transport</run_depend>
+  <run_depend>libuvc</run_depend>
+  <run_depend>nodelet</run_depend>
+  <run_depend>sensor_msgs</run_depend>
   <!-- Use test_depend for packages you need only for testing: -->
   <!--   <test_depend>gtest</test_depend> -->
-  <buildtool_depend>catkin</buildtool_depend>
+
 
 
   <!-- The export tag contains other, unspecified, tags -->
@@ -51,6 +65,7 @@
     <!-- <metapackage/> -->
 
     <!-- Other tools can request additional information be placed here -->
+    <nodelet plugin="${prefix}/libuvc_camera_nodelet.xml" />
 
   </export>
 </package>
-- 
GitLab