blob: 06b7c768d37570e9a42d2c8d9e3c1e3fdfce3684 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
function(list_subdirectories OUTPUT_VARIABLE)
cmake_parse_arguments(ARG "" "" "EXCLUDES" ${ARGN})
file(GLOB PROJECT_FILES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"*/CMakeLists.txt")
foreach(PROJECT_FILE IN ITEMS ${PROJECT_FILES})
get_filename_component(PROJECT_DIR ${PROJECT_FILE} DIRECTORY)
list(FIND ARG_EXCLUDES ${PROJECT_DIR} PROJECT_INDEX)
if(${PROJECT_INDEX} EQUAL -1)
list(APPEND PROJECT_LIST ${PROJECT_DIR})
endif(${PROJECT_INDEX} EQUAL -1)
endforeach(PROJECT_FILE)
set(${OUTPUT_VARIABLE} ${PROJECT_LIST} PARENT_SCOPE)
endfunction(list_subdirectories)
function(add_subdirectories)
cmake_parse_arguments(ARG "" "" "EXCLUDES" ${ARGN})
list_subdirectories(PROJECT_DIRS EXCLUDES ${ARG_EXCLUDES})
foreach(PROJECT_DIR IN ITEMS ${PROJECT_DIRS})
add_subdirectory(${PROJECT_DIR})
endforeach(PROJECT_DIR)
endfunction(add_subdirectories)
|