Bazel genrules 是否提供临时目录?

sdg*_*sdh 5 bazel

Bazel 是否为 genrules 中的临时目录提供变量替换?

有时在创建最终输出工件之前我需要一个暂存区。

我在想象这样的事情:

genrule(
    name = "example",
    srcs = [ "a.txt" ],
    cmd = "cp $< $(TMP)/b.txt && cp $(TMP)/b.txt $@",
)
Run Code Online (Sandbox Code Playgroud)

$(TMP) 将是 Bazel 在每次规则执行时为我生成的文件夹。

Lás*_*zló 4

不,没有。(从 Bazel 0.23.1 开始)

$TMPDIR确实设置了(即使使用--incomplete_strict_action_env),所以mktemp应该可以工作。但它$TMPDIR绝不是一个专用的临时目录(它通常只是/tmp),所以要小心你破坏的内容。