0

如何正确依赖外部存储库中定义的 proto_libary 规则并使用自定义规则?

我需要使用 nanopb 为外部存储库中的原型生成文件。这有效:

proto_library(
    name = "awesome_proto",
    deps = ["@other_repo//proto:awesome_proto"],
)

cc_proto_library(
    name = "awesome_proto_cc",
    deps = [":awesome_proto"],
)

但是,当我定义自定义规则时,我认为我需要从 awesome_repo 获取底层 .proto 才能将其传递给 protoc ,但我找不到这样做的方法。我也试图不让 other_repo 必须拉入 nanopb 并为我生成它。

4

1 回答 1

1

一种解决方案是ProtoSourcesProvider
在 rules_scala 我们有另一个使用遗留符号的解决方案。

for target in ctx.attr.deps:
            if hasattr(target, 'proto'):
                acc_imports.append(target.proto.transitive_sources)
于 2018-05-05T13:08:53.920 回答