From d09443efd7f6fcbbe81c0f5050b80a0b8bf5bf9f Mon Sep 17 00:00:00 2001
From: Florian Walch <florian.walch@franka.de>
Date: Mon, 9 Oct 2017 13:53:39 +0200
Subject: [PATCH] Add missing install rules

Fixes #3 (GH).
---
 CHANGELOG.md                                  |  1 +
 franka_control/CMakeLists.txt                 | 21 ++++++++
 franka_description/CMakeLists.txt             |  7 +++
 franka_example_controllers/CMakeLists.txt     | 21 +++++++-
 franka_gripper/CMakeLists.txt                 | 17 +++++++
 franka_hw/CMakeLists.txt                      | 10 ++++
 franka_visualization/CMakeLists.txt           | 49 +++++++++++--------
 .../robot_read_settings.yaml                  |  1 -
 .../launch/franka_visualization.launch        |  2 +-
 9 files changed, 105 insertions(+), 24 deletions(-)
 rename franka_visualization/{param => config}/robot_read_settings.yaml (99%)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9bc02a5..4192b01 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
   * Fix dependencies on libfranka
   * Fix RViz config file path in `franka_visualization`
   * Add missing `test_depend` to `franka_hw`
+  * Add missing CMake install rules
 
 ## 0.1.0 - 2017-09-15
 
diff --git a/franka_control/CMakeLists.txt b/franka_control/CMakeLists.txt
index 00952fc..1619f28 100644
--- a/franka_control/CMakeLists.txt
+++ b/franka_control/CMakeLists.txt
@@ -120,6 +120,27 @@ target_include_directories(franka_control_node PUBLIC
   ${catkin_INCLUDE_DIRS}
 )
 
