Ответ 1
Вы можете использовать команду get_property для извлечения значения свойства directory
INCLUDE_DIRECTORIES
Что-то вроде этого:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
Значение этого свойства каталога отслеживает только команды include_directories, которые произошли ранее в том же файле CMakeLists, или которые были унаследованы от предыдущих случаев в родительском файле CMakeLists. Если команды find_package и include_directories разбросаны по многим подкаталогам, это становится сложной проблемой.
Если вы дойдете до этой точки, вы можете рассмотреть возможность переопределения команды include_directories своей собственной функцией или макросом и отслеживать значения, переданные ей сами. Или просто аккумулируйте их в глобальном свойстве или внутренней переменной кэша рядом с каждым вызовом include_directories.
Смотрите документацию здесь:
http://cmake.org/cmake/help/v2.8.8/cmake.html#command:get_property
http://cmake.org/cmake/help/v2.8.8/cmake.html#prop_dir:INCLUDE_DIRECTORIES