0

在 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

4

1 回答 1

1

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

于 2021-01-16T18:13:08.020 回答