Parse a cpanfile.snapshot file and provide the Perl dependencies as Bazel targets.
See the tutorial in the example directory.
First, generate a cpanfile.snapshot.lock.json file from your cpanfile.snapshot using bazel run @rules_cpan//lock.
Then, add this to MODULE.bazel:
bazel_dep(name = "rules_cpan", version = "0.0.1")
cpan = use_extension("@rules_cpan//cpan:extensions.bzl", "cpan")
cpan.install(
name = "cpan_deps",
lock = "//:cpanfile.snapshot.lock.json",
)
use_repo(cpan, "cpan_deps")Finally, use the cpan_deps target in your BUILD file:
load("@rules_perl//perl:perl.bzl", "perl_library")
perl_library(
name = "my_perl_lib",
srcs = ["lib/MyModule.pm"],
deps = ["@cpan_deps"],
)