Skip to content

Commit 43158e0

Browse files
committed
Added support for parameter generator library
1 parent c17d34f commit 43158e0

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
load("@hmnd_pip_deps//:requirements.bzl", "requirement")
2+
load("@rules_cc//cc:defs.bzl", "cc_library")
3+
load("@rules_python//python:defs.bzl", "py_binary", "py_library")
4+
5+
package(default_visibility = ["//visibility:public"])
6+
7+
py_library(
8+
name = "generate_parameter_library_py",
9+
srcs = glob(
10+
["generate_parameter_library_py/generate_parameter_library_py/**/*.py"],
11+
exclude = ["generate_parameter_library_py/generate_parameter_library_py/tests/**"],
12+
),
13+
data = glob(["generate_parameter_library_py/generate_parameter_library_py/jinja_templates/**/*"]),
14+
imports = ["generate_parameter_library_py"],
15+
deps = [
16+
requirement("pyyaml"),
17+
requirement("Jinja2"),
18+
requirement("typeguard"),
19+
],
20+
)
21+
22+
py_binary(
23+
name = "generate_python_module",
24+
srcs = ["generate_parameter_library_py/generate_parameter_library_py/generate_python_module.py"],
25+
deps = [":generate_parameter_library_py"],
26+
)
27+
28+
py_binary(
29+
name = "generate_cpp_header",
30+
srcs = ["generate_parameter_library_py/generate_parameter_library_py/generate_cpp_header.py"],
31+
deps = [":generate_parameter_library_py"],
32+
)
33+
34+
py_binary(
35+
name = "generate_markdown",
36+
srcs = ["generate_parameter_library_py/generate_parameter_library_py/generate_markdown.py"],
37+
deps = [":generate_parameter_library_py"],
38+
)
39+
40+
cc_library(
41+
name = "parameter_traits",
42+
hdrs = glob(["parameter_traits/include/**/*.hpp"]),
43+
includes = ["parameter_traits/include"],
44+
deps = [
45+
"@fmt",
46+
"@ros2_rclcpp//:rclcpp",
47+
],
48+
)

repositories/ros2_repositories_impl.bzl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,3 +372,12 @@ def ros2_repositories_impl():
372372
strip_prefix = "urdfdom_headers-1.0.6",
373373
url = "https://github.com/ros/urdfdom_headers/archive/refs/tags/1.0.6.tar.gz",
374374
)
375+
376+
maybe(
377+
http_archive,
378+
name = "generate_parameter_library",
379+
build_file = "@com_github_mvukov_rules_ros2//repositories:generate_parameter_library.BUILD.bazel",
380+
url = "https://github.com/PickNikRobotics/generate_parameter_library/archive/0.5.0.tar.gz",
381+
strip_prefix = "generate_parameter_library-0.5.0",
382+
sha256 = "974511231e5c5691d2a643cb0c84129b8470408326cc675f74d2ba8c86f3d8bf",
383+
)

ros2/parameters.bzl

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
load("@rules_cc//cc:defs.bzl", "cc_library")
2+
load("@rules_python//python:defs.bzl", "py_library")
3+
4+
def parameter_library(name, parameter_file, cpp_header_name = None, python_file_name = None):
5+
if cpp_header_name == None:
6+
header = "{}.hpp".format(name)
7+
else:
8+
header = cpp_header_name
9+
if python_file_name == None:
10+
py = "{}.py".format(name)
11+
else:
12+
py = python_file_name
13+
native.genrule(
14+
name = "{}_generate_py".format(name),
15+
srcs = [
16+
parameter_file,
17+
],
18+
outs = [py],
19+
cmd = "./$(location @generate_parameter_library//:generate_python_module) $(location {}) $(location {})".format(py, parameter_file),
20+
tools = [
21+
"@generate_parameter_library//:generate_python_module",
22+
],
23+
)
24+
25+
native.genrule(
26+
name = "{}_generate_cpp".format(name),
27+
srcs = [
28+
parameter_file,
29+
],
30+
outs = [header],
31+
cmd = "./$(location @generate_parameter_library//:generate_cpp_header) $(location {}) $(location {})".format(header, parameter_file),
32+
tools = [
33+
"@generate_parameter_library//:generate_cpp_header",
34+
],
35+
)
36+
37+
cc_library(
38+
name = "{}_cpp".format(name),
39+
hdrs = [header],
40+
includes = ["."],
41+
deps = [
42+
"@ros2_rclcpp//:rclcpp",
43+
"@fmt",
44+
"@rsl",
45+
"@generate_parameter_library//:parameter_traits",
46+
],
47+
)

0 commit comments

Comments
 (0)