@@ -34,7 +34,7 @@ function(generate_parameter_library LIB_NAME YAML_FILE)
3434 endif ()
3535
3636 # Make the include directory
37- set (LIB_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} /${LIB_NAME} / include / )
37+ set (LIB_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} /include / ${PROJECT_NAME} )
3838 file (MAKE_DIRECTORY ${LIB_INCLUDE_DIR} )
3939
4040 # Optional 3rd parameter for the user defined validation header
@@ -47,14 +47,9 @@ function(generate_parameter_library LIB_NAME YAML_FILE)
4747 cmake_path(APPEND VALIDATE_HEADER ${VALIDATE_HEADER_FILENAME} )
4848
4949 # Copy the header file into the include directory
50- add_custom_command (
51- OUTPUT ${VALIDATE_HEADER}
52- COMMAND ${CMAKE_COMMAND} -E copy ${IN_VALIDATE_HEADER} ${VALIDATE_HEADER}
53- DEPENDS ${IN_VALIDATE_HEADER}
54- COMMENT
55- "Running `${CMAKE_COMMAND} -E copy ${IN_VALIDATE_HEADER} ${VALIDATE_HEADER} `"
56- VERBATIM
57- )
50+ file (COPY ${IN_VALIDATE_HEADER} DESTINATION ${LIB_INCLUDE_DIR} )
51+ # necessary so that #include <param_file.hpp> can be used in the local package (deprecated)
52+ file (COPY ${IN_VALIDATE_HEADER} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /include )
5853 endif ()
5954
6055 # Set the yaml file parameter to be relative to the current source dir
@@ -72,12 +67,25 @@ function(generate_parameter_library LIB_NAME YAML_FILE)
7267 "Running `${generate_parameter_library_cpp_BIN} ${PARAM_HEADER_FILE} ${YAML_FILE} ${VALIDATE_HEADER_FILENAME} `"
7368 VERBATIM
7469 )
70+ # necessary so that #include <param_file.hpp> can be used in the local package (deprecated)
71+ set (LOCAL_PARAM_HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR} /include /${LIB_NAME} .hpp)
72+ add_custom_command (
73+ OUTPUT ${LOCAL_PARAM_HEADER_FILE}
74+ COMMAND ${CMAKE_COMMAND} -E echo "#pragma warning(\" `#include <${LIB_NAME} >` is deprecated. Use `#include <${PROJECT_NAME} /${LIB_NAME} .hpp>` instead.\" )" >> ${LOCAL_PARAM_HEADER_FILE}
75+ COMMAND ${CMAKE_COMMAND} -E cat ${LOCAL_PARAM_HEADER_FILE} ${PARAM_HEADER_FILE} > ${LOCAL_PARAM_HEADER_FILE} .tmp
76+ COMMAND ${CMAKE_COMMAND} -E copy ${LOCAL_PARAM_HEADER_FILE} .tmp ${LOCAL_PARAM_HEADER_FILE}
77+ COMMAND ${CMAKE_COMMAND} -E remove ${LOCAL_PARAM_HEADER_FILE} .tmp
78+ DEPENDS ${PARAM_HEADER_FILE}
79+ COMMENT
80+ "Creating deprecated header file ${LOCAL_PARAM_HEADER_FILE} "
81+ VERBATIM
82+ )
7583
7684 # Create the library target
77- add_library (${LIB_NAME} INTERFACE ${PARAM_HEADER_FILE} ${VALIDATE_HEADER} )
85+ add_library (${LIB_NAME} INTERFACE ${PARAM_HEADER_FILE} ${VALIDATE_HEADER} ${LOCAL_PARAM_HEADER_FILE} )
7886 target_include_directories (${LIB_NAME} INTERFACE
79- $<BUILD_INTERFACE:${LIB_INCLUDE_DIR} >
80- $<INSTALL_INTERFACE:include / ${PROJECT_NAME} / ${LIB_NAME} >
87+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} / include >
88+ $<INSTALL_INTERFACE:include >
8189 )
8290 set_target_properties (${LIB_NAME} PROPERTIES LINKER_LANGUAGE CXX)
8391 target_link_libraries (${LIB_NAME} INTERFACE
@@ -89,7 +97,9 @@ function(generate_parameter_library LIB_NAME YAML_FILE)
8997 tcb_span::tcb_span
9098 tl_expected::tl_expected
9199 )
92- install (DIRECTORY ${LIB_INCLUDE_DIR} DESTINATION include /${PROJECT_NAME} /${LIB_NAME} )
100+ install (DIRECTORY ${LIB_INCLUDE_DIR} DESTINATION include )
101+ ament_export_dependencies(fmt parameter_traits rclcpp rclcpp_lifecycle rsl tcb_span tl_expected)
102+ set (_AMENT_CMAKE_EXPORT_DEPENDENCIES "${_AMENT_CMAKE_EXPORT_DEPENDENCIES} " PARENT_SCOPE)
93103endfunction ()
94104
95105
@@ -107,7 +117,7 @@ function(generate_parameter_module LIB_NAME YAML_FILE)
107117 # Set the yaml file parameter to be relative to the current source dir
108118 set (YAML_FILE ${CMAKE_CURRENT_SOURCE_DIR} /${YAML_FILE} )
109119
110- set (LIB_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} /${LIB_NAME } )
120+ set (LIB_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} /include / ${PROJECT_NAME } )
111121 file (MAKE_DIRECTORY ${LIB_INCLUDE_DIR} )
112122
113123 find_package (ament_cmake_python)
@@ -127,8 +137,8 @@ function(generate_parameter_module LIB_NAME YAML_FILE)
127137 # Create the library target
128138 add_library (${LIB_NAME} INTERFACE ${PARAM_HEADER_FILE} ${VALIDATE_HEADER} )
129139 target_include_directories (${LIB_NAME} INTERFACE
130- $<BUILD_INTERFACE:${LIB_INCLUDE_DIR} >
131- $<INSTALL_INTERFACE:include / ${PROJECT_NAME} / ${LIB_NAME} >
140+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} / include >
141+ $<INSTALL_INTERFACE:include >
132142 )
133143
134144endfunction ()
0 commit comments