Skip to content

Commit

Permalink
Switched from rmw_fastrtps_cpp to rmw_fastrtps_dynamic_cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
henriksod committed Jul 29, 2023
1 parent 024ad08 commit 905f04c
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 112 deletions.
2 changes: 1 addition & 1 deletion .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ build:clang --linkopt="-fuse-ld=lld"

# CycloneDDS is used as DDS vendor in the ROS Middleware by default in this repo.
# To use FastDDS, invoke Bazel with `--config=fastdds`.
build:fastdds --@ros2_rmw_implementation//:dds_vendor=fastdds
build:fastdds --//ros2:dds_vendor=fastdds

# Load any settings specific to the current user.
# user.bazelrc should appear in .gitignore so that settings are not shared with
Expand Down
11 changes: 0 additions & 11 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,11 @@ jobs:
toolchain:
- "gcc"
- "clang"
dds_vendor:
- "cyclonedds"
- "fastdds"
include:
- toolchain: "gcc"
dds_vendor: "cyclonedds"
config_option: ""
- toolchain: "clang"
dds_vendor: "cyclonedds"
config_option: "--config=clang"
- toolchain: "gcc"
dds_vendor: "fastdds"
config_option: "--config=fastdds"
- toolchain: "clang"
dds_vendor: "fastdds"
config_option: "--config=clang --config=fastdds"

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
Expand Down
14 changes: 7 additions & 7 deletions repositories/rmw_fastrtps.BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,22 @@ ros2_cpp_library(
],
)


ros2_cpp_binary(
name = "rmw_fastrtps",
name = "rmw_fastrtps_dynamic_cpp",
srcs = glob([
"rmw_fastrtps_cpp/include/**/*.h",
"rmw_fastrtps_cpp/include/**/*.hpp",
"rmw_fastrtps_cpp/src/*.cpp",
"rmw_fastrtps_cpp/src/*.hpp",
"rmw_fastrtps_dynamic_cpp/include/**/*.h",
"rmw_fastrtps_dynamic_cpp/include/**/*.hpp",
"rmw_fastrtps_dynamic_cpp/src/*.cpp",
"rmw_fastrtps_dynamic_cpp/src/*.hpp",
]),
copts = ["-fvisibility=hidden"],
includes = ["rmw_fastrtps_cpp/include"],
includes = ["rmw_fastrtps_dynamic_cpp/include"],
linkopts = ["-fvisibility=hidden"],
linkshared = True,
visibility = ["//visibility:public"],
deps = [
":rmw_fastrtps_shared_cpp",
"@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_c",
"@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_cpp",
],
)
28 changes: 4 additions & 24 deletions repositories/rmw_implementation.BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
""" Builds rmw_implementation.
"""

load("@bazel_skylib//lib:selects.bzl", "selects")
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load("@com_github_mvukov_rules_ros2//ros2:cc_defs.bzl", "ros2_cpp_library")

string_flag(
name = "dds_vendor",
build_setting_default = "cyclonedds",
values = ["cyclonedds", "fastdds"],
)

config_setting(
name = "use_cyclonedds",
flag_values = {":dds_vendor": "cyclonedds"},
visibility = ["//visibility:public"],
)

config_setting(
name = "use_fastdds",
flag_values = {":dds_vendor": "fastdds"},
visibility = ["//visibility:public"],
)

