在.bzl
文件中,
我指定了一个程序来生成一些代码。它看起来像这样:
def generate_code():
native.genrule(
name = "foo",
outs = ["file.hpp"],
tools = ["//path/to:tool"],
cmd = $(location path/to:tool) $(@D)
)
这可以很好地工作,
但是,问题是该工具可能会生成比outs
中指定的文件更多的文件。
我正在尝试找到一种方法,要么让bazel在生成的文件比指定的多时停止构建,要么让输出自动生成所有内容。
发布于 2018-06-12 05:31:42
如果生成了额外的、意外的文件,我不知道是否有一种通用的方法来消除bazel错误。
我可以推荐的一件事是将您的工具包装在另一个工具中,该工具验证目标目录中的输出文件,并且只有在没有生成意外文件的情况下才返回成功。
对于有意包含输出目录中所有文件的通用解决方案,请考虑使用actions.declare_directory并创建skylark规则,而不是使用native.genrule
。
https://stackoverflow.com/questions/50781189
复制相似问题