作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个有关 CMake 的问题
假设我们有一个变量${MY_CURRENT_DIR}
,它包含一个目录的路径,该目录包含多个子目录:mydir1、mydir2 和 mydir3。我想检测这些子目录并将它们的名称放入 ${SUBDIRS}
(不是这些目录的完整路径,只有它们的名称)。如何自动执行此操作?
假设${SUBDIRS}
包含“mydir1 mydir2 mydir3”。如何更换
ADD_SUBDIRECTORY(mydir1)
ADD_SUBDIRECTORY(mydir2)
ADD_SUBDIRECTORY(mydir3)
通过${SUBDIRS}
循环?
最佳答案
使用这个宏:
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})
使用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/
我是一名优秀的程序员,十分优秀!