首页 > 解决方案 > 我可以使用 `bazel cquery` 来确定正在激活哪些 `config_setting` 规则吗?

问题描述

我有一个似乎选择了错误的依赖库config_setting

为了进一步调试,我尝试使用文档中的config函数,但它返回所有潜在的 config_settings。cquery

具体来说,我尝试运行以下命令: bazel cquery "config(deps(@openssl//:crypto), target)" --noimplicit_deps --bazelrc=build-scripts/windows/windows.bazelrc

它返回:

@openssl//:crypto (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@local_config_cc//:cc-compiler-k8 (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@local_config_cc//:local (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@openssl//:windows_x86_64 (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@bazel_tools//tools/cpp:toolchain_type (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@openssl//:mac_x86_64 (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@openssl//:linux_ppc64le (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)
@openssl//:android (aa65f203efeb0a68bcf0a0d51b3259145cb8e2c6bf209950206fe2bfb21381b5)

确定 Bazel 如何选择 的最佳方法是config_setting什么?是cquery吗?

我希望我的上述命令不会返回任何与 mac、linux 和 android 配置设置相关的构建规则。只是窗户。

标签: bazelboringssl

解决方案


我发现满足我需求的最佳解决方案是在我感兴趣的目标上运行 cquery,然后检查配置的构建文件(output=build在 cquery 中)以查看select语句选择了哪些值。

可以选择在日志中查看某种“配置设置解析”过程仍然会很好。但这暂时完成了工作。


推荐阅读