-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
134 lines (114 loc) · 3.44 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 14)
project(lego_manipulation VERSION 1.0.0 LANGUAGES CXX)
# Option to enable RealSense support
option(ENABLE_REALSENSE "Enable RealSense support" OFF)
# /* -------------------------------------------------------------------------- */
# /* Build Properties */
# /* -------------------------------------------------------------------------- */
add_compile_options(-std=c++11)
add_definitions(-D_OS_UNIX)
# /* -------------------------------------------------------------------------- */
# /* Find Package */
# /* -------------------------------------------------------------------------- */
find_package(Eigen3 3.3.7 REQUIRED)
find_package(OpenCV REQUIRED)
if(ENABLE_REALSENSE)
find_package(realsense2 REQUIRED)
endif()
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
image_transport
cv_bridge
sensor_msgs
message_generation
# yk_api
)
catkin_python_setup()
include_directories(
include
${OpenCV_INCLUDE_DIRS}
${catkin_INCLUDE_DIRS})
# /* -------------------------------------------------------------------------- */
# /* Create Library */
# /* -------------------------------------------------------------------------- */
file(GLOB src_files src/*.cpp
src/Utils/*.cpp
src/FTS/*.cpp)
add_library(${PROJECT_NAME} SHARED ${src_files})
target_link_libraries(${PROJECT_NAME}
Eigen3::Eigen
${OpenCV_LIBRARIES}
${catkin_LIBRARIES}
jsoncpp
)
if(ENABLE_REALSENSE)
target_link_libraries(${PROJECT_NAME} realsense2)
endif()
target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
PRIVATE src)
set_target_properties(${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1)
add_service_files(
FILES
SetPose.srv
GetPose.srv
)
generate_messages(
DEPENDENCIES
geometry_msgs
std_msgs
)
catkin_package(
CATKIN_DEPENDS
message_runtime
# yk_api
)
# /* -------------------------------------------------------------------------- */
# /* Testing Executables */
# /* -------------------------------------------------------------------------- */
if(ENABLE_REALSENSE)
add_executable(${PROJECT_NAME}_realsense
src/ros_nodes/realsense_node.cpp
)
target_link_libraries(${PROJECT_NAME}_realsense
${PROJECT_NAME}
${catkin_LIBRARIES}
)
endif()
add_executable(${PROJECT_NAME}_fts
src/ros_nodes/fts_node.cpp
)
target_link_libraries(${PROJECT_NAME}_fts
${PROJECT_NAME}
${catkin_LIBRARIES}
)
add_executable(${PROJECT_NAME}_task_planning
src/ros_nodes/lego_task_planning_node.cpp
)
add_dependencies(${PROJECT_NAME}_task_planning
${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS}
)
target_link_libraries(${PROJECT_NAME}_task_planning
${PROJECT_NAME}
${catkin_LIBRARIES}
)
add_executable(${PROJECT_NAME}_dual_arm
src/ros_nodes/dual_arm_lego_task_planning_node.cpp
)
add_dependencies(${PROJECT_NAME}_dual_arm
${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS}
)
target_link_libraries(${PROJECT_NAME}_dual_arm
${PROJECT_NAME}
${catkin_LIBRARIES}
)
install(DIRECTORY launch
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})