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