我想看看我的CMake文件中当前的编译器定义集是什么。 Ones自动指定,我添加的将是伟大的。 COMPILE_DEFINITIONS
宏似乎不包含 - 尽管文档说的是什么。
例如,在以下设置中,邮件永远不会包含GUI_BUILD
add_definitions( -DGUI_BUILD )
message( "COMPILE_DEFINITIONS = ${COMPILE_DEFINITIONS}" )
我不需要在最终形式中看到它们,我只想快速输出以帮助验证所有内容都已正确配置。
答案 0 :(得分:22)
您想从directory中提取COMPILE_DEFINITIONS属性。例如。使用以下内容:
add_definitions( -DDebug )
get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )
然后你可以简单地迭代它们,例如:
foreach( d ${DirDefs} )
message( STATUS "Found Define: " ${d} )
endforeach()
message( STATUS "DirDefs: " ${DirDefs} )
请注意,定义也可能与targets或source-files而不是目录相关联。请注意,它们可能因配置而异。根据您的要求,您可能需要检查大量不同的属性。