8
8
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
9
9
endif ()
10
10
11
- set (CMAKE_POSITION_INDEPENDENT_CODE ON )
11
+ if (MSVC )
12
+ add_definitions (-D_CRT_SECURE_NO_WARNINGS )
13
+ endif ()
12
14
15
+ set (CMAKE_POSITION_INDEPENDENT_CODE ON )
13
16
14
17
set (CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR} /cmake" )
15
18
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH} " )
16
19
17
20
option (BUILD_EXAMPLES "Build tutorials and examples" ON )
18
21
option (BUILD_UNIT_TESTS "Build the unit tests" ON )
22
+ option (BUILD_TOOLS "Build commandline tools" ON )
19
23
20
24
#############################################################
21
25
# Find packages
22
26
find_package (Threads REQUIRED )
23
27
find_package (ZMQ )
24
28
25
- list (APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} )
29
+ list (APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES
30
+ ${CMAKE_THREAD_LIBS_INIT}
31
+ ${CMAKE_DL_LIBS} )
26
32
27
33
if ( ZMQ_FOUND )
28
34
message (STATUS "ZeroMQ found." )
@@ -35,58 +41,83 @@ endif()
35
41
36
42
set (BEHAVIOR_TREE_LIBRARY ${PROJECT_NAME} )
37
43
44
+
38
45
# Update the policy setting to avoid an error when loading the ament_cmake package
39
46
# at the current cmake version level
40
47
if (POLICY CMP0057 )
41
- cmake_policy (SET CMP0057 NEW )
48
+ cmake_policy (SET CMP0057 NEW )
42
49
endif ()
43
50
44
51
find_package (ament_cmake QUIET )
45
52
46
53
if ( ament_cmake_FOUND )
47
- find_package ( ament_cmake_gtest REQUIRED )
54
+ # Not adding -DUSING_ROS since xml_parsing.cpp hasn't been ported to ROS2
48
55
49
- # Not adding -DUSING_ROS since xml_parsing.cpp hasn't been ported to ROS2
56
+ message (STATUS "------------------------------------------" )
57
+ message (STATUS "BehaviourTree is being built using AMENT." )
58
+ message (STATUS "------------------------------------------" )
50
59
51
- message (STATUS "------------------------------------------" )
52
- message (STATUS "BehaviourTree is being built using AMENT." )
53
- message (STATUS "------------------------------------------" )
54
-
55
- set (BUILD_TOOL_INCLUDE_DIRS ${ament_INCLUDE_DIRS} )
60
+ set (BUILD_TOOL_INCLUDE_DIRS ${ament_INCLUDE_DIRS} )
56
61
57
62
elseif ( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE )
58
63
59
- set (catkin_FOUND 1 )
60
- add_definitions ( -DUSING_ROS )
61
- find_package (catkin REQUIRED COMPONENTS roslib )
62
- find_package (GTest )
64
+ set (catkin_FOUND 1 )
65
+ add_definitions ( -DUSING_ROS )
66
+ find_package (catkin REQUIRED COMPONENTS roslib )
67
+ find_package (GTest )
63
68
64
- message (STATUS "------------------------------------------" )
65
- message (STATUS "BehaviourTree is being built using CATKIN." )
66
- message (STATUS "------------------------------------------" )
69
+ message (STATUS "------------------------------------------" )
70
+ message (STATUS "BehaviourTree is being built using CATKIN." )
71
+ message (STATUS "------------------------------------------" )
67
72
68
- catkin_package (
69
- INCLUDE_DIRS include # do not include "3rdparty" here
70
- LIBRARIES ${BEHAVIOR_TREE_LIBRARY}
71
- CATKIN_DEPENDS roslib
72
- )
73
+ catkin_package (
74
+ INCLUDE_DIRS include # do not include "3rdparty" here
75
+ LIBRARIES ${BEHAVIOR_TREE_LIBRARY}
76
+ CATKIN_DEPENDS roslib
77
+ )
73
78
74
- list (APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES} )
75
- set (BUILD_TOOL_INCLUDE_DIRS ${catkin_INCLUDE_DIRS} )
79
+ list (APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES} )
80
+ set (BUILD_TOOL_INCLUDE_DIRS ${catkin_INCLUDE_DIRS} )
76
81
77
82
else ()
78
83
find_package (GTest )
79
84
80
85
if (NOT GTEST_FOUND )
81
- message (WARNING " GTest not found !" )
86
+ message (WARNING " GTest missing !" )
82
87
endif (NOT GTEST_FOUND )
83
88
84
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin )
85
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin )
86
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin )
89
+ endif ()
87
90
91
+
92
+ #############################################################
93
+ if (ament_cmake_FOUND )
94
+ set ( BEHAVIOR_TREE_LIB_DESTINATION lib )
95
+ set ( BEHAVIOR_TREE_INC_DESTINATION include )
96
+ set ( BEHAVIOR_TREE_BIN_DESTINATION bin )
97
+
98
+ ament_export_include_directories (include )
99
+ ament_export_libraries (${BEHAVIOR_TREE_LIBRARY} )
100
+ ament_package ()
101
+ elseif (catkin_FOUND )
102
+ set ( BEHAVIOR_TREE_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
103
+ set ( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} )
104
+ set ( BEHAVIOR_TREE_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
105
+ else ()
106
+ set ( BEHAVIOR_TREE_LIB_DESTINATION lib )
107
+ set ( BEHAVIOR_TREE_INC_DESTINATION include )
108
+ set ( BEHAVIOR_TREE_BIN_DESTINATION bin )
109
+
110
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /${BEHAVIOR_TREE_BIN_DESTINATION} " )
111
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /${BEHAVIOR_TREE_LIB_DESTINATION} " )
112
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /${BEHAVIOR_TREE_BIN_DESTINATION} " )
88
113
endif ()
89
114
115
+ message ( STATUS "BEHAVIOR_TREE_LIB_DESTINATION: ${BEHAVIOR_TREE_LIB_DESTINATION} " )
116
+ message ( STATUS "BEHAVIOR_TREE_BIN_DESTINATION: ${BEHAVIOR_TREE_BIN_DESTINATION} " )
117
+ message ( STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} " )
118
+ message ( STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY: ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} " )
119
+ message ( STATUS "CMAKE_ARCHIVE_OUTPUT_DIRECTORY: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} " )
120
+
90
121
#############################################################
91
122
# LIBRARY
92
123
@@ -121,11 +152,13 @@ list(APPEND BT_SOURCE
121
152
src/loggers/bt_cout_logger.cpp
122
153
src/loggers/bt_file_logger.cpp
123
154
src/loggers/bt_minitrace_logger.cpp
124
-
125
155
3rdparty/tinyXML2/tinyxml2.cpp
156
+
126
157
3rdparty/minitrace/minitrace.cpp
127
158
)
128
159
160
+ ######################################################
161
+ set (CMAKE_DEBUG_POSTFIX "d" )
129
162
130
163
131
164
add_library (${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} )
@@ -136,24 +169,19 @@ target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC
136
169
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
137
170
$< INSTALL_INTERFACE:include>
138
171
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /3rdparty>
139
- $< INSTALL_INTERFACE:3rdparty>
140
172
${BUILD_TOOL_INCLUDE_DIRS} )
141
173
174
+ if ( ZMQ_FOUND )
175
+ target_compile_definitions (${BEHAVIOR_TREE_LIBRARY} PUBLIC ZMQ_FOUND )
176
+ endif ()
177
+
142
178
if (MSVC )
143
- target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX )
179
+ target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX )
144
180
else ()
145
- target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE -Wall -Wextra -Werror=return-type )
181
+ target_compile_options (${BEHAVIOR_TREE_LIBRARY} PRIVATE
182
+ -Wall -Wextra -Werror=return-type )
146
183
endif ()
147
184
148
- ######################################################
149
- # EXPORTS
150
-
151
- set (PROJECT_NAMESPACE BehaviorTree )
152
- set (PROJECT_CONFIG ${PROJECT_NAMESPACE} Config )
153
- export (TARGETS ${PROJECT_NAME}
154
- NAMESPACE ${PROJECT_NAMESPACE} ::
155
- FILE "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_CONFIG} .cmake" )
156
-
157
185
######################################################
158
186
# TESTS
159
187
@@ -205,31 +233,12 @@ endif()
205
233
206
234
######################################################
207
235
# INSTALL
208
- if (ament_cmake_FOUND )
209
- set ( BEHAVIOR_TREE_LIB_DESTINATION lib )
210
- set ( BEHAVIOR_TREE_INC_DESTINATION include )
211
- set ( BEHAVIOR_TREE_BIN_DESTINATION bin )
212
-
213
- ament_export_include_directories (include )
214
- ament_export_libraries (${BEHAVIOR_TREE_LIBRARY} )
215
- ament_package ()
216
- elseif (catkin_FOUND )
217
- set ( BEHAVIOR_TREE_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
218
- set ( BEHAVIOR_TREE_INC_DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION} )
219
- set ( BEHAVIOR_TREE_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
220
- else ()
221
- set ( BEHAVIOR_TREE_LIB_DESTINATION lib )
222
- set ( BEHAVIOR_TREE_INC_DESTINATION include )
223
- set ( BEHAVIOR_TREE_BIN_DESTINATION bin )
224
- endif ()
225
-
226
- message (STATUS "BEHAVIOR_TREE_LIB_DESTINATION: ${BEHAVIOR_TREE_LIB_DESTINATION} " )
227
- message (STATUS "BEHAVIOR_TREE_INC_DESTINATION: ${BEHAVIOR_TREE_INC_DESTINATION} " )
228
- message (STATUS "BEHAVIOR_TREE_BIN_DESTINATION: ${BEHAVIOR_TREE_BIN_DESTINATION} " )
236
+ set (PROJECT_NAMESPACE BehaviorTree )
237
+ set (PROJECT_CONFIG ${PROJECT_NAMESPACE} Config )
229
238
230
239
INSTALL (TARGETS ${BEHAVIOR_TREE_LIBRARY}
231
240
EXPORT ${PROJECT_CONFIG}
232
- ARCHIVE DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION }
241
+ ARCHIVE DESTINATION ${BEHAVIOR_TREE_BIN_DESTINATION }
233
242
LIBRARY DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
234
243
)
235
244
@@ -241,11 +250,17 @@ install(EXPORT ${PROJECT_CONFIG}
241
250
DESTINATION "${BEHAVIOR_TREE_LIB_DESTINATION} /${PROJECT_NAMESPACE} /cmake"
242
251
NAMESPACE ${PROJECT_NAMESPACE} :: )
243
252
253
+ export (TARGETS ${PROJECT_NAME}
254
+ NAMESPACE ${PROJECT_NAMESPACE} ::
255
+ FILE "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_CONFIG} .cmake" )
256
+
244
257
######################################################
245
258
# EXAMPLES and TOOLS
259
+ if (BUILD_TOOLS )
260
+ add_subdirectory (tools )
261
+ endif ()
246
262
247
263
if ( BUILD_EXAMPLES )
248
- add_subdirectory (tools )
249
264
add_subdirectory (sample_nodes )
250
265
add_subdirectory (examples )
251
266
endif ()
0 commit comments