繁体   English   中英

CMake Glob文件列表,没有目录路径

[英]CMake glob list of files without directory path

我在该网站上进行了广泛的搜索,但似乎找不到解决此问题的方法:

如果您在CMake中使用文件(GLOB ..)列出文件列表,则所有文件都将列出其完整路径。

我如何在CMake中全局保存一组文件,仅保存文件名?

我阅读了官方手册 ,在这里我发现了这一点:

 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来相应地设置路径,但是如果可以的话,我宁愿避免使用它。

谢谢您的回答!

在给定位置${SRC}包含文件和目录的情况下, LIST_DIRECTORIES用于在结果中包括/排除目录。

如果要摆脱路径,请对file(GLOB_RECURSE...)结果file(GLOB_RECURSE...)使用foreach以及get_filename_component

尝试

file(GLOB_RECURSE LIST_DIRECTORIES false src_files ${SRC})

文档是错误的, LIST_DIRECTORIES在变量之前

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM