Bazel传递结构公约

时间:2017-07-14 16:32:25

标签: python bazel pex build-system

我最近在公司制定了一大堆bazel规则,并创建了一些特定于我公司的自定义规则。我注意到的一件事是,在创建规则时,我经常使用自定义设计的传递数据传播,以帮助我的规则完成工作。这就是我的意思:

attrs = {
    'deps': attr.label_list(
        providers=[
            'transitive_srcs',
            'transitive_gens',
            'transitive_data',
            'transitive_reqs',
            'transitive_deps',
            'transitive_builds'
        ],
        allow_files=False
    )
}

这最终导致它与其他标准bazel规则产生不兼容。如果我的规则取决于cc_binary(),那么期望cc_binary()发送额外的传递数据。关于我们应该如何建立规则是否有任何约定?我很乐意跟随一些或创建一些,以便更容易分享规则。

这是我从中获取代码示例的地方。 https://github.com/findmine/bazel-pex-rule

1 个答案:

答案 0 :(得分:1)

有可能为Java rules创建本机提供程序,但遗憾的是还没有为C ++规则创建。这项工作正在进行中。目前,最好的方法是让宏包装自定义规则并在cc_.*规则中添加各种文件。