bazel 中的输出类型是什么?

问题描述

在 Bazel 中,您可以定义一个属性类型,可以是 int 或 string ... 或 output

属性类型为“输出”是什么意思?

这是一个例子:

def _something(ctx):

    print("The username is: ",ctx.attr.username)
    print("boolean value is",ctx.attr.boolean)
    print("my age is:",ctx.attr.age)
    print("Start printing hours .." )
    for i in ctx.attr.hours:
        print (i)
    print("Finish printing hours ..")
    print("Depending on: ",ctx.attr.dep_on)

print_me = rule(
    implementation = _something,attrs = {
        "username" : attr.string(),"boolean" : attr.bool(),"age" : attr.int(),"hours" : attr.int_list(),"dep_on": attr.label(),"the_results": attr.output(),},)

这是一个简单的规则,它的输出类型为 the_results

解决方法

这意味着该属性对应于规则将创建要生成的操作的文件。请参阅 https://docs.bazel.build/versions/master/skylark/rules.html#output-attributeshttps://docs.bazel.build/versions/master/skylark/lib/attr.html#output