cmake glob关键字
在 CMake 中,GLOB 是一个用于 匹配文件路径的函数,可以自动查找符合某种模式的文件,比如 .cpp 或 .h 文件列表。它常用于自动收集源代码文件,而不需要手动列出每个文件名。
🧱 基本语法
✅ 示例用法
自动匹配所有 .cpp 和 .h 文件
或者:
🧠 常用参数说明
| 参数 | 作用说明 |
|---|---|
GLOB |
匹配当前目录下的文件 |
GLOB_RECURSE |
递归匹配子目录中的文件 |
CONFIGURE_DEPENDS |
让 CMake 在构建时检测新增的文件(否则新增文件不会自动纳入构建) |
RELATIVE |
返回相对于某路径的文件路径 |
📌 示例:带 CONFIGURE_DEPENDS
如果你在 src/ 目录中添加了新 .cpp 文件,使用 CONFIGURE_DEPENDS 会确保下次构建时自动检测这些文件。
⚠️ 注意事项
GLOB 虽然方便,但官方并不推荐用于收集源码文件。
原因:
-
GLOB 不会自动触发重新配置(除非加
CONFIGURE_DEPENDS) -
无法显式控制每个源文件,可能导致构建不可控
官方推荐的做法是手动列出源码文件,尤其是大型项目中更安全、清晰、可维护。
浙公网安备 33010602011771号