Skip to content

Commit 49e478b

Browse files
authored
Merge pull request #50 from grupo-avispa/cmake
Fix ament_target_dependencies
2 parents aa49970 + ecdf2dc commit 49e478b

File tree

14 files changed

+298
-142
lines changed

14 files changed

+298
-142
lines changed

plansys2_bt_example/CMakeLists.txt

Lines changed: 90 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,21 @@
11
cmake_minimum_required(VERSION 3.5)
22
project(plansys2_bt_example)
33

4-
54
find_package(ament_cmake REQUIRED)
6-
find_package(rclcpp REQUIRED)
7-
find_package(rclcpp_action REQUIRED)
5+
find_package(behaviortree_cpp REQUIRED)
86
find_package(geometry_msgs REQUIRED)
9-
find_package(tf2_geometry_msgs REQUIRED)
107
find_package(nav2_msgs REQUIRED)
11-
find_package(plansys2_msgs REQUIRED)
8+
find_package(plansys2_bt_actions REQUIRED)
129
find_package(plansys2_domain_expert REQUIRED)
1310
find_package(plansys2_executor REQUIRED)
11+
find_package(plansys2_msgs REQUIRED)
12+
find_package(plansys2_pddl_parser REQUIRED)
1413
find_package(plansys2_planner REQUIRED)
1514
find_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

