如何在 CMake 的不同目录中使用文件 glob

And*_*urg 5 cmake

file(GLOB ...)并且file(GLOB_RECURSE ...)似乎只适用于当前的源目录。有什么办法可以全局访问不同的目录吗?

Bla*_*uze 9

file(GLOB) 一开始可能有点混乱,几个月前我遇到了类似的问题。

您必须直接在以下文件中指定您的路径<globbing-expressions>

file(GLOB <variable>
     [LIST_DIRECTORIES true|false] [RELATIVE <path>]
     [<globbing-expressions>...])
Run Code Online (Sandbox Code Playgroud)

例如 :

file(GLOB my_cpp_list "${CMAKE_CURRENT_SOURCE_DIR}/directory/*.cpp")
foreach(file_path ${my_cpp_list})
    message(${file_path})
endforeach()
Run Code Online (Sandbox Code Playgroud)

将打印所有.cpp文件的路径${CMAKE_CURRENT_SOURCE_DIR}/directory