From f4640f8d88c95861898cdbc84c74e9c3afe5e069 Mon Sep 17 00:00:00 2001
From: Sergi Hernandez <shernand@iri103.users.iri.prv>
Date: Fri, 15 Apr 2016 17:34:48 +0200
Subject: [PATCH] Made the built of the arm kinematics library conditional on
 the existence of the KDL library. Set a variable with the path to the darwin
 firmware.

---
 src/CMakeLists.txt | 42 +++++++++++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 173b64e..dffe470 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,3 +1,5 @@
+SET(DARWIN_FW_PATH /home/shernand/humanoids/darwin_stm32_fw)
+
 ADD_SUBDIRECTORY(xml)
 IF(HAVE_XSD)
   ADD_DEFINITIONS(-D_HAVE_XSD)
@@ -7,7 +9,7 @@ ENDIF(HAVE_XSD)
 INCLUDE (${PROJECT_SOURCE_DIR}/FindPkgConfig.cmake)
 
 ## Find KDL
-SET(KDL_INSTALL /opt/ros/hydro)
+SET(KDL_INSTALL /opt/ros/indigo)
 INCLUDE (${PROJECT_SOURCE_DIR}/FindKDL.cmake)
 
 # driver source files
@@ -15,10 +17,12 @@ SET(robot_sources darwin_robot.cpp darwin_robot_exceptions.cpp)
 # application header files
 SET(robot_headers darwin_robot.h darwin_robot_exceptions.h)
 
-# driver source files
-SET(kin_sources darwin_arm_kinematics.cpp darwin_robot_exceptions.cpp)
-# application header files
-SET(kin_headers darwin_arm_kinematics.h darwin_robot_exceptions.h)
+IF(KDL_FOUND)
+  # driver source files
+  SET(kin_sources darwin_arm_kinematics.cpp darwin_robot_exceptions.cpp)
+  # application header files
+  SET(kin_headers darwin_arm_kinematics.h darwin_robot_exceptions.h)
+ENDIF(KDL_FOUND)
 
 # locate the necessary dependencies
 FIND_PACKAGE(iriutils REQUIRED)
@@ -27,7 +31,7 @@ FIND_PACKAGE(dynamixel REQUIRED)
 INCLUDE_DIRECTORIES(.)
 INCLUDE_DIRECTORIES(${iriutils_INCLUDE_DIR})
 INCLUDE_DIRECTORIES(${dynamixel_INCLUDE_DIR})
-INCLUDE_DIRECTORIES(../../../stm32_firmware/include/)
+INCLUDE_DIRECTORIES(${DARWIN_FW_PATH}/include)
 # create the shared library
 ADD_LIBRARY(darwin_robot SHARED ${robot_sources} ${XSD_SOURCES})
 ADD_DEPENDENCIES(darwin_robot xsd_files_gen)
@@ -36,21 +40,29 @@ TARGET_LINK_LIBRARIES(darwin_robot ${iriutils_LIBRARY})
 TARGET_LINK_LIBRARIES(darwin_robot ${dynamixel_LIBRARY})
 TARGET_LINK_LIBRARIES(darwin_robot ${XSD_LIBRARY})
 
-ADD_LIBRARY(darwin_arm_kinematics SHARED ${kin_sources} ${XSD_SOURCES})
-ADD_DEPENDENCIES(darwin_arm_kinematics xsd_files_gen)
-# link necessary libraries
-TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${iriutils_LIBRARY})
-TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${XSD_LIBRARY})
-TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${KDL_LIBS})
+IF(KDL_FOUND)
+  ADD_LIBRARY(darwin_arm_kinematics SHARED ${kin_sources} ${XSD_SOURCES})
+  ADD_DEPENDENCIES(darwin_arm_kinematics xsd_files_gen)
+  # link necessary libraries
+  TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${iriutils_LIBRARY})
+  TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${XSD_LIBRARY})
+  TARGET_LINK_LIBRARIES(darwin_arm_kinematics ${KDL_LIBS})
+ENDIF(KDL_FOUND)
 
-SET_SOURCE_FILES_PROPERTIES(${XSD_SOURCES} PROPERTIES GENERATED 1)
 SET_SOURCE_FILES_PROPERTIES(${XSD_SOURCES} PROPERTIES GENERATED 1)
 
-INSTALL(TARGETS darwin_robot darwin_arm_kinematics
+INSTALL(TARGETS darwin_robot 
         RUNTIME DESTINATION bin
         LIBRARY DESTINATION lib/iridrivers
         ARCHIVE DESTINATION lib/iridrivers)
-INSTALL(FILES ${robot_headers} ${kin_headers} DESTINATION include/iridrivers)
+INSTALL(FILES ${robot_headers} DESTINATION include/iridrivers)
+IF(KDL_FOUND)
+  INSTALL(FILES ${kin_heders} DESTINATION include/iridrivers)
+  INSTALL(TARGETS darwin_arm_kinematics
+          RUNTIME DESTINATION bin
+          LIBRARY DESTINATION lib/iridrivers
+          ARCHIVE DESTINATION lib/iridrivers)
+ENDIF(KDL_FOUND)
 INSTALL(FILES ../Finddarwin_robot.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
 INSTALL(FILES ../Finddarwin_arm_kinematics.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
 ADD_SUBDIRECTORY(examples)
-- 
GitLab