diff --git a/rosidl_generator_type_description/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/rosidl_generator_type_description/cmake/rosidl_generator_type_description_generate_interfaces.cmake index ed29cdab3..0e420f17a 100644 --- a/rosidl_generator_type_description/cmake/rosidl_generator_type_description_generate_interfaces.cmake +++ b/rosidl_generator_type_description/cmake/rosidl_generator_type_description_generate_interfaces.cmake @@ -78,6 +78,12 @@ rosidl_write_generator_arguments( INCLUDE_PATHS "${_dependency_paths}" ) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.27) + set(_dep_explicit_only DEPENDS_EXPLICIT_ONLY) +else() + set(_dep_explicit_only "") +endif() + # Create custom command and target to generate the hash output add_custom_command( COMMAND Python3::Interpreter @@ -88,6 +94,7 @@ add_custom_command( DEPENDS ${target_dependencies} COMMENT "Generating type hashes for ROS interfaces" VERBATIM + ${_dep_explicit_only} ) set(_target "${rosidl_generate_interfaces_TARGET}__rosidl_generator_type_description") diff --git a/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index dfad37acd..69c64a25f 100644 --- a/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +++ b/rosidl_typesupport_introspection_c/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake @@ -94,6 +94,12 @@ set(Python3_FIND_UNVERSIONED_NAMES FIRST) find_package(Python3 REQUIRED COMPONENTS Interpreter) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.27) + set(_dep_explicit_only DEPENDS_EXPLICIT_ONLY) +else() + set(_dep_explicit_only "") +endif() + add_custom_command( OUTPUT ${_generated_header_files} ${_generated_source_files} COMMAND Python3::Interpreter @@ -102,6 +108,7 @@ add_custom_command( DEPENDS ${target_dependencies} COMMENT "Generating C introspection for ROS interfaces" VERBATIM + ${_dep_explicit_only} ) # generate header to switch between export and import for a specific package diff --git a/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index daedc900f..39c9600d6 100644 --- a/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +++ b/rosidl_typesupport_introspection_cpp/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake @@ -94,6 +94,12 @@ set(Python3_FIND_UNVERSIONED_NAMES FIRST) find_package(Python3 REQUIRED COMPONENTS Interpreter) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.27) + set(_dep_explicit_only DEPENDS_EXPLICIT_ONLY) +else() + set(_dep_explicit_only "") +endif() + add_custom_command( OUTPUT ${_generated_header_files} ${_generated_source_files} COMMAND Python3::Interpreter @@ -102,6 +108,7 @@ add_custom_command( DEPENDS ${target_dependencies} COMMENT "Generating C++ introspection for ROS interfaces" VERBATIM + ${_dep_explicit_only} ) set(_target_suffix "__rosidl_typesupport_introspection_cpp")