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)
19-
20-
21-
22- set (dependencies
23- rclcpp::rclcpp
24- rclcpp_action::rclcpp_action
25- plansys2_domain_expert::plansys2_domain_expert
26- plansys2_executor::plansys2_executor
27- plansys2_planner::plansys2_planner
28- plansys2_problem_expert::plansys2_problem_expert
29- plansys2_pddl_parser::plansys2_pddl_parser
30- ament_index_cpp::ament_index_cpp
31- plansys2_bt_actions::plansys2_bt_actions
32- ${geometry_msgs_TARGETS}
33- ${tf2_geometry_msgs_TARGETS}
34- ${nav2_msgs_TARGETS}
35- ${plansys2_msgs_TARGETS}
36- )
37-
38- include_directories (include )
15+ find_package (rclcpp REQUIRED)
16+ find_package (rclcpp_action REQUIRED)
17+ find_package (rclcpp_lifecycle REQUIRED)
18+ find_package (tf2_geometry_msgs REQUIRED)
3919
4020add_library (plansys2_recharge_bt_node SHARED src/behavior_tree_nodes/Recharge.cpp)
4121list (APPEND plugin_libs plansys2_recharge_bt_node)
@@ -53,36 +33,108 @@ add_library(plansys2_approach_object_bt_node SHARED src/behavior_tree_nodes/Appr
5333list (APPEND plugin_libs plansys2_approach_object_bt_node)
5434
5535foreach (bt_plugin ${plugin_libs} )
56- target_link_libraries (${bt_plugin} PUBLIC ${dependencies} )
36+ target_include_directories (${bt_plugin} PUBLIC
37+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
38+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include>"
39+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >" )
40+ target_link_libraries (${bt_plugin}
41+ PUBLIC
42+ behaviortree_cpp::behaviortree_cpp
43+ ${geometry_msgs_TARGETS}
44+ ${nav2_msgs_TARGETS}
45+ plansys2_bt_actions::plansys2_bt_actions
46+ PRIVATE
47+ ${tf2_geometry_msgs_TARGETS}
48+ rclcpp_lifecycle::rclcpp_lifecycle
49+ )
5750 target_compile_definitions (${bt_plugin} PRIVATE BT_PLUGIN_EXPORT)
5851endforeach ()
5952
6053add_executable (assemble_action_node src/assemble_action_node.cpp)
61- target_link_libraries (assemble_action_node PUBLIC ${dependencies} )
54+ target_include_directories (assemble_action_node PRIVATE
55+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
56+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
57+ )
58+ target_link_libraries (assemble_action_node
59+ PRIVATE
60+ rclcpp::rclcpp
61+ rclcpp_action::rclcpp_action
62+ plansys2_executor::plansys2_executor
63+ )
6264
6365add_executable (assemble_controller_node src/assemble_controller_node.cpp)
64- target_link_libraries (assemble_controller_node PUBLIC ${dependencies} )
66+ target_include_directories (assemble_controller_node PRIVATE
67+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
68+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
69+ )
70+ target_link_libraries (assemble_controller_node
71+ PRIVATE
72+ plansys2_domain_expert::plansys2_domain_expert
73+ plansys2_executor::plansys2_executor
74+ ${plansys2_msgs_TARGETS}
75+ plansys2_pddl_parser::plansys2_pddl_parser
76+ plansys2_planner::plansys2_planner
77+ plansys2_problem_expert::plansys2_problem_expert
78+ rclcpp::rclcpp
79+ rclcpp_action::rclcpp_action
80+ )
6581
6682add_executable (nav2_sim_node src/nav2_sim_node.cpp)
67- target_link_libraries (nav2_sim_node PUBLIC ${dependencies} )
83+ target_include_directories (nav2_sim_node PRIVATE
84+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
85+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
86+ )
87+ target_link_libraries (nav2_sim_node
88+ PRIVATE
89+ ${nav2_msgs_TARGETS}
90+ rclcpp::rclcpp
91+ rclcpp_action::rclcpp_action
92+ ${tf2_geometry_msgs_TARGETS}
93+ )
6894
69- install (DIRECTORY launch pddl behavior_trees_xml config DESTINATION share/${PROJECT_NAME} )
95+ install (DIRECTORY include /
96+ DESTINATION include /${PROJECT_NAME}
97+ )
98+
99+ install (DIRECTORY launch pddl behavior_trees_xml config
100+ DESTINATION share/${PROJECT_NAME}
101+ )
70102
71- install (TARGETS
72- assemble_action_node
73- assemble_controller_node
74- nav2_sim_node
75- ${plugin_libs}
103+ install (TARGETS ${plugin_libs}
104+ EXPORT ${PROJECT_NAME}
76105 ARCHIVE DESTINATION lib
77106 LIBRARY DESTINATION lib
78107 RUNTIME DESTINATION lib/${PROJECT_NAME}
79108)
80109
110+ install (TARGETS assemble_action_node assemble_controller_node nav2_sim_node
111+ RUNTIME DESTINATION lib/${PROJECT_NAME}
112+ )
113+
81114if (BUILD_TESTING)
82115 find_package (ament_lint_auto REQUIRED)
83116 ament_lint_auto_find_test_dependencies()
84117
85118 find_package (ament_cmake_gtest REQUIRED)
86119endif ()
87120
121+ ament_export_include_directories(include /${PROJECT_NAME} )
122+ ament_export_libraries(${PROJECT_NAME} )
123+ ament_export_targets(${PROJECT_NAME} )
124+ ament_export_dependencies(
125+ behaviortree_cpp
126+ geometry_msgs
127+ nav2_msgs
128+ plansys2_msgs
129+ plansys2_domain_expert
130+ plansys2_executor
131+ plansys2_planner
132+ plansys2_problem_expert
133+ plansys2_pddl_parser
134+ plansys2_bt_actions
135+ rclcpp
136+ rclcpp_action
137+ tf2_geometry_msgs
138+ )
139+
88140ament_package()
0 commit comments