subcarpetas - CMake: ¿Cómo obtener el nombre de todos los subdirectorios de un directorio?
obtener archivos de un directorio c# (1)
1) Utilice esta macro:
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()
Ejemplo:
SUBDIRLIST(SUBDIRS ${MY_CURRENT_DIR})
2) Utilice foreach
:
FOREACH(subdir ${SUBDIRS})
ADD_SUBDIRECTORY(${subdir})
ENDFOREACH()
Tengo dos preguntas relativas a CMake
1) Supongamos que tenemos una variable ${MY_CURRENT_DIR}
que contiene la ruta de un directorio que contiene varios subdirectorios: mydir1, mydir2 y mydir3. Quiero detectar estos subdirectorios y poner sus nombres en ${SUBDIRS}
(no la ruta completa de estos directorios, solo su nombre). ¿Cómo hacer eso automáticamente?
2) Suponga que ${SUBDIRS}
contiene "mydir1 mydir2 mydir3". Cómo reemplazar
ADD_SUBDIRECTORY(mydir1)
ADD_SUBDIRECTORY(mydir2)
ADD_SUBDIRECTORY(mydir3)
por un bucle sobre ${SUBDIRS}
?
Muchas gracias.