@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.5)
2
2
3
3
project (rosidl_typesupport_c)
4
4
5
+ option (ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT "Enable static typesupport" OFF )
6
+
5
7
# Default to C11
6
8
if (NOT CMAKE_C_STANDARD)
7
9
set (CMAKE_C_STANDARD 11)
@@ -16,13 +18,17 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
16
18
endif ()
17
19
18
20
find_package (ament_cmake_ros REQUIRED)
19
- find_package (rcpputils REQUIRED)
20
21
find_package (rcutils REQUIRED)
21
22
find_package (rosidl_runtime_c REQUIRED)
23
+ if (NOT ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT)
24
+ find_package (rcpputils REQUIRED)
25
+ endif ()
22
26
23
- ament_export_dependencies(rcpputils)
24
27
ament_export_dependencies(rosidl_runtime_c)
25
28
ament_export_dependencies(rosidl_typesupport_interface)
29
+ if (NOT ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT)
30
+ ament_export_dependencies(rcpputils)
31
+ endif ()
26
32
27
33
ament_export_include_directories(include )
28
34
@@ -36,15 +42,23 @@ if(WIN32)
36
42
target_compile_definitions (${PROJECT_NAME}
37
43
PRIVATE "ROSIDL_TYPESUPPORT_C_BUILDING_DLL" )
38
44
endif ()
45
+ target_compile_definitions (${PROJECT_NAME}
46
+ PRIVATE
47
+ $<$<BOOL :${ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT} >:ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT>
48
+ )
39
49
target_include_directories (${PROJECT_NAME} PUBLIC
40
50
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
41
51
"$<INSTALL_INTERFACE:include>" )
42
52
43
53
ament_target_dependencies(${PROJECT_NAME}
44
- "rcpputils"
45
54
"rcutils"
46
55
"rosidl_runtime_c"
47
56
)
57
+ if (NOT ROSIDL_TYPESUPPORT_STATIC_TYPESUPPORT)
58
+ ament_target_dependencies(${PROJECT_NAME}
59
+ "rcpputils"
60
+ )
61
+ endif ()
48
62
ament_export_libraries(${PROJECT_NAME} )
49
63
ament_export_targets(${PROJECT_NAME} )
50
64
0 commit comments