是否可以在bazel中针对当前编译器定义CXXFLAGS?

时间:2019-04-10 11:24:19

标签: bazel

我正在尝试将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选项,但是有没有办法将配置与使用的编译器直接相关?

1 个答案:

答案 0 :(得分:0)

在cc_library或cc_binary中使用copts参数将设置编译器标志。

https://docs.bazel.build/versions/master/be/c-cpp.html#cc_binary_args