+## Installation
+install(TARGETS franka_state_controller
+                franka_control_services
+                franka_control_node
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+install(DIRECTORY include/${PROJECT_NAME}/
+  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+install(DIRECTORY launch
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(DIRECTORY config
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(FILES franka_controller_plugins.xml
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+
 ## Tools
 file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
 file(GLOB_RECURSE HEADERS
diff --git a/franka_description/CMakeLists.txt b/franka_description/CMakeLists.txt
index 001965b..7282c39 100644
--- a/franka_description/CMakeLists.txt
+++ b/franka_description/CMakeLists.txt
@@ -3,3 +3,10 @@ project(franka_description)
 
 find_package(catkin REQUIRED)
 catkin_package(CATKIN_DEPENDS xacro)
+
+install(DIRECTORY meshes
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(DIRECTORY robots
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
diff --git a/franka_example_controllers/CMakeLists.txt b/franka_example_controllers/CMakeLists.txt
index 68238cc..31f665a 100644
--- a/franka_example_controllers/CMakeLists.txt
+++ b/franka_example_controllers/CMakeLists.txt
@@ -28,7 +28,7 @@ catkin_package(
 
 include_directories(include ${catkin_INCLUDE_DIRS})
 
-add_library(franka_example_controllers 
+add_library(franka_example_controllers
   src/cartesian_pose_example_controller.cpp
   src/cartesian_velocity_example_controller.cpp
   src/joint_position_example_controller.cpp
@@ -45,6 +45,25 @@ add_dependencies(franka_example_controllers
 
 target_link_libraries(franka_example_controllers ${catkin_LIBRARIES})
 
+## Installation
+install(TARGETS franka_example_controllers
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+install(DIRECTORY include/${PROJECT_NAME}/
+  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+install(DIRECTORY launch
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(DIRECTORY config
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(FILES franka_example_controllers_plugin.xml
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+
 ## Tools
 file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
 file(GLOB_RECURSE HEADERS
diff --git a/franka_gripper/CMakeLists.txt b/franka_gripper/CMakeLists.txt
index 19fdf95..58e3677 100644
--- a/franka_gripper/CMakeLists.txt
+++ b/franka_gripper/CMakeLists.txt
@@ -81,6 +81,23 @@ target_include_directories(franka_gripper_node PUBLIC
   include
 )
 
+## Installation
+install(TARGETS franka_gripper
+                franka_gripper_node
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+install(DIRECTORY include/${PROJECT_NAME}/
+  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+install(DIRECTORY launch
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(DIRECTORY config
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+
 ## Tools
 file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
 file(GLOB_RECURSE HEADERS
diff --git a/franka_hw/CMakeLists.txt b/franka_hw/CMakeLists.txt
index 8774cde..3d5c68a 100644
--- a/franka_hw/CMakeLists.txt
+++ b/franka_hw/CMakeLists.txt
@@ -45,6 +45,16 @@ target_include_directories(franka_hw PUBLIC
   include
 )
 
+## Installation
+install(TARGETS franka_hw
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+install(DIRECTORY include/${PROJECT_NAME}/
+  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+
 if(CATKIN_ENABLE_TESTING)
   add_subdirectory(test)
 endif()
diff --git a/franka_visualization/CMakeLists.txt b/franka_visualization/CMakeLists.txt
index 10c8c25..5188fc6 100644
--- a/franka_visualization/CMakeLists.txt
+++ b/franka_visualization/CMakeLists.txt
@@ -15,26 +15,33 @@ find_package(Franka REQUIRED)
 
 catkin_package(CATKIN_DEPENDS sensor_msgs roscpp)
 
-set(EXECUTABLES
-  franka_joint_state_publisher
-)
-
-foreach(executable ${EXECUTABLES})
-  add_executable(${executable}
-    src/${executable}.cpp
-  )
-  add_dependencies(${executable}
-    ${${PROJECT_NAME}_EXPORTED_TARGETS}
-    ${catkin_EXPORTED_TARGETS}
-  )
-  target_link_libraries(${executable}
-    ${catkin_LIBRARIES}
-    Franka::Franka
-  )
-  target_include_directories(${executable} PUBLIC
-    ${catkin_INCLUDE_DIRS}
-  )
-endforeach()
+add_executable(franka_joint_state_publisher
+  src/franka_joint_state_publisher.cpp
+)
+add_dependencies(franka_joint_state_publisher
+  ${${PROJECT_NAME}_EXPORTED_TARGETS}
+  ${catkin_EXPORTED_TARGETS}
+)
+target_link_libraries(franka_joint_state_publisher
+  ${catkin_LIBRARIES}
+  Franka::Franka
+)
+target_include_directories(franka_joint_state_publisher PUBLIC
+  ${catkin_INCLUDE_DIRS}
+)
+
+## Installation
+install(TARGETS franka_joint_state_publisher
+  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+install(DIRECTORY launch
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
+install(DIRECTORY config
+  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
 
 ## Tools
 file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
@@ -46,5 +53,5 @@ include(ClangTools)
 add_format_target(franka_visualization FILES ${SOURCES} ${HEADERS})
 add_tidy_target(franka_visualization
   FILES ${SOURCES}
-  DEPENDS ${EXECUTABLES}
+  DEPENDS franka_joint_state_publisher
 )
diff --git a/franka_visualization/param/robot_read_settings.yaml b/franka_visualization/config/robot_read_settings.yaml
similarity index 99%
rename from franka_visualization/param/robot_read_settings.yaml
rename to franka_visualization/config/robot_read_settings.yaml
index 2c1154d..7bd6f1a 100644
--- a/franka_visualization/param/robot_read_settings.yaml
+++ b/franka_visualization/config/robot_read_settings.yaml
@@ -6,4 +6,3 @@ joint_names:
   - panda_joint5
   - panda_joint6
   - panda_joint7
-
diff --git a/franka_visualization/launch/franka_visualization.launch b/franka_visualization/launch/franka_visualization.launch
index 93ab474..6bad561 100644
--- a/franka_visualization/launch/franka_visualization.launch
+++ b/franka_visualization/launch/franka_visualization.launch
@@ -8,7 +8,7 @@
   <param if="$(arg load_gripper)" name="robot_description" command="$(find xacro)/xacro --inorder $(find franka_description)/robots/panda_arm_hand.urdf.xacro" />
 
   <node name="franka_joint_state_publisher" pkg="franka_visualization" type="franka_joint_state_publisher" output="screen">
-    <rosparam command="load" file="$(find franka_visualization)/param/robot_read_settings.yaml" />
+    <rosparam command="load" file="$(find franka_visualization)/config/robot_read_settings.yaml" />
     <param name="robot_ip" value="$(arg robot_ip)" />
   </node>
 
-- 
GitLab