Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rosidl_get_typesupport_target and deprecate rosidl_target_interfaces #606

Merged
merged 3 commits into from
Aug 4, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions rosidl_cmake/cmake/rosidl_get_typesupport_target.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Copyright 2021 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Get the name of a Typesupport target so it can be used to depend on
# generated messages in the same package that generated them.
#
# :param var: A name of a variable to store the typesupport target name
# :param generate_interfaces_target: the target name passed to
# rosidl_generate_interfaces
# :type generate_interfaces_target: string
# :param typesupport_name: the package name of the type support
# :type typesupport_name: string
#
# @public
#
function(rosidl_get_typesupport_target var generate_interfaces_target typesupport_name)
if(NOT TARGET ${generate_interfaces_target})
message(FATAL_ERROR
"${generate_interfaces_target} is not a CMake target. Maybe rosidl_generate_interfaces was given a different target name?")
endif()

set(output_target "${generate_interfaces_target}__${typesupport_name}")

if(NOT TARGET ${output_target})
message(FATAL_ERROR "${output_target} is not a CMake target - maybe the typesupport '${typesupport_name}' doesn't exist?")
endif()

set("${var}" "${output_target}" PARENT_SCOPE)
endfunction()

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra trailing space at the end of the file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the extra newline in 0f158d7

1 change: 1 addition & 0 deletions rosidl_cmake/cmake/rosidl_target_interfaces.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
# @public
#
function(rosidl_target_interfaces target interface_target typesupport_name)
message(DEPRECATION "Use rosidl_get_typesupport_target() and target_link_libraries() instead of rosidl_target_interfaces()")
if(ARGN)
message(FATAL_ERROR
"rosidl_target_interfaces() called with unused arguments: ${ARGN}")
Expand Down
1 change: 1 addition & 0 deletions rosidl_cmake/rosidl_cmake-extras.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ endmacro()
find_package(rosidl_adapter) # not required, being used when available

include("${rosidl_cmake_DIR}/rosidl_generate_interfaces.cmake")
include("${rosidl_cmake_DIR}/rosidl_get_typesupport_target.cmake")
include("${rosidl_cmake_DIR}/rosidl_target_interfaces.cmake")
include("${rosidl_cmake_DIR}/rosidl_write_generator_arguments.cmake")
include("${rosidl_cmake_DIR}/string_camel_case_to_lower_case_underscore.cmake")
Expand Down