CMake是否支持递归包含目录?

时间:2015-06-23 13:41:18

标签: cmake

显然,XCode支持包括目录及其所有子目录。我想知道CMake是否支持这种模式?

我目前正在使用include_directores

1 个答案:

答案 0 :(得分:1)

如果要添加递归文件

您必须使用FILE中的GLOB_RECURSE模式。

如果您想递归添加子目录

例如,你可以使用这个方便的宏(取自VTK Cmake examples

MACRO(HEADER_DIRECTORIES return_list)
    FILE(GLOB_RECURSE new_list *.h)
    SET(dir_list "")
    FOREACH(file_path ${new_list})
        GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
        SET(dir_list ${dir_list} ${dir_path})
    ENDFOREACH()
    LIST(REMOVE_DUPLICATES dir_list)
    SET(${return_list} ${dir_list})
ENDMACRO()

来自CMake文档的评论(我个人不遵循):

  

我们不建议使用GLOB从中收集源文件列表   你的源代码树