将文件夹下的所有文件添加到 CMake glob?
Add all files under a folder to a CMake glob?
我刚读过这个:
CMake - Automatically add all files in a folder to a target?
答案提示文件 glob,例如:
file(GLOB "*.h" "*.cpp")
现在,如果我希望我的目标依赖于特定文件夹下特定类型的所有文件——这些文件可能位于多个子文件夹中,该怎么办?我尝试使用
execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
然后
add_executable(foo ${BAR}
但这给了我错误:
找不到源文件:
src/baz/some/file/here
src/baz/some/other_file/here
src/baz/some/other_file/here2
(是的,有那个间距。)
我做错了什么?
将我的评论变成答案
如果要添加文件的递归搜索,请使用 file(GLOB_RECURSE ...)
file(GLOB_RECURSE source_list "*.cpp" "*.hpp")
你的第二个例子将转化为
file(GLOB_RECURSE BAR "src/baz/*.cpp")
参考资料
file(...)
- Specify source files globally with GLOB?
我刚读过这个:
CMake - Automatically add all files in a folder to a target?
答案提示文件 glob,例如:
file(GLOB "*.h" "*.cpp")
现在,如果我希望我的目标依赖于特定文件夹下特定类型的所有文件——这些文件可能位于多个子文件夹中,该怎么办?我尝试使用
execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
然后
add_executable(foo ${BAR}
但这给了我错误:
找不到源文件:
src/baz/some/file/here
src/baz/some/other_file/here
src/baz/some/other_file/here2
(是的,有那个间距。)
我做错了什么?
将我的评论变成答案
如果要添加文件的递归搜索,请使用 file(GLOB_RECURSE ...)
file(GLOB_RECURSE source_list "*.cpp" "*.hpp")
你的第二个例子将转化为
file(GLOB_RECURSE BAR "src/baz/*.cpp")
参考资料
file(...)
- Specify source files globally with GLOB?