demos: improve CMakeLists

- build pick_place_task as proper library as people (e.g. moveit_benchmark_suite) reuse it
This commit is contained in:
v4hn 2021-09-15 22:17:05 +02:00 committed by Michael Görner
parent 35560d897d
commit 81ec8bb3aa
3 changed files with 38 additions and 27 deletions

View File

@ -1,7 +1,11 @@
cmake_minimum_required(VERSION 3.1.3)
project(moveit_task_constructor_demo)
add_compile_options(-std=c++14)
if(NOT "${CMAKE_CXX_STANDARD}")
set(CMAKE_CXX_STANDARD 14)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
find_package(catkin REQUIRED COMPONENTS
roscpp
@ -16,33 +20,40 @@ catkin_package(
)
include_directories(
include
${catkin_INCLUDE_DIRS}
include
${catkin_INCLUDE_DIRS}
)
add_executable(cartesian src/cartesian.cpp)
target_link_libraries(cartesian ${catkin_LIBRARIES})
add_executable(modular src/modular.cpp)
target_link_libraries(modular ${catkin_LIBRARIES})
add_library(pick_place_task OBJECT src/pick_place_task.cpp)
add_executable(pick_place_demo src/pick_place_demo.cpp $<TARGET_OBJECTS:pick_place_task>)
target_link_libraries(pick_place_demo ${catkin_LIBRARIES})
add_executable(alternative_path_costs src/alternative_path_costs.cpp)
target_link_libraries(alternative_path_costs ${catkin_LIBRARIES})
add_executable(ik_clearance_cost src/ik_clearance_cost.cpp)
target_link_libraries(ik_clearance_cost ${catkin_LIBRARIES})
install(TARGETS cartesian modular pick_place_demo
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
add_library(${PROJECT_NAME}_pick_place_task src/pick_place_task.cpp)
target_link_libraries(${PROJECT_NAME}_pick_place_task ${catkin_LIBRARIES})
add_dependencies(${PROJECT_NAME}_pick_place_task ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
install(TARGETS ${PROJECT_NAME}_pick_place_task
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# declare a demo consisting of a single cpp file
function(demo name)
add_executable(${PROJECT_NAME}_${name} src/${name}.cpp)
add_dependencies(${PROJECT_NAME}_${name} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_${name} ${catkin_LIBRARIES})
set_target_properties(${PROJECT_NAME}_${name} PROPERTIES OUTPUT_NAME ${name} PREFIX "")
install(TARGETS ${PROJECT_NAME}_${name}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
endfunction()
demo(cartesian)
demo(modular)
demo(alternative_path_costs)
demo(ik_clearance_cost)
demo(pick_place_demo)
target_link_libraries(${PROJECT_NAME}_pick_place_demo ${PROJECT_NAME}_pick_place_task)
install(DIRECTORY launch config
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

View File

@ -2,7 +2,7 @@
<package format="2">
<name>moveit_task_constructor_demo</name>
<version>0.0.1</version>
<description>The moveit_task_constructor_demo package</description>
<description>demo tasks illustrating various capabilities of MTC.</description>
<author email="simongold@picknik.ai">simon Goldstein</author>
<author email="henningkayser@picknik.ai">Henning Kayser</author>

View File

@ -6,8 +6,8 @@
if (CATKIN_ENABLE_TESTING)
find_package(rostest REQUIRED)
add_executable(pick_place_test pick_place_test.cpp $<TARGET_OBJECTS:pick_place_task>)
target_link_libraries(pick_place_test ${catkin_LIBRARIES} gtest_main)
add_executable(pick_place_test pick_place_test.cpp)
target_link_libraries(pick_place_test ${PROJECT_NAME}_pick_place_task ${catkin_LIBRARIES} gtest_main)
add_rostest(pick_place.test)
endif()