【问题标题】:CMake: Getting a list of directories (non-recursive)CMake:获取目录列表(非递归)
【发布时间】:2017-11-16 21:18:35
【问题描述】:

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

【问题讨论】:

    标签: cmake


    【解决方案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()
    

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

    感谢在该宏的链接中重新定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多