有没有办法将 Boost.Build 递归扫描 #include 指令的头文件限制到特定目录或目录集?即我希望它只递归地扫描我的项目中的头文件。我知道它们的外部依赖项不会改变(而且作为 Boost 和 Qt,它们非常大)。我最终在依赖关系树中有大约 50,000 个目标,这需要一段时间来处理(即使没有文件实际更改,也会导致 1-2 分钟的构建时间)。
到目前为止我发现的唯一解决方案是利用 INCLUDE 环境变量(我正在使用 MSVC) - 这意味着 Boost.Build 不需要被告知包含路径(我正在使用该功能),因此将不要扫描它们。这似乎有点骇人听闻。
我觉得我必须遗漏一些明显的东西,因为我无法找到其他遇到类似问题的人,即使我几乎立即遇到了这个问题。我来的最近的地方就是这里。
从调试输出(bjam -d 3)来看,它还会多次扫描大多数头文件......我不知道这是否意味着它们被多次添加为依赖项,但肯定是加载的成本文件和扫描的全部内容必须加起来吗?
如果我可以告诉它不要费心扫描特定目录或目录集,我可以保证头文件不会更改,那将是完美的。