Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 42 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
cmake_minimum_required(VERSION 3.2)

# Update the policy setting to avoid an error when loading the ament_cmake package
# at the current cmake version level
if(POLICY CMP0057)
cmake_policy(SET CMP0057 NEW)
endif()

project(groot)

find_package(Qt5 COMPONENTS Core Widgets Gui OpenGL Xml Svg)
Expand All @@ -13,14 +19,23 @@ else()
endif()

#############################################################
find_package(ament_cmake QUIET)
if(ament_cmake_FOUND)
find_package(behaviortree_cpp_v3 REQUIRED)

set(dependencies
behaviortree_cpp_v3
)

message(STATUS "------------------------------------------------")
message(STATUS "BehaviourTreeEditor is being built using AMENT.")
message(STATUS "------------------------------------------------")
elseif( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
# http://answers.ros.org/question/230877/optionally-build-a-package-with-catkin/
if( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
set(catkin_FOUND 1)
set(catkin_FOUND 1)
# add_definitions( -DUSING_ROS )
endif()

if(catkin_FOUND)
find_package(catkin REQUIRED COMPONENTS behaviortree_cpp_v3 rosbag rosbag_storage roscpp)
find_package(catkin REQUIRED COMPONENTS behaviortree_cpp_v3)

message(STATUS "------------------------------------------------")
message(STATUS "BehaviourTreeEditor is being built using CATKIN.")
Expand All @@ -32,7 +47,7 @@ if(catkin_FOUND)
CATKIN_DEPENDS behaviortree_cpp_v3
DEPENDS
)
endif(catkin_FOUND)
endif()
#############################################################

set(CMAKE_INCLUDE_CURRENT_DIR ON)
Expand All @@ -47,7 +62,11 @@ set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
#set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
#set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_STATIC_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")

INCLUDE_DIRECTORIES( ${catkin_INCLUDE_DIRS} ./QtNodeEditor/include ./ )
if(ament_cmake_FOUND)
INCLUDE_DIRECTORIES(include ./QtNodeEditor/include ./)
else()
INCLUDE_DIRECTORIES(${catkin_INCLUDE_DIRS} ./QtNodeEditor/include ./ )
endif()

add_subdirectory( QtNodeEditor )

Expand All @@ -60,7 +79,7 @@ set(BUILD_TOOLS OFF CACHE BOOL "")
set(BUILD_TESTING OFF CACHE BOOL "")
set(CATKIN_ENABLE_TESTING OFF CACHE BOOL "")

if(NOT catkin_FOUND)
if(NOT catkin_FOUND AND NOT ament_cmake_FOUND)
# look for BehaviorTree.CPP on the system
find_package(BehaviorTree)
if (NOT BehaviorTree_FOUND)
Expand Down Expand Up @@ -121,14 +140,16 @@ endif()

QT5_WRAP_UI(FORMS_HEADERS ${FORMS_UI})

add_library(behavior_tree_editor
add_library(behavior_tree_editor SHARED
${APP_CPPS}
${FORMS_HEADERS}
)

SET(GROOT_DEPENDENCIES QtNodeEditor )

if( catkin_FOUND )
if(ament_cmake_FOUND)
ament_target_dependencies(behavior_tree_editor ${dependencies})
elseif( catkin_FOUND )
SET(GROOT_DEPENDENCIES ${GROOT_DEPENDENCIES} ${catkin_LIBRARIES} )
else()
SET(GROOT_DEPENDENCIES ${GROOT_DEPENDENCIES} behaviortree_cpp_v3 )
Expand All @@ -148,7 +169,11 @@ add_subdirectory(test)

######################################################
# INSTALL
if(catkin_FOUND)
if(ament_cmake_FOUND)
set( GROOT_LIB_DESTINATION lib )
set( GROOT_INC_DESTINATION include )
set( GROOT_BIN_DESTINATION lib/${PROJECT_NAME} )
elseif(catkin_FOUND)
set( GROOT_LIB_DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} )
set( GROOT_INC_DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} )
set( GROOT_BIN_DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
Expand All @@ -168,6 +193,9 @@ endif()
INSTALL(TARGETS behavior_tree_editor LIBRARY DESTINATION ${GROOT_LIB_DESTINATION} )
INSTALL(TARGETS Groot RUNTIME DESTINATION ${GROOT_BIN_DESTINATION} )




if(ament_cmake_FOUND)
ament_export_include_directories(include)
ament_export_dependencies(${GROOT_DEPENDENCIES} ${dependencies})
ament_export_libraries(behavior_tree_editor)
ament_package()
endif()
23 changes: 12 additions & 11 deletions package.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0"?>
<package>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>groot</name>
<version>1.0.0</version>
<description>Graphical editor to create behaviour trees</description>
Expand All @@ -10,26 +11,26 @@
<!-- One license tag required, multiple allowed, one license per tag -->
<license>MIT</license>

<buildtool_depend>catkin</buildtool_depend>
<build_depend>cmake_modules</build_depend>
<buildtool_depend condition="$ROS_VERSION == 1">catkin</buildtool_depend>
<build_depend condition="$ROS_VERSION == 1">cmake_modules</build_depend>
<buildtool_depend condition="$ROS_VERSION == 2">ament_cmake</buildtool_depend>

<build_depend>pluginlib</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>behaviortree_cpp_v3</build_depend>
<build_depend>qtbase5-dev</build_depend>
<build_depend>libqt5-core</build_depend>
<build_depend>libqt5-gui</build_depend>
<build_depend>libqt5-svg-dev</build_depend>
<build_depend>libqt5-opengl-dev</build_depend>
<build_depend>libqt5-widgets</build_depend>
<build_depend>libqt5-xml</build_depend>
<build_depend>qttools5-dev-tools</build_depend>
<build_depend>libdw-dev</build_depend>
<build_depend>libzmq3-dev</build_depend>

<run_depend>pluginlib</run_depend>
<run_depend>roscpp</run_depend>
<run_depend>behaviortree_cpp_v3</run_depend>
<exec_depend>behaviortree_cpp_v3</exec_depend>

<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->

<build_type condition="$ROS_VERSION == 1">catkin</build_type>
<build_type condition="$ROS_VERSION == 2">ament_cmake</build_type>
</export>
</package>