如何在Bazel中的当前包之外生成文件

时间:2019-02-10 10:06:00

标签: build bazel

我正在尝试编写一个bazel扩展名,该扩展名可以读取一些文件并生成其他文件。我正在使用JavaDocctx.actions.declare_file函数来声明要生成的文件,然后声明生成这些文件的操作。到目前为止,一切都很好。

但是,当我尝试声明当前程序包之外的文件/目录时,Bazel抱怨。例如,假设我有一个源文件src = <source file foo/bar.proto>,而当前规则在被规则//baz/proto:some_target调用时正在执行。当我尝试如下声明生成的文件时

generated_src = ctx.actions.declare_file(src.basename, sibling=src)

Bazel抱怨说Output artifact 'foo/bar.proto' not under package directory 'baz/proto' for target '//baz/proto:some_target'。请查看ctx.actions.declare_file的文档,这是预期的。

我的问题是,还有其他方法来声明不在当前程序包中的文件吗?

0 个答案:

没有答案