# Stores a list of subdirectories of directory ${curdir} into result. 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() # Adds all subdirs of the current list directory. macro(ADDALLSUBDIRS) SUBDIRLIST(subdirs ${CMAKE_CURRENT_SOURCE_DIR}) foreach( subdir ${subdirs}) add_subdirectory(${subdir}) endforeach() endmacro()