bazel - 是否可以针对 bazel 中的当前编译器定义 CXXFLAGS?
问题描述
我正在尝试将 Make 项目转换为 Bazel。目前,makefile 检测正在使用的编译器并相应地设置某些 CXXFLAGS(并非所有标志都被所有编译器理解)。
例如:
ifeq ($(shell $(CC) -dM -E -x c++ /dev/null | grep __clang__),)
CXXFLAGS=-DUSE_GCC
else
CXXFLAGS=-DUSE_CLANG
endif
(编译器版本的代码类似。)
我怎样才能在 bazel 中实现这一点?编译器和要使用的标志之间的关系应该在项目中的某个地方定义(而不是在命令行上)。
我知道 --define 选项,但有没有办法直接将配置与正在使用的编译器相关联?
解决方案
copts
在 cc_library 或 cc_binary 中使用参数将设置编译器标志。
https://docs.bazel.build/versions/master/be/c-cpp.html#cc_binary_args
推荐阅读
- android - Android 10:如何在没有 /proc/net/arp 的情况下从 Socket / Client PC 获取 MAC 地址
- python - python中的反向DNS查找返回错误的主机
- wordpress - Wordpress 在一些图片上显示 404
- java - 试图在 JPanel 上画一条线但只画一个点
- javascript - 如何制作垂直对齐的响应式 React 引导卡?
- excel - 如果下一列在电子表格中有内容,则将单行扩展为多行
- api - 如何可靠地进行 API 调用?
- python - terraform 可以并行运行“应用”多个基础设施/工作空间吗?
- javascript - 如何使用正则表达式替换 unicode 字符?
- azure - 从 Webhook 触发时,Azure 自动化 Runbook 失败