如何检索目标依赖项的完全限定名称?

时间:2018-06-06 18:52:09

标签: bazel

我想创建一个二进制文件的tarball以及它依赖于使用pkg_tar()的所有库。我可以使用

检索二进制文件的依赖项列表
deps = native.existing_rule('my_binary')['deps']

但是,列表中的项目缺少@repo_name//规则中指定的cc_binary()前缀。例如,@system//:ace变为:ace;当我尝试对:ace进行操作时,bazel正确地告诉我没有这样的目标。

我查看了native.existing_rule返回的整个词典,但没有找到找到遗失信息的方法。是否无法使用native.existing_rule或类似方法检索此信息?

我知道我可以编写一个创建cc_binary目标和pkg_tar目标的宏,共享它们之间的deps列表。这样会更优雅 - 但如果不能从规则中检索出来,那就显得很奇怪了。

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用aspects?您可以将方面附加到给定目标的依赖关系,并将信息(在本例中为完全限定的标签字符串?)传播到根目录。

如果您需要任何其他指导,请与我们联系!