@@ -26,6 +26,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
26
26
endif ()
27
27
28
28
option (COVERAGE_ENABLED "Enable code coverage" FALSE )
29
+
29
30
if (COVERAGE_ENABLED)
30
31
add_compile_options (--coverage)
31
32
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage" )
@@ -60,40 +61,42 @@ find_package(slg_msgs REQUIRED) # formerly simple_laser_geometry
60
61
# ##########
61
62
# # Build ##
62
63
# ##########
63
- # # Specify additional locations of header files
64
- # # Your package locations should be listed before other locations
65
- include_directories (
66
- include
67
- )
68
-
69
64
set (source
70
65
src/segmentation/jump_distance.cpp
71
66
src/segmentation/jump_distance_merge.cpp
72
67
src/parameter_handler.cpp
73
68
src/laser_segmentation.cpp
74
69
)
75
70
76
- set (dependencies
77
- rclcpp
78
- rclcpp_lifecycle
79
- rclcpp_components
80
- std_msgs
81
- sensor_msgs
82
- visualization_msgs
83
- slg_msgs
84
- )
71
+ set (library_name ${PROJECT_NAME} _core)
85
72
86
- set (library_name ${PROJECT_NAME} _component)
73
+ # Library node
74
+ add_library (${library_name} SHARED ${source} )
75
+ target_include_directories (${library_name}
76
+ PUBLIC
77
+ "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR} /include>"
78
+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >" )
79
+ target_link_libraries (${library_name} PUBLIC
80
+ rclcpp::rclcpp
81
+ rclcpp_lifecycle::rclcpp_lifecycle
82
+ ${rclcpp_components_TARGETS}
83
+ ${std_msgs_TARGETS}
84
+ ${sensor_msgs_TARGETS}
85
+ ${visualization_msgs_TARGETS}
86
+ ${slg_msgs_TARGETS}
87
+ )
87
88
88
89
# Add executables
89
90
add_executable (${PROJECT_NAME} src/main.cpp)
90
- ament_target_dependencies(${PROJECT_NAME} ${dependencies} )
91
- target_link_libraries (${PROJECT_NAME} ${library_name} )
92
-
93
- # Library node
94
- add_library (${library_name} SHARED ${source} )
95
- ament_target_dependencies(${library_name} ${dependencies} )
96
- target_link_libraries (${library_name} )
91
+ target_include_directories (${PROJECT_NAME}
92
+ PUBLIC
93
+ "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR} /include>"
94
+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >" )
95
+ target_link_libraries (${PROJECT_NAME} PUBLIC
96
+ rclcpp::rclcpp
97
+ rclcpp_lifecycle::rclcpp_lifecycle
98
+ ${library_name}
99
+ )
97
100
98
101
rclcpp_components_register_nodes(${library_name} "laser_segmentation::LaserSegmentation" )
99
102
@@ -110,11 +113,8 @@ install(TARGETS ${PROJECT_NAME}
110
113
RUNTIME DESTINATION lib/${PROJECT_NAME}
111
114
)
112
115
113
- install (DIRECTORY include /${PROJECT_NAME} /
116
+ install (DIRECTORY include /
114
117
DESTINATION include /${PROJECT_NAME}
115
- FILES_MATCHING PATTERN "*.hpp"
116
-
117
- # PATTERN ".svn" EXCLUDE
118
118
)
119
119
120
120
install (DIRECTORY launch params
@@ -136,7 +136,15 @@ endif()
136
136
# ##################################
137
137
# # ament specific configuration ##
138
138
# ##################################
139
- ament_export_include_directories(include )
140
- ament_export_libraries(${PROJECT_NAME} _component)
141
- ament_export_dependencies(${dependencies} )
139
+ ament_export_include_directories(include /${PROJECT_NAME} )
140
+ ament_export_libraries(${library_name} )
141
+ ament_export_dependencies(
142
+ rclcpp
143
+ rclcpp_lifecycle
144
+ rclcpp_components
145
+ std_msgs
146
+ sensor_msgs
147
+ visualization_msgs
148
+ slg_msgs
149
+ )
142
150
ament_package()
0 commit comments