「グローバル」変数を出力する代わりに、それぞれのターゲットのプロパティを出力することをお勧めします。CMAKE_xxx_FLAGS の値は、ターゲットが定義されるときにターゲットにアタッチされ、後で変更される場合があります。
これは、 https : //stackoverflow.com/a/34292622/5751151に触発された、プロジェクトで使用している便利なヘルパー関数です。
function(print_target_properties tgt)
if(NOT TARGET ${tgt})
message("There is no target named '${tgt}'")
return()
endif()
# this list of properties can be extended as needed
set(CMAKE_PROPERTY_LIST SOURCE_DIR BINARY_DIR COMPILE_DEFINITIONS
COMPILE_OPTIONS INCLUDE_DIRECTORIES LINK_LIBRARIES)
message("Configuration for target ${tgt}")
foreach (prop ${CMAKE_PROPERTY_LIST})
get_property(propval TARGET ${tgt} PROPERTY ${prop} SET)
if (propval)
get_target_property(propval ${tgt} ${prop})
message (STATUS "${prop} = ${propval}")
endif()
endforeach(prop)
endfunction(print_target_properties)