macro(CMAKE_DIRECTORIES return_list) file(GLOB_RECURSE new_list CMakeLists.txt) set(dir_list "") foreach(file_path ${new_list}) get_filename_component(dir_path ${file_path} PATH) set(dir_list ${dir_list} ${dir_path}) endforeach() list(REMOVE_DUPLICATES dir_list) list(REMOVE_ITEM dir_list ${CMAKE_CURRENT_SOURCE_DIR}) set(${return_list} ${dir_list}) endmacro() cmake_directories(SUBDIRS) message(STATUS "Adding Common header (*.h, *.hpp) include directories:") foreach(subdir ${SUBDIRS}) message(STATUS " " ${subdir}) add_subdirectory(${subdir}) include_directories(${subdir}) endforeach() set(GLOBAL_HEADERS ${GLOBAL_HEADERS} PARENT_SCOPE)