11cmake_minimum_required (VERSION 3.2)
22
3+ # Update the policy setting to avoid an error when loading the ament_cmake package
4+ # at the current cmake version level
5+ if (POLICY CMP0057)
6+ cmake_policy (SET CMP0057 NEW)
7+ endif ()
8+
39project (groot)
410
511find_package (Qt5 COMPONENTS Core Widgets Gui OpenGL Xml Svg)
@@ -13,14 +19,23 @@ else()
1319endif ()
1420
1521#############################################################
22+ find_package (ament_cmake QUIET )
23+ if (ament_cmake_FOUND)
24+ find_package (behaviortree_cpp_v3 REQUIRED)
25+
26+ set (dependencies
27+ behaviortree_cpp_v3
28+ )
29+
30+ message (STATUS "------------------------------------------------" )
31+ message (STATUS "BehaviourTreeEditor is being built using AMENT." )
32+ message (STATUS "------------------------------------------------" )
33+ elseif ( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
1634# http://answers.ros.org/question/230877/optionally-build-a-package-with-catkin/
17- if ( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
18- set (catkin_FOUND 1)
35+ set (catkin_FOUND 1)
1936 # add_definitions( -DUSING_ROS )
20- endif ()
2137
22- if (catkin_FOUND)
23- find_package (catkin REQUIRED COMPONENTS behaviortree_cpp_v3 rosbag rosbag_storage roscpp)
38+ find_package (catkin REQUIRED COMPONENTS behaviortree_cpp_v3)
2439
2540 message (STATUS "------------------------------------------------" )
2641 message (STATUS "BehaviourTreeEditor is being built using CATKIN." )
@@ -32,7 +47,7 @@ if(catkin_FOUND)
3247 CATKIN_DEPENDS behaviortree_cpp_v3
3348 DEPENDS
3449 )
35- endif (catkin_FOUND )
50+ endif ()
3651#############################################################
3752
3853set (CMAKE_INCLUDE_CURRENT_DIR ON )
@@ -47,7 +62,11 @@ set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
4762#set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
4863#set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_STATIC_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
4964
50- INCLUDE_DIRECTORIES ( ${catkin_INCLUDE_DIRS} ./QtNodeEditor/include ./ )
65+ if (ament_cmake_FOUND)
66+ INCLUDE_DIRECTORIES (include ./QtNodeEditor/include ./)
67+ else ()
68+ INCLUDE_DIRECTORIES (${catkin_INCLUDE_DIRS} ./QtNodeEditor/include ./ )
69+ endif ()
5170
5271add_subdirectory ( QtNodeEditor )
5372
@@ -60,7 +79,7 @@ set(BUILD_TOOLS OFF CACHE BOOL "")
6079set (BUILD_TESTING OFF CACHE BOOL "" )
6180set (CATKIN_ENABLE_TESTING OFF CACHE BOOL "" )
6281
63- if (NOT catkin_FOUND)
82+ if (NOT catkin_FOUND AND NOT ament_cmake_FOUND )
6483 # look for BehaviorTree.CPP on the system
6584 find_package (BehaviorTree)
6685 if (NOT BehaviorTree_FOUND)
@@ -121,14 +140,16 @@ endif()
121140
122141QT5_WRAP_UI(FORMS_HEADERS ${FORMS_UI} )
123142
124- add_library (behavior_tree_editor
143+ add_library (behavior_tree_editor SHARED
125144 ${APP_CPPS}
126145 ${FORMS_HEADERS}
127146)
128147
129148SET (GROOT_DEPENDENCIES QtNodeEditor )
130149
131- if ( catkin_FOUND )
150+ if (ament_cmake_FOUND)
151+ ament_target_dependencies(behavior_tree_editor ${dependencies} )
152+ elseif ( catkin_FOUND )
132153 SET (GROOT_DEPENDENCIES ${GROOT_DEPENDENCIES} ${catkin_LIBRARIES} )
133154else ()
134155 SET (GROOT_DEPENDENCIES ${GROOT_DEPENDENCIES} behaviortree_cpp_v3 )
@@ -148,7 +169,11 @@ add_subdirectory(test)
148169
149170######################################################
150171# INSTALL
151- if (catkin_FOUND)
172+ if (ament_cmake_FOUND)
173+ set ( GROOT_LIB_DESTINATION lib )
174+ set ( GROOT_INC_DESTINATION include )
175+ set ( GROOT_BIN_DESTINATION lib/${PROJECT_NAME} )
176+ elseif (catkin_FOUND)
152177 set ( GROOT_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
153178 set ( GROOT_INC_DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} )
154179 set ( GROOT_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
@@ -168,6 +193,9 @@ endif()
168193INSTALL (TARGETS behavior_tree_editor LIBRARY DESTINATION ${GROOT_LIB_DESTINATION} )
169194INSTALL (TARGETS Groot RUNTIME DESTINATION ${GROOT_BIN_DESTINATION} )
170195
171-
172-
173-
196+ if (ament_cmake_FOUND)
197+ ament_export_include_directories(include )
198+ ament_export_dependencies(${GROOT_DEPENDENCIES} ${dependencies} )
199+ ament_export_libraries(behavior_tree_editor)
200+ ament_package()
201+ endif ()
0 commit comments