如何使用bazel build检查系统是否有一些头文件?

时间:2017-08-25 04:22:16

标签: bazel

我想要找到的是某些特定于平台的头文件的存在。 例如,在源代码中会有一些像这样的#ifdef部分。

#ifdef HAVE_XXX_H
//...do something
#else
//...do other thing
#endif

在Autoconf或Cmake中,存在用于检测平台特定头文件或定义的专用宏或命令。所以,我可以很容易地设置' HAVE_XXX_H'根据该宏的结果为1或0。

使用bazel,我怎样才能实现这种目标?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您确定标题始终存在于特定平台上,请使用László详细说明的select()

如果您确实需要在构建时检测标头,则必须实现一个自定义repository_rule,它将查询系统并生成一个带有定义宏的标头的工作区。

答案 1 :(得分:0)

您可以使用select()

示例:select() in cc_library.srcs。您可以在cc_library.hdrs中执行相同操作。