@@ -42,7 +42,9 @@ foreach(DBC_FILE IN LISTS DBC_FILES)
4242 # cantools generates lowercase file basenames; mirror that here
4343 string (TOLOWER "${DBC_BASENAME_WE} " MOD_NAME)
4444
45- set (OUT_DIR "${CMAKE_CURRENT_BINARY_DIR} /generated/${REL_DIR} " )
45+ # Generate directly into the build include tree so dependents
46+ # can include headers during the same colcon invocation.
47+ set (OUT_DIR "${CMAKE_CURRENT_BINARY_DIR} /include/${PROJECT_NAME} /${REL_DIR} " )
4648 set (OUT_C "${OUT_DIR} /${MOD_NAME} .c" )
4749 set (OUT_H "${OUT_DIR} /${MOD_NAME} .h" )
4850
@@ -62,8 +64,8 @@ endforeach()
6264add_library (${PROJECT_NAME} STATIC ${GENERATED_C_SOURCES} )
6365target_include_directories (${PROJECT_NAME}
6466 PUBLIC
65- $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR} /generated >
66- $<INSTALL_INTERFACE :include / ${PROJECT_NAME} >
67+ $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR} /include >
68+ $<INSTALL_INTERFACE :include >
6769)
6870
6971# Ensure generation runs as part of normal build (sources already bind it)
@@ -72,7 +74,7 @@ add_custom_target(generate_can_sources ALL
7274
7375# Install generated headers so dependents can include them
7476install (
75- DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /generated /
77+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /include/ ${PROJECT_NAME} /
7678 DESTINATION include/${PROJECT_NAME}
7779 FILES_MATCHING PATTERN "*.h"
7880)
@@ -89,12 +91,12 @@ install(
8991set (_extras_file "${CMAKE_CURRENT_SOURCE_DIR} /cmake/${PROJECT_NAME} -extras.cmake" )
9092if (EXISTS ${_extras_file} )
9193 ament_export_targets (export_${PROJECT_NAME} HAS_LIBRARY_TARGET )
92- ament_export_include_directories ("include/ ${PROJECT_NAME} " )
94+ ament_export_include_directories ("include" )
9395 ament_export_libraries (${PROJECT_NAME} )
9496 ament_package (CONFIG_EXTRAS "cmake/${PROJECT_NAME} -extras.cmake" )
9597else ()
9698 ament_export_targets (export_${PROJECT_NAME} HAS_LIBRARY_TARGET )
97- ament_export_include_directories ("include/ ${PROJECT_NAME} " )
99+ ament_export_include_directories ("include" )
98100 ament_export_libraries (${PROJECT_NAME} )
99101 ament_package ()
100102endif ()
0 commit comments