0

有时在我的 bazel 规则中,我需要运行一个生成一堆文件但将它们写入输出目录的工具,并且应该将目录路径用作参数。所以我最终得到了以下模式:

out_dir = "{}_out".format(ctx.label)
out_files = []
for file in ctx.files.srcs:
  file_path = # ... construct file path 
  o = ctx.actions.declare_file("{}/{}".format(out_dir, file_path))
  out_files.append(o)

# Now we need to fetch first file and strip out file path part
out = out_files[0].path
out = out[0:(out.find(out_dir) + len(out_dir)]

但它感觉非常冗长和丑陋,我找不到任何好的方法来使用规则属性或在分析阶段可用的东西来构建这条路径。有没有简单的方法来实现这一点?

4

0 回答 0