首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果我的bazel目标生成的文件没有在它的输出中指定,我会出错吗?

如果我的bazel目标生成的文件没有在它的输出中指定,我会出错吗?
EN

Stack Overflow用户
提问于 2018-06-10 14:42:09
回答 1查看 105关注 0票数 1

.bzl文件中,

我指定了一个程序来生成一些代码。它看起来像这样:

def generate_code():
    native.genrule(
        name = "foo",
        outs = ["file.hpp"],
        tools = ["//path/to:tool"],
        cmd = $(location path/to:tool) $(@D)
    )

这可以很好地工作,

但是,问题是该工具可能会生成比outs中指定的文件更多的文件。

我正在尝试找到一种方法,要么让bazel在生成的文件比指定的多时停止构建,要么让输出自动生成所有内容。

EN

回答 1

Stack Overflow用户

发布于 2018-06-12 05:31:42

如果生成了额外的、意外的文件,我不知道是否有一种通用的方法来消除bazel错误。

我可以推荐的一件事是将您的工具包装在另一个工具中,该工具验证目标目录中的输出文件,并且只有在没有生成意外文件的情况下才返回成功。

对于有意包含输出目录中所有文件的通用解决方案,请考虑使用actions.declare_directory并创建skylark规则,而不是使用native.genrule

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50781189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档