我正试图绕过Poco库。它包含了这样的代码。
#if defined(POCO_OS_FAMILY_UNIX)
#include "Path_UNIX.cpp"
#elif defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_WIN32_UTF8)
#if defined(_WIN32_WCE)
#include "Path_WINCE.cpp"
#else
#include "Path_WIN32U.cpp"
#endif
#elif defined(POCO_OS_FAMILY_WINDOWS)
#include "Path_WIN32.cpp"
#endif
但Bazel抱怨说 Path_*.cpp
文件,因为我没有在 srcs
节。什么是一个合适的章节来提及这些文件:它们是私有的,是源文件,不应该自己编译?
我目前的变通办法是把它们放到了 data
节,但在概念上并不相符。
实际上 data
部分不工作。
您想使用 hdrs
属性。此外,如果这些文件是依赖的库所需要的,你可以把它添加到 textual_hdrs
.
https:/docs.bazel.buildversionsmasterbec-cpp.html#cc_library.textual_hdrs。
如果你需要将这些文件从依赖的规则中隐藏起来,你需要使用genrule(或版本库级别的补丁命令)将这些文件复制到.h扩展名,并修改包含这些文件的源文件。