4020
add_library(plansys2_recharge_bt_node SHARED src/behavior_tree_nodes/Recharge.cpp)
4121
list(APPEND plugin_libs plansys2_recharge_bt_node)
@@ -53,36 +33,108 @@ add_library(plansys2_approach_object_bt_node SHARED src/behavior_tree_nodes/Appr
5333
list(APPEND plugin_libs plansys2_approach_object_bt_node)
5434

5535
foreach(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)
5851
endforeach()
5952

6053
add_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

6365
add_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

6682
add_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+
81114
if(BUILD_TESTING)
82115
find_package(ament_lint_auto REQUIRED)
83116
ament_lint_auto_find_test_dependencies()
84117

85118
find_package(ament_cmake_gtest REQUIRED)
86119
endif()
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+
88140
ament_package()

plansys2_bt_example/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
<buildtool_depend>ament_cmake</buildtool_depend>
1414

15+
<depend>behaviortree_cpp</depend>
1516
<depend>rclcpp</depend>
1617
<depend>rclcpp_action</depend>
1718
<depend>geometry_msgs</depend>
@@ -23,7 +24,6 @@
2324
<depend>plansys2_planner</depend>
2425
<depend>plansys2_problem_expert</depend>
2526
<depend>plansys2_pddl_parser</depend>
26-
<depend>ament_index_cpp</depend>
2727
<depend>plansys2_bt_actions</depend>
2828

2929
<exec_depend>plansys2_bringup</exec_depend>
Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,52 @@
11
cmake_minimum_required(VERSION 3.5)
22
project(plansys2_cascade_example)
33

4-
54
find_package(ament_cmake REQUIRED)
5+
find_package(plansys2_executor REQUIRED)
66
find_package(rclcpp REQUIRED)
77
find_package(rclcpp_action REQUIRED)
8-
find_package(plansys2_msgs REQUIRED)
9-
find_package(plansys2_executor REQUIRED)
10-
11-
12-
13-
set(dependencies
14-
rclcpp::rclcpp
15-
rclcpp_action::rclcpp_action
16-
plansys2_executor::plansys2_executor
17-
${plansys2_msgs_TARGETS}
18-
)
8+
find_package(rclcpp_cascade_lifecycle REQUIRED)
199

2010
add_executable(move_action_node src/move_action_node.cpp)
21-
target_link_libraries(move_action_node PUBLIC ${dependencies})
11+
target_link_libraries(move_action_node
12+
PRIVATE
13+
plansys2_executor::plansys2_executor
14+
rclcpp::rclcpp
15+
rclcpp_action::rclcpp_action
16+
)
2217

2318
add_executable(charge_action_node src/charge_action_node.cpp)
24-
target_link_libraries(charge_action_node PUBLIC ${dependencies})
19+
target_link_libraries(charge_action_node
20+
PRIVATE
21+
plansys2_executor::plansys2_executor
22+
rclcpp::rclcpp
23+
rclcpp_action::rclcpp_action
24+
)
2525

2626
add_executable(ask_charge_action_node src/ask_charge_action_node.cpp)
27-
target_link_libraries(ask_charge_action_node PUBLIC ${dependencies})
27+
target_link_libraries(ask_charge_action_node
28+
PRIVATE
29+
plansys2_executor::plansys2_executor
30+
rclcpp::rclcpp
31+
rclcpp_action::rclcpp_action
32+
)
2833

2934
add_executable(check_obstacles_node src/check_obstacles_node.cpp)
30-
target_link_libraries(check_obstacles_node PUBLIC ${dependencies})
35+
target_link_libraries(check_obstacles_node
36+
PRIVATE
37+
rclcpp::rclcpp
38+
rclcpp_cascade_lifecycle::rclcpp_cascade_lifecycle
39+
)
3140

32-
install(DIRECTORY launch pddl DESTINATION share/${PROJECT_NAME})
41+
install(DIRECTORY launch pddl
42+
DESTINATION share/${PROJECT_NAME}
43+
)
3344

3445
install(TARGETS
3546
move_action_node
3647
charge_action_node
3748
ask_charge_action_node
3849
check_obstacles_node
39-
ARCHIVE DESTINATION lib
40-
LIBRARY DESTINATION lib
4150
RUNTIME DESTINATION lib/${PROJECT_NAME}
4251
)
4352

@@ -48,4 +57,11 @@ if(BUILD_TESTING)
4857
find_package(ament_cmake_gtest REQUIRED)
4958
endif()
5059

60+
ament_export_dependencies(
61+
rclcpp
62+
rclcpp_action
63+
rclcpp_cascade_lifecycle
64+
plansys2_executor
65+
)
66+
5167
ament_package()

plansys2_cascade_example/package.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212

1313
<buildtool_depend>ament_cmake</buildtool_depend>
1414

15+
<depend>plansys2_executor</depend>
1516
<depend>rclcpp</depend>
1617
<depend>rclcpp_action</depend>
17-
<depend>plansys2_msgs</depend>
18-
<depend>plansys2_executor</depend>
18+
<depend>rclcpp_cascade_lifecycle</depend>
1919

2020
<exec_depend>plansys2_bringup</exec_depend>
2121
<exec_depend>plansys2_terminal</exec_depend>

plansys2_examples/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
project(plansys2_examples)
3+
4+
find_package(ament_cmake REQUIRED)
5+
6+
ament_package()

plansys2_examples/package.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0"?>
2+
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
3+
<package format="3">
4+
<name>plansys2_examples</name>
5+
<version>3.0.0</version>
6+
7+
<description>ROS2 Planning System Examples</description>
8+
9+
<maintainer email="[email protected]">Francisco Martin Rico</maintainer>
10+
11+
<license>Apache License, Version 2.0</license>
12+
13+
<buildtool_depend>ament_cmake</buildtool_depend>
14+
15+
<exec_depend>plansys2_bt_example</exec_depend>
16+
<exec_depend>plansys2_cascade_example</exec_depend>
17+
<exec_depend>plansys2_multidomain_example</exec_depend>
18+
<exec_depend>plansys2_patrol_navigation_example</exec_depend>
19+
<exec_depend>plansys2_simple_example</exec_depend>
20+
<exec_depend>plansys2_simple_example_py</exec_depend>
21+
22+
<export>
23+
<build_type>ament_cmake</build_type>
24+
</export>
25+
26+
</package>

0 commit comments

Comments
 (0)