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

CMake:获取目录列表(非递归),cmake,Cmake,在CMake中,如何获得存在于某个目录中的非递归目录列表? 我知道不推荐使用GLOB。为什么不推荐GLOB?这就是地球仪的用途。我喜欢GLOB,尤其是在这种情况下,抓取多个项目非常有帮助 可能就是你要找的 MACRO(SUBDIRLIST result curdir) FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) SET(dirlist "") FOREACH(child ${children}) IF(IS_DIREC

在CMake中,如何获得存在于某个目录中的非递归目录列表?
我知道不推荐使用GLOB。

为什么不推荐GLOB?这就是地球仪的用途。我喜欢GLOB,尤其是在这种情况下,抓取多个项目非常有帮助

可能就是你要找的

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()
您基本上从当前源目录中获取项目,检查它是否是目录,如果是,则将其附加到列表中

要在该宏的链接中重新生成即时消息,请参见