c++ - 没有目录路径的CMake glob文件列表

标签 c++ cmake glob

如果您在 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/

相关文章:

c++ - 将 C++ 编译成尽可能小的尺寸

c++ - 如何在 C++ 中等待 mySQL 查询完成

c++ - 如何完全绕过 `error: no match for ‘operator==’`?

c++ - 使用 cmake 有条件地生成源输入文件

node.js - 用于从另一个文件夹中的特定文件夹复制文件的通配模式

c++ - 将 3D 数组传递给类(转换问题)

c++ - 最佳跨平台C++/QT4开发环境

macros - 跨 CMakeLists 的 CMake 宏

Python-获取文件目录作为用户输入

python - 查找子目录路径的最有效方法