在我的代码库中,在多个目标(cc_binary
、cc_library
等)中包含相同的源文件通常是错误的。我想要检测到这个。
我能做到
bazel query labels(srcs, //target:name)
获取单个目标的源列表。这足以找出哪些源是多个目标的一部分,通过对每个目标执行此操作,并检测哪些源文件位于多个目标中。但我仍然需要一个查询来得到每个目标的列表。
如果我能简单地查询源文件属于哪个目标,看看它是否是多个目标的源,那会容易得多。这有可能吗?
另外,我有很多源文件,查询的优化性也是一个问题。
发布于 2018-06-14 05:11:43
以下是几个澄清问题:
foo/bar/src.c
仅对foo/bar/BUILD
中定义的目标可见,然后确保foo/bar/BUILD
仅包含一个cc_library
目标。考虑使用aspects获取给定目标的所有可传递源文件的列表。
如果您确实依赖于使用bazel query
,则可以通过调用以下命令来获得项目下每个目标的全面列表,例如,
bazel query //...
https://stackoverflow.com/questions/50845271
复制相似问题