我正在尝试将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选项,但是有没有办法将配置与使用的编译器直接相关?
答案 0 :(得分:0)
在cc_library或cc_binary中使用copts
参数将设置编译器标志。
https://docs.bazel.build/versions/master/be/c-cpp.html#cc_binary_args