Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e18f741

Browse files
committed
ros2 branch for version 2.x
1 parent f9dbe9d commit e18f741

File tree

2 files changed

+88
-72
lines changed

2 files changed

+88
-72
lines changed

CMakeLists.txt

Lines changed: 79 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,27 @@ else()
88
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
99
endif()
1010

11-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
11+
if(MSVC)
12+
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
13+
endif()
1214

15+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1316

1417
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake")
1518
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
1619

1720
option(BUILD_EXAMPLES "Build tutorials and examples" ON)
1821
option(BUILD_UNIT_TESTS "Build the unit tests" ON)
22+
option(BUILD_TOOLS "Build commandline tools" ON)
1923

2024
#############################################################
2125
# Find packages
2226
find_package(Threads REQUIRED)
2327
find_package(ZMQ)
2428

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} )
2632

2733
if( ZMQ_FOUND )
2834
message(STATUS "ZeroMQ found.")
@@ -35,58 +41,83 @@ endif()
3541

3642
set(BEHAVIOR_TREE_LIBRARY ${PROJECT_NAME})
3743

44+
3845
# Update the policy setting to avoid an error when loading the ament_cmake package
3946
# at the current cmake version level
4047
if(POLICY CMP0057)
41-
cmake_policy(SET CMP0057 NEW)
48+
cmake_policy(SET CMP0057 NEW)
4249
endif()
4350

4451
find_package(ament_cmake QUIET)
4552

4653
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
4855

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 "------------------------------------------")
5059

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})
5661

5762
elseif( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
5863

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)
6368

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 "------------------------------------------")
6772

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+
)
7378

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})
7681

7782
else()
7883
find_package(GTest)
7984

8085
if(NOT GTEST_FOUND)
81-
message(WARNING " GTest not found!")
86+
message(WARNING " GTest missing!")
8287
endif(NOT GTEST_FOUND)
8388

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()
8790

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}" )
88113
endif()
89114

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+
90121
#############################################################
91122
# LIBRARY
92123

@@ -121,11 +152,13 @@ list(APPEND BT_SOURCE
121152
src/loggers/bt_cout_logger.cpp
122153
src/loggers/bt_file_logger.cpp
123154
src/loggers/bt_minitrace_logger.cpp
124-
125155
3rdparty/tinyXML2/tinyxml2.cpp
156+
126157
3rdparty/minitrace/minitrace.cpp
127158
)
128159

160+
######################################################
161+
set(CMAKE_DEBUG_POSTFIX "d")
129162

130163

131164
add_library(${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} )
@@ -136,24 +169,19 @@ target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC
136169
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
137170
$<INSTALL_INTERFACE:include>
138171
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty>
139-
$<INSTALL_INTERFACE:3rdparty>
140172
${BUILD_TOOL_INCLUDE_DIRS})
141173

174+
if( ZMQ_FOUND )
175+
target_compile_definitions(${BEHAVIOR_TREE_LIBRARY} PUBLIC ZMQ_FOUND)
176+
endif()
177+
142178
if(MSVC)
143-
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
179+
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
144180
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)
146183
endif()
147184

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-
157185
######################################################
158186
# TESTS
159187

@@ -205,31 +233,12 @@ endif()
205233

206234
######################################################
207235
# 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)
229238

230239
INSTALL(TARGETS ${BEHAVIOR_TREE_LIBRARY}
231240
EXPORT ${PROJECT_CONFIG}
232-
ARCHIVE DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
241+
ARCHIVE DESTINATION ${BEHAVIOR_TREE_BIN_DESTINATION}
233242
LIBRARY DESTINATION ${BEHAVIOR_TREE_LIB_DESTINATION}
234243
)
235244

@@ -241,11 +250,17 @@ install(EXPORT ${PROJECT_CONFIG}
241250
DESTINATION "${BEHAVIOR_TREE_LIB_DESTINATION}/${PROJECT_NAMESPACE}/cmake"
242251
NAMESPACE ${PROJECT_NAMESPACE}::)
243252

253+
export(TARGETS ${PROJECT_NAME}
254+
NAMESPACE ${PROJECT_NAMESPACE}::
255+
FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CONFIG}.cmake")
256+
244257
######################################################
245258
# EXAMPLES and TOOLS
259+
if(BUILD_TOOLS)
260+
add_subdirectory(tools)
261+
endif()
246262

247263
if( BUILD_EXAMPLES )
248-
add_subdirectory(tools)
249264
add_subdirectory(sample_nodes)
250265
add_subdirectory(examples)
251266
endif()

package.xml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1-
<package>
1+
<package format="2">
22
<name>behaviortree_cpp</name>
33
<version>2.5.1</version>
44
<description>
55
This package provides a behavior trees core.
66
</description>
77

8-
<maintainer email="[email protected]">Michele Colledanchise</maintainer>
9-
<maintainer email="[email protected]">Davide Faconti</maintainer>
8+
<maintainer email="[email protected]">Davide Faconti</maintainer>
109

1110
<license>MIT</license>
1211

1312
<author>Michele Colledanchise</author>
1413
<author>Davide Faconti</author>
1514

16-
<build_depend>roslib</build_depend>
17-
<run_depend>roslib</run_depend>
18-
1915
<build_depend>libzmq3-dev</build_depend>
20-
<run_depend>libzmq3-dev</run_depend>
16+
<exec_depend>libzmq3-dev</exec_depend>
17+
18+
<test_depend>ament_cmake_gtest</test_depend>
2119

22-
<buildtool_depend>catkin</buildtool_depend>
20+
<buildtool_depend>ament_cmake</buildtool_depend>
21+
<export>
22+
<build_type>ament_cmake</build_type>
23+
</export>
2324

2425
</package>

0 commit comments

Comments
 (0)