Skip to content

Commit 2cda518

Browse files
authored
Splitted rosidl_generator_c and rosidl_generator_cpp in two: rosidl_generator_x and rosidl_runtime_x (#442)
* Splitted rosidl_generator_c and rosidl_generator_cpp in two: rosidl_generator_x and rosidl_runtime_x Signed-off-by: ahcorde <[email protected]> * added comments Signed-off-by: ahcorde <[email protected]> * rosidl_runtime_cpp removed rosidl_parser dependency Signed-off-by: ahcorde <[email protected]> * removed c++ flags Signed-off-by: ahcorde <[email protected]> * included more feedback Signed-off-by: ahcorde <[email protected]> * Restoring rosidl_typesupport_interface in the package.xml Signed-off-by: ahcorde <[email protected]> * rosidl_typesupport_interface from build_depend to build_export_depend Signed-off-by: ahcorde <[email protected]> * Restored tabs Signed-off-by: ahcorde <[email protected]> * rosidl_generator_c including headers in CMakeLists.txt Signed-off-by: ahcorde <[email protected]> * Fixed rosidl_generator_cpp cmakelists Signed-off-by: ahcorde <[email protected]> * Exported the right rosidl_generator and rosidl_runtime Signed-off-by: ahcorde <[email protected]> * replaced include_directories for target_include_directories Signed-off-by: ahcorde <[email protected]> * moved rosidl_generator_x dependencies from build_depend to test_depend Signed-off-by: ahcorde <[email protected]> * Removed member_of_group rosidl_runtime_packages from rosidl_generator_c Signed-off-by: ahcorde <[email protected]> * changed target_include_libraries and directory for ament_target_dependencies Signed-off-by: ahcorde <[email protected]> * restored add dependency in rosidl_generator_cpp Signed-off-by: ahcorde <[email protected]> * Removed rosidl_generator_x from rosidl_typesupport_introspection_x Signed-off-by: ahcorde <[email protected]> * Removed comments Signed-off-by: ahcorde <[email protected]> * Restored C standard and compiler flags Signed-off-by: ahcorde <[email protected]> * keep the originally used dependency type Signed-off-by: ahcorde <[email protected]> * Fixed rosidl_runtime_c cmakelists.txt Signed-off-by: ahcorde <[email protected]> * Removed ament_export_dependencies rosidl_cmake Signed-off-by: ahcorde <[email protected]> * fixed test_msg_builder directories Signed-off-by: ahcorde <[email protected]>
1 parent 5d44772 commit 2cda518

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+213
-66
lines changed

rosidl_generator_c/CMakeLists.txt

Lines changed: 26 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,10 @@ endif()
1313

1414
find_package(ament_cmake_python REQUIRED)
1515
find_package(ament_cmake_ros REQUIRED)
16-
find_package(rosidl_typesupport_interface REQUIRED)
17-
18-
include_directories(include)
19-
add_library(${PROJECT_NAME}
20-
"src/message_bounds.c"
21-
"src/message_type_support.c"
22-
"src/primitives_sequence_functions.c"
23-
"src/service_type_support.c"
24-
"src/string_functions.c"
25-
"src/u16string_functions.c"
26-
)
27-
ament_target_dependencies(${PROJECT_NAME}
28-
"rosidl_typesupport_interface")
29-
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
30-
set_target_properties(${PROJECT_NAME} PROPERTIES
31-
COMPILE_OPTIONS -Wall -Wextra -Wpedantic)
32-
endif()
33-
if(WIN32)
34-
target_compile_definitions(${PROJECT_NAME}
35-
PRIVATE "ROSIDL_GENERATOR_C_BUILDING_DLL")
36-
endif()
16+
find_package(rosidl_runtime_c REQUIRED)
3717

3818
ament_export_dependencies(rosidl_cmake)
3919
ament_export_dependencies(rosidl_typesupport_interface)
40-
ament_export_include_directories(include)
41-
ament_export_libraries(${PROJECT_NAME})
42-
4320
ament_index_register_resource("rosidl_generator_packages")
4421

4522
ament_python_install_package(${PROJECT_NAME})
@@ -59,7 +36,6 @@ if(BUILD_TESTING)
5936
# Trick ament_target_dependencies() into thinking this package has been found
6037
set(rosidl_generator_c_FOUND "1")
6138
set(rosidl_generator_c_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
62-
set(rosidl_generator_c_LIBRARIES "${PROJECT_NAME}")
6339

6440
rosidl_generator_c_extras(
6541
"${CMAKE_CURRENT_SOURCE_DIR}/bin/rosidl_generator_c"
@@ -76,8 +52,7 @@ if(BUILD_TESTING)
7652
add_executable(test_compilation_c test/test_compilation.c test/separate_compilation.c)
7753
add_executable(test_interfaces_c test/test_interfaces.c)
7854
add_executable(test_invalid_initialization_c test/test_invalid_initialization.c)
79-
add_dependencies(test_interfaces_c ${PROJECT_NAME})
80-
add_dependencies(test_invalid_initialization_c ${PROJECT_NAME})
55+
8156
ament_add_test(
8257
test_compilation_c
8358
COMMAND "$<TARGET_FILE:test_compilation_c>"
@@ -95,10 +70,30 @@ if(BUILD_TESTING)
9570
)
9671

9772
# include the built files directly, instead of their install location
98-
include_directories("${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}")
99-
target_link_libraries(test_compilation_c ${PROJECT_NAME} ${PROJECT_NAME}_interfaces__${PROJECT_NAME})
100-
target_link_libraries(test_interfaces_c ${PROJECT_NAME} ${PROJECT_NAME}_interfaces__${PROJECT_NAME})
101-
target_link_libraries(test_invalid_initialization_c ${PROJECT_NAME} ${PROJECT_NAME}_interfaces__${PROJECT_NAME})
73+
target_link_libraries(test_compilation_c
74+
${PROJECT_NAME}_interfaces__${PROJECT_NAME}
75+
${rosidl_runtime_c_LIBRARIES}
76+
)
77+
target_include_directories(test_compilation_c PUBLIC
78+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
79+
${rosidl_runtime_c_INCLUDE_DIRS}
80+
)
81+
target_link_libraries(test_interfaces_c
82+
${PROJECT_NAME}_interfaces__${PROJECT_NAME}
83+
${rosidl_runtime_c_LIBRARIES}
84+
)
85+
target_include_directories(test_interfaces_c PUBLIC
86+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
87+
${rosidl_runtime_c_INCLUDE_DIRS}
88+
)
89+
target_link_libraries(test_invalid_initialization_c
90+
${PROJECT_NAME}_interfaces__${PROJECT_NAME}
91+
${rosidl_runtime_c_LIBRARIES}
92+
)
93+
target_include_directories(test_invalid_initialization_c PUBLIC
94+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
95+
${rosidl_runtime_c_INCLUDE_DIRS}
96+
)
10297
endif()
10398

10499
ament_package(
@@ -113,13 +108,3 @@ install(
113108
DIRECTORY cmake resource
114109
DESTINATION share/${PROJECT_NAME}
115110
)
116-
install(
117-
DIRECTORY include/
118-
DESTINATION include
119-
)
120-
install(
121-
TARGETS ${PROJECT_NAME}
122-
ARCHIVE DESTINATION lib
123-
LIBRARY DESTINATION lib
124-
RUNTIME DESTINATION bin
125-
)

rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES})
125125
${_pkg_name})
126126
endforeach()
127127
ament_target_dependencies(${rosidl_generate_interfaces_TARGET}${_target_suffix}
128-
"rosidl_generator_c"
128+
"rosidl_runtime_c"
129129
"rosidl_typesupport_interface")
130130

131131
add_dependencies(

rosidl_generator_c/package.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
<maintainer email="[email protected]">William Woodall</maintainer>
88
<license>Apache License 2.0</license>
99

10+
<buildtool_depend>ament_cmake_python</buildtool_depend>
1011
<buildtool_depend>ament_cmake_ros</buildtool_depend>
1112

12-
<build_depend>rosidl_typesupport_interface</build_depend>
13-
1413
<buildtool_export_depend>ament_cmake</buildtool_export_depend>
1514
<buildtool_export_depend>rosidl_cmake</buildtool_export_depend>
1615

@@ -22,10 +21,10 @@
2221
<test_depend>ament_lint_auto</test_depend>
2322
<test_depend>ament_lint_common</test_depend>
2423
<test_depend>rosidl_cmake</test_depend>
24+
<test_depend>rosidl_runtime_c</test_depend>
2525
<test_depend>test_interface_files</test_depend>
2626

2727
<member_of_group>rosidl_generator_packages</member_of_group>
28-
<member_of_group>rosidl_runtime_packages</member_of_group>
2928

3029
<export>
3130
<build_type>ament_cmake</build_type>

rosidl_generator_cpp/CMakeLists.txt

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@ find_package(ament_cmake REQUIRED)
66
find_package(ament_cmake_python REQUIRED)
77

88
ament_export_dependencies(rosidl_cmake)
9-
ament_export_dependencies(rosidl_generator_c)
10-
ament_export_include_directories(include)
119

1210
ament_index_register_resource("rosidl_generator_packages")
13-
ament_index_register_resource("rosidl_runtime_packages")
1411

1512
ament_python_install_package(${PROJECT_NAME})
1613

1714
if(BUILD_TESTING)
1815
find_package(ament_lint_auto REQUIRED)
19-
find_package(rosidl_generator_c REQUIRED)
16+
find_package(rosidl_runtime_c REQUIRED)
17+
find_package(rosidl_runtime_cpp REQUIRED)
2018
find_package(test_interface_files REQUIRED)
2119
ament_lint_auto_find_test_dependencies()
2220

@@ -45,36 +43,74 @@ if(BUILD_TESTING)
4543
add_compile_options(-Wall -Wextra -Wpedantic)
4644
endif()
4745

48-
include_directories(include
49-
${rosidl_generator_c_INCLUDE_DIRS})
50-
5146
ament_add_gtest(test_bounded_vector test/test_bounded_vector.cpp)
47+
if(TARGET test_bounded_vector)
48+
add_dependencies(test_bounded_vector ${PROJECT_NAME})
49+
target_include_directories(test_bounded_vector PUBLIC
50+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME})
51+
ament_target_dependencies(test_bounded_vector
52+
rosidl_runtime_cpp
53+
rosidl_runtime_c)
54+
endif()
5255
ament_add_gtest(test_msg_builder test/test_msg_builder.cpp)
5356
if(TARGET test_msg_builder)
5457
add_dependencies(test_msg_builder ${PROJECT_NAME})
58+
target_include_directories(test_msg_builder PUBLIC
59+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME})
60+
ament_target_dependencies(test_msg_builder
61+
rosidl_runtime_cpp
62+
rosidl_runtime_c)
5563
endif()
5664
ament_add_gtest(test_msg_initialization test/test_msg_initialization.cpp)
5765
if(TARGET test_msg_initialization)
5866
add_dependencies(test_msg_initialization ${PROJECT_NAME})
67+
ament_target_dependencies(test_msg_initialization
68+
rosidl_runtime_cpp
69+
rosidl_runtime_c)
70+
target_include_directories(test_msg_initialization PUBLIC
71+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
72+
)
5973
endif()
6074
ament_add_gtest(test_srv_initialization test/test_srv_initialization.cpp)
6175
if(TARGET test_srv_initialization)
6276
add_dependencies(test_srv_initialization ${PROJECT_NAME})
77+
ament_target_dependencies(test_srv_initialization
78+
rosidl_runtime_cpp
79+
rosidl_runtime_c)
80+
target_include_directories(test_srv_initialization PUBLIC
81+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
82+
)
6383
endif()
6484
ament_add_gtest(test_interfaces_cpp test/test_interfaces.cpp)
6585
if(TARGET test_interfaces_cpp)
6686
add_dependencies(test_interfaces_cpp ${PROJECT_NAME})
87+
ament_target_dependencies(test_interfaces_cpp
88+
rosidl_runtime_cpp
89+
rosidl_runtime_c)
90+
target_include_directories(test_interfaces_cpp PUBLIC
91+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
92+
)
6793
endif()
6894
ament_add_gtest(test_msg_datatype test/test_msg_datatype.cpp)
6995
if(TARGET test_msg_datatype)
7096
add_dependencies(test_msg_datatype ${PROJECT_NAME})
97+
ament_target_dependencies(test_msg_datatype
98+
rosidl_runtime_cpp
99+
rosidl_runtime_c)
100+
target_include_directories(test_msg_datatype PUBLIC
101+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
102+
)
71103
endif()
72104
ament_add_gtest(test_traits test/test_traits.cpp)
73105
if(TARGET test_traits)
74106
add_dependencies(test_traits ${PROJECT_NAME})
107+
ament_target_dependencies(test_traits
108+
rosidl_runtime_cpp
109+
rosidl_runtime_c)
110+
target_include_directories(test_traits PUBLIC
111+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
112+
)
75113
endif()
76-
# include the built files directly, instead of their install location
77-
include_directories("${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}")
78114
endif()
79115