ros2_cpp_library(
name = "rmw_implementation",
srcs = [
Expand All @@ -33,16 +13,16 @@ ros2_cpp_library(
copts = ["-w"],
data = select(
{
":use_cyclonedds": ["@ros2_rmw_cyclonedds//:rmw_cyclonedds"],
":use_fastdds": ["@ros2_rmw_fastrtps//:rmw_fastrtps"],
"@com_github_mvukov_rules_ros2//ros2:use_cyclonedds": ["@ros2_rmw_cyclonedds//:rmw_cyclonedds"],
"@com_github_mvukov_rules_ros2//ros2:use_fastdds": ["@ros2_rmw_fastrtps//:rmw_fastrtps_dynamic_cpp"],
},
no_match_error = "Unsupported dds vendor",
),
includes = ["include"],
local_defines = select(
{
":use_cyclonedds": ["RMW_LIBRARY_PATH=\\\"$(rootpath @ros2_rmw_cyclonedds//:rmw_cyclonedds)\\\""],
":use_fastdds": ["RMW_LIBRARY_PATH=\\\"$(rootpath @ros2_rmw_fastrtps//:rmw_fastrtps)\\\""],
"@com_github_mvukov_rules_ros2//ros2:use_cyclonedds": ["RMW_LIBRARY_PATH=\\\"$(rootpath @ros2_rmw_cyclonedds//:rmw_cyclonedds)\\\""],
"@com_github_mvukov_rules_ros2//ros2:use_fastdds": ["RMW_LIBRARY_PATH=\\\"$(rootpath @ros2_rmw_fastrtps//:rmw_fastrtps_dynamic_cpp)\\\""],
},
no_match_error = "Unsupported dds vendor",
),
Expand Down
21 changes: 21 additions & 0 deletions ros2/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
""" ROS 2 common definitions.
"""

load("@bazel_skylib//lib:selects.bzl", "selects")
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load("@rules_python//python:defs.bzl", "py_binary", "py_library")

exports_files([
Expand Down Expand Up @@ -64,3 +66,22 @@ py_binary(
"@ros2cli//:ros2lifecycle",
],
)

# DDS vendor settings
string_flag(
name = "dds_vendor",
build_setting_default = "cyclonedds",
values = ["cyclonedds", "fastdds"],
)

config_setting(
name = "use_cyclonedds",
flag_values = {":dds_vendor": "cyclonedds"},
visibility = ["//visibility:public"],
)

config_setting(
name = "use_fastdds",
flag_values = {":dds_vendor": "fastdds"},
visibility = ["//visibility:public"],
)
75 changes: 6 additions & 69 deletions ros2/interfaces.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -264,11 +264,6 @@ _INTERFACE_GENERATOR_C_OUTPUT_MAPPING = [

_TYPESUPPORT_GENERATOR_C_OUTPUT_MAPPING = ["%s__type_support.c"]

_TYPESUPPORT_FASTRTPS_GENERATOR_C_OUTPUT_MAPPING = [
"fastrtps/%s__rosidl_typesupport_fastrtps_c.h",
"fastrtps/%s__type_support_c.cpp",
]

_TYPESUPPORT_INTROSPECION_GENERATOR_C_OUTPUT_MAPPING = [
"detail/%s__rosidl_typesupport_introspection_c.h",
"detail/%s__type_support.c",
Expand Down Expand Up @@ -395,26 +390,14 @@ def _c_generator_aspect_impl(target, ctx):
_TYPESUPPORT_GENERATOR_C_OUTPUT_MAPPING,
visibility_control_template = ctx.file._typesupport_introspection_visibility_control_template,
extra_generator_args = [
# TODO(mvukov) There are also rosidl_typesupport_connext_c
# TODO(mvukov) There are also rosidl_typesupport_connext_c and
# rosidl_typesupport_fastrtps_c.
"--typesupports=rosidl_typesupport_introspection_c",
"--typesupports=rosidl_typesupport_fastrtps_c",
],
mnemonic = "Ros2IdlTypeSupportC",
progress_message = "Generating C type support for %{label}",
)

typesupport_fastrtps_outputs, _ = _run_generator(
ctx,
srcs,
package_name,
adapter,
ctx.executable._typesupport_fastrtps_generator,
ctx.attr._typesupport_fastrtps_templates,
_TYPESUPPORT_FASTRTPS_GENERATOR_C_OUTPUT_MAPPING,
mnemonic = "Ros2IdlTypeSupportFastrtpsC",
progress_message = "Generating C type fastrtps support for %{label}",
)

typesupport_introspection_outputs, _ = _run_generator(
ctx,
srcs,
Expand All @@ -428,12 +411,7 @@ def _c_generator_aspect_impl(target, ctx):
progress_message = "Generating C type introspection support for %{label}",
)

all_outputs = (
interface_outputs
+ typesupport_outputs
+ typesupport_fastrtps_outputs
+ typesupport_introspection_outputs
)
all_outputs = interface_outputs + typesupport_outputs + typesupport_introspection_outputs
hdrs = _get_hdrs(all_outputs)
srcs = _get_srcs(all_outputs)

Expand Down Expand Up @@ -476,14 +454,6 @@ c_generator_aspect = aspect(
"_typesupport_templates": attr.label(
default = Label("@ros2_rosidl_typesupport//:rosidl_typesupport_generator_c_templates"),
),
"_typesupport_fastrtps_generator": attr.label(
default = Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_generator_c_app"),
executable = True,
cfg = "exec",
),
"_typesupport_fastrtps_templates": attr.label(
default = Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_generator_c_templates"),
),
"_typesupport_introspection_generator": attr.label(
default = Label("@ros2_rosidl//:rosidl_typesupport_introspection_generator_c"),
executable = True,
Expand All @@ -504,7 +474,6 @@ c_generator_aspect = aspect(
Label("@ros2_rosidl//:rosidl_runtime_c"),
Label("@ros2_rosidl//:rosidl_typesupport_introspection_c"),
Label("@ros2_rosidl_typesupport//:rosidl_typesupport_c"),
Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_c"),
],
providers = [CcInfo],
),
Expand Down Expand Up @@ -555,11 +524,6 @@ _TYPESUPPORT_GENERATOR_CPP_OUTPUT_MAPPING = [
"%s__type_support.cpp",
]

_TYPESUPPORT_FASTRTPS_GENERATOR_CPP_OUTPUT_MAPPING = [
"fastrtps/%s__rosidl_typesupport_fastrtps_cpp.hpp",
"fastrtps/%s__type_support.cpp",
]

_TYPESUPPORT_INTROSPECION_GENERATOR_CPP_OUTPUT_MAPPING = [
"detail/%s__rosidl_typesupport_introspection_cpp.hpp",
"detail/%s__type_support.cpp",
Expand Down Expand Up @@ -591,26 +555,14 @@ def _cpp_generator_aspect_impl(target, ctx):
ctx.attr._typesupport_templates,
_TYPESUPPORT_GENERATOR_CPP_OUTPUT_MAPPING,
extra_generator_args = [
# TODO(mvukov) There are also rosidl_typesupport_connext_cpp
# TODO(mvukov) There are also rosidl_typesupport_connext_cpp and
# rosidl_typesupport_fastrtps_cpp.
"--typesupports=rosidl_typesupport_introspection_cpp",
"--typesupports=rosidl_typesupport_fastrtps_cpp",
],
mnemonic = "Ros2IdlTypeSupportCpp",
progress_message = "Generating C++ type support for %{label}",
)

typesupport_fastrtps_outputs, _ = _run_generator(
ctx,
srcs,
package_name,
adapter,
ctx.executable._typesupport_fastrtps_generator,
ctx.attr._typesupport_fastrtps_templates,
_TYPESUPPORT_FASTRTPS_GENERATOR_CPP_OUTPUT_MAPPING,
mnemonic = "Ros2IdlTypeSupportFastrtpsCpp",
progress_message = "Generating C++ type fastrtps support for %{label}",
)

typesupport_introspection_outputs, _ = _run_generator(
ctx,
srcs,
Expand All @@ -623,12 +575,7 @@ def _cpp_generator_aspect_impl(target, ctx):
progress_message = "Generating C++ type introspection support for %{label}",
)

all_outputs = (
interface_outputs
+ typesupport_outputs
+ typesupport_fastrtps_outputs
+ typesupport_introspection_outputs
)
all_outputs = interface_outputs + typesupport_outputs + typesupport_introspection_outputs
hdrs = _get_hdrs(all_outputs)
srcs = _get_srcs(all_outputs)

Expand Down Expand Up @@ -670,14 +617,6 @@ cpp_generator_aspect = aspect(
"_typesupport_templates": attr.label(
default = Label("@ros2_rosidl_typesupport//:rosidl_typesupport_generator_cpp_templates"),
),
"_typesupport_fastrtps_generator": attr.label(
default = Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_generator_cpp_app"),
executable = True,
cfg = "exec",
),
"_typesupport_fastrtps_templates": attr.label(
default = Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_generator_cpp_templates"),
),
"_typesupport_introspection_generator": attr.label(
default = Label("@ros2_rosidl//:rosidl_typesupport_introspection_generator_cpp"),
executable = True,
Expand All @@ -695,8 +634,6 @@ cpp_generator_aspect = aspect(
Label("@ros2_rosidl//:rosidl_typesupport_introspection_c"),
Label("@ros2_rosidl//:rosidl_typesupport_introspection_cpp"),
Label("@ros2_rosidl_typesupport//:rosidl_typesupport_cpp"),
Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_c"),
Label("@ros2_rosidl_typesupport_fastrtps//:rosidl_typesupport_fastrtps_cpp"),
],
providers = [CcInfo],
),
Expand Down

0 comments on commit 905f04c

Please sign in to comment.