如果您在CMake中使用file(GLOB..)
对文件列表进行全局搜索,则所有文件都将列出并附带其完整路径。
如何在CMake中全局访问一组文件,而只保存文件名?
我读了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来相应地设置路径,但如果可以的话,我宁愿避免它。
2条答案
按热度按时间i7uq4tfw1#
LIST_DIRECTORIES
用于在给定位置${SRC}
同时包含文件和目录的情况下在结果中包括/排除目录。如果要删除path,请对
file(GLOB_RECURSE...)
的结果使用foreach
沿着get_filename_component
knpiaxh12#
试试看
文档错误,
LIST_DIRECTORIES
出现在变量之前