bazel - 我可以使用 `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 配置设置相关的构建规则。只是窗户。
解决方案
我发现满足我需求的最佳解决方案是在我感兴趣的目标上运行 cquery,然后检查配置的构建文件(output=build
在 cquery 中)以查看select
语句选择了哪些值。
可以选择在日志中查看某种“配置设置解析”过程仍然会很好。但这暂时完成了工作。
推荐阅读
- javascript - 无法识别 html 中的 javascript 函数
- python - (Pyrebase) 错误:orderBy 必须是有效的 JSON 编码路径
- typescript - 获取已解决承诺的返回类型?
- python - 来自 pd.describe() 的数据帧的所有列和行的 sns 条形图
- google-app-maker - 每天在 App maker 中自动发送电子邮件
- python - Django 模型:TypeError:'Manager' 对象不可调用
- c++ - 是否可以将打印值返回到变量中?
- python - 如何在 for 循环中定义 tf.layer.dense 以创建隐藏层和隐藏单元的动态数量?
- django - “创建”新记录是否会覆盖具有相同键的现有记录?
- laravel - 使用刀片视图访问和测试 cookie