message("CMAKE_CURRENT_SOURCE_DIR=: ${CMAKE_CURRENT_SOURCE_DIR}")SUBDIRLIST(dirs ${CMAKE_CURRENT_SOURCE_DIR})message("Found sub directories:\n${dirs}")
# 下面这个替换在find命令时才需要; 使用宏时不需要;
string(REPLACE "\n"";" sub_dirs_list ${dirs})message("after replace sub directories:\n${sub_dirs_list}")#foreach(d ${sub_dirs_list})foreach(d ${dirs})message("dir is :${d}")add_subdirectory(${d})endforeach(d)
效果
$ cmake ..CMAKE_CURRENT_SOURCE_DIR=: /home/neo/fast-dev/t-cmake-prj/tc
Found sub directories:
abc;cbb
after replace sub directories:
abccbb
dir is :abc
dir is :cbb
-- Configuring done
-- Generating done
-- Build files have been written to: /home/neo/t-cmake-prj/build