不遵循所有 select 个分支的 Bazel 查询

Bazel query that doesn't follow all select branches

我有一个可配置的 bazel 构建(即带有 select 语句的构建),我想要一个已用依赖项的列表,而不是所有依赖项的列表。

例如,我的 BUILD 如下:

config_setting(
   name = "arm",
   define_values = {
       "arm": "True",
   },
)
cc_binary(
    name = "main",
    srcs = ["main.C"] + select({
             "//:arm": ["ARM.C"],
             "//conditions:default": ["X86.C"],
}),

)

bazel query --noimplicit_deps deps(//:main) 产生:

//:main
//:main.C
//:arm  
//:X86.C
//:ARM.C

我需要构建什么样的查询才能使 ARM.C 丢失?

你试过cquery吗?它相当新,我认为它能够完成您正在寻找的东西:)

https://docs.bazel.build/versions/master/cquery.html