gpt4 book ai didi

CMake : How to get the name of all subdirectories of a directory?

转载 作者:行者123 更新时间:2023-12-03 07:08:13 26 4
gpt4 key购买 nike

我有两个有关 CMake 的问题

  1. 假设我们有一个变量${MY_CURRENT_DIR},它包含一个目录的路径,该目录包含多个子目录:mydir1、mydir2 和 mydir3。我想检测这些子目录并将它们的名称放入 ${SUBDIRS} (不是这些目录的完整路径,只有它们的名称)。如何自动执行此操作?

  2. 假设${SUBDIRS}包含“mydir1 mydir2 mydir3”。如何更换

    ADD_SUBDIRECTORY(mydir1)
    ADD_SUBDIRECTORY(mydir2)
    ADD_SUBDIRECTORY(mydir3)

通过${SUBDIRS}循环?

最佳答案

  1. 使用这个宏:

    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()

    示例:

    SUBDIRLIST(SUBDIRS ${MY_CURRENT_DIR})
  2. 使用foreach:

    FOREACH(subdir ${SUBDIRS})
    ADD_SUBDIRECTORY(${subdir})
    ENDFOREACH()

关于CMake : How to get the name of all subdirectories of a directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com