我想要找到的是某些特定于平台的头文件的存在。 例如,在源代码中会有一些像这样的#ifdef部分。
#ifdef HAVE_XXX_H
//...do something
#else
//...do other thing
#endif
在Autoconf或Cmake中,存在用于检测平台特定头文件或定义的专用宏或命令。所以,我可以很容易地设置' HAVE_XXX_H'根据该宏的结果为1或0。
使用bazel,我怎样才能实现这种目标?
感谢。
答案 0 :(得分:2)
如果您确定标题始终存在于特定平台上,请使用László详细说明的select()
。
如果您确实需要在构建时检测标头,则必须实现一个自定义repository_rule,它将查询系统并生成一个带有定义宏的标头的工作区。
答案 1 :(得分:0)
您可以使用select()
。
示例:select()
in cc_library.srcs
。您可以在cc_library.hdrs
中执行相同操作。