11cmake_minimum_required (VERSION 3.5)
22project (plansys2_bt_example)
33
4-
54find_package (ament_cmake REQUIRED)
6- find_package (rclcpp REQUIRED)
7- find_package (rclcpp_action REQUIRED)
5+ find_package (behaviortree_cpp REQUIRED)
86find_package (geometry_msgs REQUIRED)
9- find_package (tf2_geometry_msgs REQUIRED)
107find_package (nav2_msgs REQUIRED)
11- find_package (plansys2_msgs REQUIRED)
8+ find_package (plansys2_bt_actions REQUIRED)
129find_package (plansys2_domain_expert REQUIRED)
1310find_package (plansys2_executor REQUIRED)
11+ find_package (plansys2_msgs REQUIRED)
12+ find_package (plansys2_pddl_parser REQUIRED)
1413find_package (plansys2_planner REQUIRED)
1514find_package (plansys2_problem_expert REQUIRED)
16- find_package (plansys2_pddl_parser REQUIRED)
17- find_package (ament_index_cpp REQUIRED)
18- find_package (plansys2_bt_actions REQUIRED)
15+ find_package (rclcpp REQUIRED)
16+ find_package (rclcpp_action REQUIRED)
17+ find_package (rclcpp_lifecycle REQUIRED)
18+ find_package (tf2_geometry_msgs REQUIRED)
1919
2020if (NOT CMAKE_CXX_STANDARD)
2121 set (CMAKE_CXX_STANDARD 17)
2222endif ()
2323
24- set (dependencies
25- rclcpp
26- rclcpp_action
27- geometry_msgs
28- tf2_geometry_msgs
29- nav2_msgs
30- plansys2_msgs
31- plansys2_domain_expert
32- plansys2_executor
33- plansys2_planner
34- plansys2_problem_expert
35- plansys2_pddl_parser
36- ament_index_cpp
37- plansys2_bt_actions
38- )
39-
40- include_directories (include )
41-
4224add_library (plansys2_recharge_bt_node SHARED src/behavior_tree_nodes/Recharge.cpp)
4325list (APPEND plugin_libs plansys2_recharge_bt_node)
4426
@@ -55,28 +37,81 @@ add_library(plansys2_approach_object_bt_node SHARED src/behavior_tree_nodes/Appr
5537list (APPEND plugin_libs plansys2_approach_object_bt_node)
5638
5739foreach (bt_plugin ${plugin_libs} )
58- ament_target_dependencies(${bt_plugin} ${dependencies} )
40+ target_include_directories (${bt_plugin} PUBLIC
41+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
42+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include>"
43+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >" )
44+ target_link_libraries (${bt_plugin}
45+ PUBLIC
46+ behaviortree_cpp::behaviortree_cpp
47+ ${geometry_msgs_TARGETS}
48+ ${nav2_msgs_TARGETS}
49+ plansys2_bt_actions::plansys2_bt_actions
50+ PRIVATE
51+ ${tf2_geometry_msgs_TARGETS}
52+ rclcpp_lifecycle::rclcpp_lifecycle
53+ )
5954 target_compile_definitions (${bt_plugin} PRIVATE BT_PLUGIN_EXPORT)
6055endforeach ()
6156
6257add_executable (assemble_action_node src/assemble_action_node.cpp)
63- ament_target_dependencies(assemble_action_node ${dependencies} )
58+ target_include_directories (assemble_action_node PRIVATE
59+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
60+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
61+ )
62+ target_link_libraries (assemble_action_node
63+ PRIVATE
64+ rclcpp::rclcpp
65+ rclcpp_action::rclcpp_action
66+ plansys2_executor::plansys2_executor
67+ )
6468
6569add_executable (assemble_controller_node src/assemble_controller_node.cpp)
66- ament_target_dependencies(assemble_controller_node ${dependencies} )
70+ target_include_directories (assemble_controller_node PRIVATE
71+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
72+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
73+ )
74+ target_link_libraries (assemble_controller_node
75+ PRIVATE
76+ plansys2_domain_expert::plansys2_domain_expert
77+ plansys2_executor::plansys2_executor
78+ ${plansys2_msgs_TARGETS}
79+ plansys2_pddl_parser::plansys2_pddl_parser
80+ plansys2_planner::plansys2_planner
81+ plansys2_problem_expert::plansys2_problem_expert
82+ rclcpp::rclcpp
83+ rclcpp_action::rclcpp_action
84+ )
6785
6886add_executable (nav2_sim_node src/nav2_sim_node.cpp)
69- ament_target_dependencies(nav2_sim_node ${dependencies} )
87+ target_include_directories (nav2_sim_node PRIVATE
88+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
89+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
90+ )
91+ target_link_libraries (nav2_sim_node
92+ PRIVATE
93+ ${nav2_msgs_TARGETS}
94+ rclcpp::rclcpp
95+ rclcpp_action::rclcpp_action
96+ ${tf2_geometry_msgs_TARGETS}
97+ )
98+
99+ install (DIRECTORY include /
100+ DESTINATION include /${PROJECT_NAME}
101+ )
70102
71- install (DIRECTORY launch pddl behavior_trees_xml config DESTINATION share/${PROJECT_NAME} )
103+ install (DIRECTORY launch pddl behavior_trees_xml config
104+ DESTINATION share/${PROJECT_NAME}
105+ )
72106
73- install (TARGETS
74- assemble_action_node
75- assemble_controller_node
76- nav2_sim_node
77- ${plugin_libs}
107+ install (TARGETS ${plugin_libs}
108+ EXPORT ${PROJECT_NAME}
78109 ARCHIVE DESTINATION lib
79110 LIBRARY DESTINATION lib
111+ RUNTIME DESTINATION bin
112+ )
113+
114+ install (TARGETS assemble_action_node assemble_controller_node nav2_sim_node
80115 RUNTIME DESTINATION lib/${PROJECT_NAME}
81116)
82117
@@ -87,6 +122,23 @@ if(BUILD_TESTING)
87122 find_package (ament_cmake_gtest REQUIRED)
88123endif ()
89124
90- ament_export_dependencies(${dependencies} )
125+ ament_export_include_directories(include /${PROJECT_NAME} )
126+ ament_export_libraries(${PROJECT_NAME} )
127+ ament_export_targets(${PROJECT_NAME} )
128+ ament_export_dependencies(
129+ behaviortree_cpp
130+ geometry_msgs
131+ nav2_msgs
132+ plansys2_msgs
133+ plansys2_domain_expert
134+ plansys2_executor
135+ plansys2_planner
136+ plansys2_problem_expert
137+ plansys2_pddl_parser
138+ plansys2_bt_actions
139+ rclcpp
140+ rclcpp_action
141+ tf2_geometry_msgs
142+ )
91143
92144ament_package()
0 commit comments