В зависимости от протосов из внешнего репо с пользовательскими правилами - PullRequest
0 голосов
/ 03 мая 2018

Как мне правильно зависеть от правил proto_libary, определенных во внешних репозиториях, и использовать собственные правила?

Мне нужно сгенерировать файлы с использованием nanopb для прото во внешнем репо. Это работает:

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

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

Однако, когда я определяю собственное правило, я думаю, что мне нужно добраться до базового .proto из awesome_repo, чтобы иметь возможность передать его протоколу, и я не могу найти способ сделать это. Я также пытаюсь не заставлять other_repo вызывать nanopb и генерировать его для меня.

1 Ответ

0 голосов
/ 05 мая 2018

Одним из решений является ProtoSourcesProvider .
В rules_scala у нас есть другое решение, которое использует устаревшие обозначения.

for target in ctx.attr.deps:
            if hasattr(target, 'proto'):
                acc_imports.append(target.proto.transitive_sources)
...