CMake:获取目录列表(非递归)

时间:2017-11-16 21:18:35

标签: cmake

在CMake中,如何获取某个目录中存在的非递归目录列表? 我可以看到不推荐使用GLOB。

1 个答案:

答案 0 :(得分:1)

为什么不推荐GLOB?这就是GLOB的用途。我喜欢GLOB,特别是在这样的情况下,抓住多件物品非常有帮助。

The macro from this question可能是您正在寻找的内容。

MACRO(SUBDIRLIST result curdir)
  FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
  SET(dirlist "")
  FOREACH(child ${children})
    IF(IS_DIRECTORY ${curdir}/${child})
      LIST(APPEND dirlist ${child})
    ENDIF()
  ENDFOREACH()
  SET(${result} ${dirlist})
ENDMACRO()

您基本上从当前源目录中获取项目,检查它是否是目录,如果是,请将其附加到列表中。

建议在该宏的链接中重新说明。