Skip to content

Commit cee2760

Browse files
committed
Add rosidl_buffer and rosidl_buffer_backend for native Buffer type support
Signed-off-by: CY Chen <cyc@nvidia.com>
1 parent bab30b0 commit cee2760

File tree

14 files changed

+1818
-0
lines changed

14 files changed

+1818
-0
lines changed

rosidl_buffer/CMakeLists.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
project(rosidl_buffer)
3+
4+
# Default to C++17
5+
if(NOT CMAKE_CXX_STANDARD)
6+
set(CMAKE_CXX_STANDARD 17)
7+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
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 dependencies
15+
find_package(ament_cmake REQUIRED)
16+
17+
add_library(${PROJECT_NAME} SHARED
18+
src/c_helpers.cpp
19+
)
20+
21+
target_include_directories(${PROJECT_NAME} PUBLIC
22+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
23+
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>
24+
)
25+
26+
target_compile_definitions(${PROJECT_NAME} PRIVATE "ROSIDL_BUFFER_BUILDING_DLL")
27+
28+
# Install headers
29+
install(
30+
DIRECTORY include/
31+
DESTINATION include/${PROJECT_NAME}
32+
)
33+
34+
# Install library target
35+
install(
36+
TARGETS ${PROJECT_NAME}
37+
EXPORT ${PROJECT_NAME}
38+
ARCHIVE DESTINATION lib
39+
LIBRARY DESTINATION lib
40+
RUNTIME DESTINATION bin
41+
INCLUDES DESTINATION include/${PROJECT_NAME}
42+
)
43+
44+
# Export modern CMake targets
45+
ament_export_targets(${PROJECT_NAME})
46+
47+
if(BUILD_TESTING)
48+
find_package(ament_lint_auto REQUIRED)
49+
ament_lint_auto_find_test_dependencies()
50+
51+
find_package(ament_cmake_gtest REQUIRED)
52+
53+
ament_add_gtest(test_buffer test/test_buffer.cpp)
54+
if(TARGET test_buffer)
55+
target_link_libraries(test_buffer ${PROJECT_NAME})
56+
endif()
57+
58+
ament_add_gtest(test_c_helpers test/test_c_helpers.cpp)
59+
if(TARGET test_c_helpers)
60+
target_link_libraries(test_c_helpers ${PROJECT_NAME})
61+
endif()
62+
endif()
63+
64+
ament_package()

0 commit comments

Comments
 (0)