# Usage:
# assemble <curdir>'s subdirs to <result> list, except <exclude> list
#
# example:
# below will assemble CMAKE_CURRENT_SOURCE_DIR's subdir to SUBDIRS
# exclude directory that names "build | test"
# SUBDIRS will be "mxpi_imagedecoder"
#
# CMAKE_CURRENT_SOURCE_DIR
# ├-- build
# ├-- test
# └-- mxpi_imagedecoder
#
# set(EXCLUDEDIRS build test)
# SUBDIRLIST_WITH_EXCLUDE(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR} "${EXCLUDEDIRS}")
MACRO(SUBDIRLIST_WITH_EXCLUDE result curdir exclude)
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
FOREACH(child ${exclude})
LIST(REMOVE_ITEM children ${child})
ENDFOREACH()
SET(dirlist "")
FOREACH(child ${children})
IF(IS_DIRECTORY ${curdir}/${child})
LIST(APPEND dirlist ${child})
ENDIF()
ENDFOREACH()
SET(${result} ${dirlist})
ENDMACRO()