首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >declare_directory消费内容

declare_directory消费内容
EN

Stack Overflow用户
提问于 2022-05-21 11:57:52
回答 1查看 116关注 0票数 2

我有一个使用declare_directory生成一组文件的宏来实现规则A:

代码语言:javascript
复制
output = ctx.actions.declare_directory("selected")

事先不知道这些文件的名称。该实现返回由declare_directory创建的目录,其内容如下:

代码语言:javascript
复制
return DefaultInfo(
    files = depset([output]),
)

规则A包含在规则B的"srcs“属性中。规则B也是用宏实现的。不幸的是,通过"srcs“属性传递给B实现的文件列表只包含规则A创建的”选定“目录,而不是驻留在该目录中的文件。

我知道Args类支持目录的扩展,因此我可以将“所选”目录中的所有文件的名称传递给一个操作。但是,我所需要的是针对每个单独的文件执行一个单独的操作,用于并行性和缓存。实现这一目标的最佳途径是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 19:15:57

这是目录输出的预期用例之一(在实现中称为TreeArtifacts ),它是使用ActionTemplate:https://github.com/bazelbuild/bazel/blob/c2100ad420618bb53754508da806b5624209d9be/src/main/java/com/google/devtools/build/lib/actions/ActionTemplate.java#L24-L57实现的

然而,这并不暴露于Starlark,目前在安卓规则AndroidBinary.java和C++ rules CcCompilationHelper.java中只有几种用法。安卓规则和C++规则将被迁移到Starlark,因此这个功能最终可能会在Starlark中提供,但我不确定具体的时间表。最好是在Github上提交一个特性请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72329331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档