80116
ament_package(
@@ -89,7 +125,3 @@ install(
89125
DIRECTORY cmake resource
90126
DESTINATION share/${PROJECT_NAME}
91127
)
92-
install(
93-
DIRECTORY include/
94-
DESTINATION include
95-
)

rosidl_generator_cpp/package.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<maintainer email="[email protected]">Dirk Thomas</maintainer>
88
<license>Apache License 2.0</license>
99

10+
1011
<buildtool_depend>ament_cmake</buildtool_depend>
1112

1213
<buildtool_export_depend>ament_cmake</buildtool_export_depend>
@@ -21,11 +22,11 @@
2122
<test_depend>ament_lint_auto</test_depend>
2223
<test_depend>ament_lint_common</test_depend>
2324
<test_depend>rosidl_cmake</test_depend>
24-
<test_depend>rosidl_generator_c</test_depend>
25+
<test_depend>rosidl_runtime_cpp</test_depend>
26+
<test_depend>rosidl_runtime_c</test_depend>
2527
<test_depend>test_interface_files</test_depend>
2628

2729
<member_of_group>rosidl_generator_packages</member_of_group>
28-
<member_of_group>rosidl_runtime_packages</member_of_group>
2930

3031
<export>
3132
<build_type>ament_cmake</build_type>

rosidl_runtime_c/CMakeLists.txt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
project(rosidl_runtime_c C)
4+
5+
# Default to C11
6+
if(NOT CMAKE_C_STANDARD)
7+
set(CMAKE_C_STANDARD 11)
8+
endif()
9+
10+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
11+
add_compile_options(-Wall -Wextra -Wpedantic)
12+
endif()
13+
14+
find_package(ament_cmake_ros REQUIRED)
15+
find_package(rosidl_typesupport_interface REQUIRED)
16+
17+
include_directories(include)
18+
add_library(${PROJECT_NAME}
19+
"src/message_bounds.c"
20+
"src/message_type_support.c"
21+
"src/primitives_sequence_functions.c"
22+
"src/service_type_support.c"
23+
"src/string_functions.c"
24+
"src/u16string_functions.c"
25+
)
26+
ament_target_dependencies(${PROJECT_NAME}
27+
"rosidl_typesupport_interface")
28+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
29+
set_target_properties(${PROJECT_NAME} PROPERTIES
30+
COMPILE_OPTIONS -Wall -Wextra -Wpedantic)
31+
endif()
32+
if(WIN32)
33+
target_compile_definitions(${PROJECT_NAME}
34+
PRIVATE "ROSIDL_GENERATOR_C_BUILDING_DLL")
35+
endif()
36+
37+
ament_export_dependencies(rosidl_typesupport_interface)
38+
ament_export_include_directories(include)
39+
ament_export_libraries(${PROJECT_NAME})
40+
41+
ament_index_register_resource("rosidl_runtime_packages")
42+
43+
if(BUILD_TESTING)
44+
find_package(ament_lint_auto REQUIRED)
45+
ament_lint_auto_find_test_dependencies()
46+
endif()
47+
48+
install(
49+
DIRECTORY include/
50+
DESTINATION include
51+
)
52+
install(
53+
TARGETS ${PROJECT_NAME}
54+
ARCHIVE DESTINATION lib
55+
LIBRARY DESTINATION lib
56+
RUNTIME DESTINATION bin
57+
)
58+
59+
ament_package()

0 commit comments

Comments
 (0)