-
-
Notifications
You must be signed in to change notification settings - Fork 12
/
CMakeLists.txt
153 lines (132 loc) · 4.03 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
cmake_minimum_required(VERSION 2.8.3)
project(roboteq_control)
## Add support for C++11, supported in ROS Kinetic and newer
add_definitions(-std=c++11)
## Find catkin macros and librariess
find_package(catkin REQUIRED
COMPONENTS
roscpp
genmsg
dynamic_reconfigure
serial
joint_limits_interface
controller_manager
diagnostic_updater
hardware_interface
std_msgs
urdf
)
## System dependencies are found with CMake's conventions
find_package(Boost REQUIRED
COMPONENTS
chrono
system
thread
)
################################################
## Declare ROS dynamic reconfigure parameters ##
################################################
## Generate messages in the 'msg' folder
add_message_files(
FILES
ControlStatus.msg
MotorStatus.msg
Peripheral.msg
)
## Generate services in the 'srv' folder
add_service_files(
FILES
Service.srv
)
# dynamic reconfigure
generate_dynamic_reconfigure_options(
cfg/RoboteqController.cfg
cfg/RoboteqParameter.cfg
cfg/RoboteqEncoder.cfg
cfg/RoboteqPIDtype.cfg
cfg/RoboteqPID.cfg
cfg/RoboteqAnalogInput.cfg
cfg/RoboteqPulseInput.cfg
)
## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)
###################################
## catkin specific configuration ##
###################################
catkin_package(
INCLUDE_DIRS
include
CATKIN_DEPENDS
roscpp
dynamic_reconfigure
serial
joint_limits_interface
controller_manager
diagnostic_updater
hardware_interface
DEPENDS
Boost
)
###########
## Build ##
###########
## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(
include
${Boost_INCLUDE_DIRS}
${catkin_INCLUDE_DIRS}
)
set(roboteq_control_SRC
src/roboteq_control.cpp
src/roboteq/serial_controller.cpp
src/roboteq/roboteq.cpp
src/roboteq/motor.cpp
src/configurator/motor_param.cpp
src/configurator/motor_pid.cpp
src/configurator/gpio_analog.cpp
src/configurator/gpio_pulse.cpp
src/configurator/gpio_encoder.cpp
)
# Declare a cpp executable
add_executable(${PROJECT_NAME}_node ${roboteq_control_SRC})
add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS})
target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBRARIES} ${Boost_LIBRARIES})
set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME driver_node PREFIX "")
## Declare a cpp executable
#add_executable(roboteq_node ${roboteq_control_SRC})
#target_link_libraries(roboteq_node ${catkin_LIBRARIES} ${Boost_LIBRARIES})
#add_dependencies(roboteq_node ${${PROJECT_NAME}_EXPORTED_TARGETS})
#############
## Install ##
#############
# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
# Mark executables and/or libraries for installation
install(TARGETS ${PROJECT_NAME}_node
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# Mark cpp header files for installation
install(DIRECTORY include/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h"
PATTERN ".git" EXCLUDE
)
## Mark other files for installation (e.g. launch and bag files, etc.)
# install(FILES
# # myfile1
# # myfile2
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
# )
#############
## Testing ##
#############
## Add gtest based cpp test target and link libraries
# catkin_add_gtest(${PROJECT_NAME}-test test/test_roboteq_control.cpp)
# if(TARGET ${PROJECT_NAME}-test)
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
# endif()
## Add folders to be run by python nosetests
# catkin_add_nosetests(test)