ein*_*ica 9 glob cmake build-dependencies
我刚看过这个:
答案表明文件为glob,例如:
file(GLOB "*.h" "*.cpp")
Run Code Online (Sandbox Code Playgroud)
现在,如果我希望我的目标依赖于特定文件夹下某种类型的所有文件 - 可能在多个子文件夹中,该怎么办?我试过用
execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
Run Code Online (Sandbox Code Playgroud)
然后
add_executable(foo ${BAR}
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
找不到源文件:
src/baz/some/file/here
src/baz/some/other_file/here
src/baz/some/other_file/here2
Run Code Online (Sandbox Code Playgroud)
(是的,有那个间距.)
我在这做错了什么?
Flo*_*ian 17
将我的评论转化为答案
如果要添加递归搜索文件使用 file(GLOB_RECURSE ...)
file(GLOB_RECURSE source_list "*.cpp" "*.hpp")
Run Code Online (Sandbox Code Playgroud)
你的第二个例子将转化为
file(GLOB_RECURSE BAR "src/baz/*.cpp")
Run Code Online (Sandbox Code Playgroud)
参考