在Bazel中,可以使用genrule
规则来检查位置表达式是否扩展为零个文件。下面是一个示例解决方案:
在BUILD文件中,定义一个genrule
规则,并使用check_empty
脚本来检查位置表达式是否扩展为零个文件:
genrule(
name = "check_expression_empty",
srcs = [],
outs = ["expression_empty_check.txt"],
cmd = "check_empty $(location expression) > $@",
tools = ["check_empty"],
)
在同一目录下,创建一个名为check_empty
的脚本文件,用于执行检查操作。脚本内容如下:
#!/bin/bash
# check_empty script
if [ -z "$1" ]; then
echo "Expression expanded to zero files"
else
echo "Expression expanded to one or more files"
fi
确保将check_empty
脚本添加到tools
属性中,以便Bazel可以找到并使用它。
这样,当构建该genrule
规则时,check_empty
脚本将检查给定的位置表达式是否扩展为零个文件,并将结果输出到expression_empty_check.txt
文件中。
上一篇:Bazel Gazelle 错误:找不到包'@org_golang_x_tools//go/analysis/internal/facts':在目录中未找到BUILD文件。
下一篇:Bazel genrule: 声明的输出'grammar/hello_lexer.go'未由genrule创建。