CMakeで現状のインクルードパスを文字列として得るには
インクルードパスをCMakeで指定するにはinclude_directoriesを利用するが, 逆に今その関数によってどこが追加されているかを文字列として取得したい.
まず, その情報自体はINCLUDE_DIRECTORIESにあるが, これはプロパティであって(環境)変数ではない. そこで一旦これをとってくる.
https://cmake.org/cmake/help/v3.0/command/include_directories.html#command:include_directories
get_directory_property(INCLUDE_PATH INCLUDE_DIRECTORIES)
http://stackoverflow.com/questions/6902149/listing-include-directories-in-cmake
ただし, ここで得たINCLUDE_PATHはリストなので, "/path/to/A:/path/to/B"のような形にするにはリストを連結しなければならない.
set(_TMP_RESULT "") set(_GLUE "") # effective glue is empty at the beginning foreach(SINGLE_PATH ${INCLUDE_PATH}) set(_TMP_RESULT "${_TMP_RESULT}${_GLUE}${SINGLE_PATH}") set(_GLUE ":") # delimiter endforeach() set(INCLUDE_PATH ${_TMP_RESULT}) # message("${INCLUDE_PATH}")
http://stackoverflow.com/questions/7172670/best-shortest-way-to-join-a-list-in-cmake
これでインクルードパスを":"で連結した文字列として得られた.