如果您在 CMake 中使用 file(GLOB..)
对文件列表进行 glob,则会列出所有文件并附上它们的完整路径。
如何在 CMake 中对一组文件进行 glob,只保存文件名?
我读了official manual在这里我发现了这个:
file(GLOB <variable>
[LIST_DIRECTORIES true|false] [RELATIVE <path>]
[<globbing-expressions>...])
和
By default GLOB lists directories - directories are omitted in result
if LIST_DIRECTORIES is set to false.
我尝试了这些解决方案,但没有一个有效:
file(GLOB_RECURSE src_files LIST_DIRECTORIES false ${SRC})
file(GLOB_RECURSE src_files LIST_DIRECTORIES=false ${SRC})
file(GLOB_RECURSE src_files LIST_DIRECTORIES(false) ${SRC})
set(LIST_DIRECTORIES false)
file(GLOB_RECURSE src_files ${SRC})
我的输出总是附有完整路径的文件列表。我知道我可以使用 RELATIVE 来相应地设置路径,但如果可以的话,我宁愿避免使用它。
最佳答案
LIST_DIRECTORIES
用于在给定位置 ${SRC}
的情况下在结果中包含/排除目录包含文件和目录。
如果你想摆脱路径,使用foreach
连同 get_filename_component
来自 file(GLOB_RECURSE...)
的结果
关于c++ - 没有目录路径的CMake glob文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738181/