如何使用 bazel build 检查系统是否有一些头文件?
How to check whether system has some header file using bazel build?
我想要找到的是某些特定于平台的头文件的存在。
例如,在源代码中会有这样的#ifdef 部分。
#ifdef HAVE_XXX_H
//...do something
#else
//...do other thing
#endif
在 Autoconf 或 Cmake 中,存在用于检测平台特定头文件或定义的专用宏或命令。因此,我可以根据该宏的结果轻松地将 'HAVE_XXX_H' 设置为 1 或 0。
使用bazel,如何实现这种事情?
谢谢。
您可以使用 select()
.
示例:select()
in cc_library.srcs
。您可以在 cc_library.hdrs
.
中执行相同的操作
如果您确定 header 始终出现在特定平台上,请使用 László 详述的 select()
。
如果您确实需要在构建时检测 header,则必须实施一个自定义 repository_rule,它将查询系统并生成一个带有 header 定义宏。
我想要找到的是某些特定于平台的头文件的存在。 例如,在源代码中会有这样的#ifdef 部分。
#ifdef HAVE_XXX_H
//...do something
#else
//...do other thing
#endif
在 Autoconf 或 Cmake 中,存在用于检测平台特定头文件或定义的专用宏或命令。因此,我可以根据该宏的结果轻松地将 'HAVE_XXX_H' 设置为 1 或 0。
使用bazel,如何实现这种事情?
谢谢。
您可以使用 select()
.
示例:select()
in cc_library.srcs
。您可以在 cc_library.hdrs
.
如果您确定 header 始终出现在特定平台上,请使用 László 详述的 select()
。
如果您确实需要在构建时检测 header,则必须实施一个自定义 repository_rule,它将查询系统并生成一个带有 header 定义宏。