У меня есть правило Deploy
, которое запускает сценарий и хочет получить доступ к файлам запуска другой цели из другого проекта @ Proj //: SomeExecutable .
Я определил правило Развернуть вот так
Deploy = rule(
implementation = Deploy_impl,
attrs = {
"targets": attr.label_list(mandatory = True),
...
},
executable = True
)
и я звоню через
Deploy(targets = [ "@Proj//:SomeExecutable" ], ....)
Внутри Deploy_impl
Я могу получить доступ к сгенерированным файлам @ Proj // : SomeExecutable через ctx.targets.files
. Это позволяет мне получить доступ к напрямую сгенерированным файлам @ Proj //: SomeExecutable (например, SomeExecutable.exe
), но не к транзитивно сгенерированным файлам этой цели, что более важно, это не генерирование Папка SomeExecutable.exe.runfiles с файлом MANIEST. Я получаю этот файл, только если явно позвоню bazel build @Proj//:SomeExecutable
. Как я могу «научить» Базеля, что мне понадобятся файлы запуска. Обратите внимание, что я не хочу на самом деле вызывать исполняемый файл @ Proj //: SomeExecutable Я просто хочу проанализировать его runfile для извлечения некоторой информации.