Listing include_directories in CMake
You can use the get_property command to retrieve the value of the directory property
INCLUDE_DIRECTORIES
Something like this:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
The value of this directory property only tracks the include_directories commands that have occurred previously in the same CMakeLists file, or that have been inherited from previous occurrences in a parent CMakeLists file. If your find_package and include_directories commands are scattered about throughout many subdirectories, this becomes a challenging issue.
If you get to that point, you may consider overriding the include_directories command with your own function or macro and track the values passed to it yourself. Or, simply accumulate them in a global property or an internal cache variable alongside each call to include_directories.
See the documentation here:
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
Our solution to write include directories added by conan to a file
function(output_conan_include_dirs)
set(include_dir_str "")
foreach(DIR ${CONAN_INCLUDE_DIRS})
set(include_dir_str "${include_dir_str}${DIR}\n")
endforeach()
set(pth "${CMAKE_BINARY_DIR}/conan-includes.txt")
file(WRITE "${pth}" "${include_dir_str}")
message(STATUS "Conan include directories written to: ${pth}")
endfunction()
output_conan_include_dirs()