Skip to content

Commit 05738c1

Browse files
committed
Allow single typessuport
1 parent cdbd44d commit 05738c1

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

rosidl_typesupport_c/cmake/rosidl_typesupport_c_generate_interfaces.cmake

+28-11
Original file line numberDiff line numberDiff line change
@@ -119,17 +119,19 @@ target_include_directories(${rosidl_generate_interfaces_TARGET}${_target_suffix}
119119
# if only a single typesupport is used this package will directly reference it
120120
# therefore it needs to link against the selected typesupport
121121
if(NOT typesupports MATCHES ";")
122+
set(SINGLE_TYPE_SUPPORT ON)
122123
target_include_directories(${rosidl_generate_interfaces_TARGET}${_target_suffix}
123124
PUBLIC
124125
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/${typesupports}>")
125126
target_link_libraries(${rosidl_generate_interfaces_TARGET}${_target_suffix}
126127
${rosidl_generate_interfaces_TARGET}__${typesupports})
127128
else()
129+
set(SINGLE_TYPE_SUPPORT OFF)
128130
if("${rosidl_typesupport_c_LIBRARY_TYPE}" STREQUAL "STATIC")
129-
target_compile_definitions(${rosidl_generate_interfaces_TARGET}${_target_suffix}
130-
PRIVATE
131-
ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT
132-
)
131+
target_compile_definitions(${rosidl_generate_interfaces_TARGET}${_target_suffix}
132+
PRIVATE
133+
ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT
134+
)
133135
endif()
134136
endif()
135137

@@ -157,13 +159,28 @@ add_dependencies(
157159
)
158160

159161
if(NOT rosidl_generate_interfaces_SKIP_INSTALL)
160-
install(
161-
TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix}
162-
EXPORT ${rosidl_generate_interfaces_TARGET}${_target_suffix}
163-
ARCHIVE DESTINATION lib
164-
LIBRARY DESTINATION lib
165-
RUNTIME DESTINATION bin
166-
)
162+
if(SINGLE_TYPE_SUPPORT)
163+
install(
164+
TARGETS
165+
${rosidl_generate_interfaces_TARGET}${_target_suffix}
166+
${rosidl_generate_interfaces_TARGET}__${typesupports}
167+
EXPORT ${rosidl_generate_interfaces_TARGET}${_target_suffix}
168+
ARCHIVE DESTINATION lib
169+
LIBRARY DESTINATION lib
170+
RUNTIME DESTINATION bin
171+
)
172+
else()
173+
install(
174+
TARGETS
175+
${rosidl_generate_interfaces_TARGET}${_target_suffix}
176+
EXPORT ${rosidl_generate_interfaces_TARGET}${_target_suffix}
177+
ARCHIVE DESTINATION lib
178+
LIBRARY DESTINATION lib
179+
RUNTIME DESTINATION bin
180+
)
181+
endif()
182+
183+
167184
ament_export_libraries(${rosidl_generate_interfaces_TARGET}${_target_suffix})
168185
ament_export_targets(${rosidl_generate_interfaces_TARGET}${_target_suffix})
169186
endif()

0 commit comments

Comments
 (0)