我想创建一个二进制文件的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列表。这样会更优雅 - 但如果不能从规则中检索出来,那就显得很奇怪了。
答案 0 :(得分:0)
您是否考虑过使用aspects?您可以将方面附加到给定目标的依赖关系,并将信息(在本例中为完全限定的标签字符串?)传播到根目录。
如果您需要任何其他指导,请与我们联系!