在.bzl
文件中,
我指定一个程序来生成一些代码。
它看起来像这样:
def generate_code():
native.genrule(
name = "foo",
outs = ["file.hpp"],
tools = ["//path/to:tool"],
cmd = $(location path/to:tool) $(@D)
)
这很好,
但问题是该工具可能生成的文件多于outs
中指定的文件
我正试图找到一种方法,如果生成的文件多于指定的数量,则让bazel停止构建,或者让输出自动生成所有内容。
答案 0 :(得分:0)
如果生成其他意外文件,我不知道有一个通用的方法让bazel出错。
我可以推荐的一件事是将工具包装在另一个工具中,该工具验证目标目录中的输出文件,只有在没有生成意外文件的情况下才返回成功。
对于故意在输出目录中包含所有文件的通用解决方案,请考虑使用actions.declare_directory并创建云雀规则,而不是使用native.genrule
。