【发布时间】:2021-01-22 05:49:51
【问题描述】:
我的 cmake 配置中有以下 GLOB_RECURSE 用于将所有 cpp 文件添加到我的项目中
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*.cpp)
是否可以添加一些规则来忽略某些文件?我想忽略名称中以 test.cpp 结尾的文件。
也许有这样的东西?
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*{!(test),}.cpp)
【问题讨论】:
-
只是来自docs 的注释:“我们不建议使用 GLOB 从源代码树中收集源文件列表。如果添加或删除源时没有 CMakeLists.txt 文件更改那么生成的构建系统不知道什么时候要求 CMake 重新生成。CONFIGURE_DEPENDS 标志可能无法在所有生成器上可靠地工作,或者如果将来添加一个新的生成器不能支持它,使用它的项目将被卡住。即使 CONFIGURE_DEPENDS工作可靠,但每次重建时执行检查仍然需要成本。”