cmake add_definitions 和 COMPILE_DEFINITIONS,如何查看它们

发布于 2024-10-25 20:06:34 字数 316 浏览 1 评论 0 原文

我想查看我的 CMake 文件中当前的编译器定义集是什么。自动指定的和我添加的会很棒。不管文档怎么说,COMPILE_DEFINITIONS 宏似乎不包含 - 。

例如,在下面的设置中,消息从不包含 GUI_BUILD

add_definitions( -DGUI_BUILD )
message( "COMPILE_DEFINITIONS = ${COMPILE_DEFINITIONS}" )

我不需要以最终形式查看它们,我只是想要一个快速输出来帮助验证所有内容是否已正确配置。

I want to see what the current set of compiler definitions is in my CMake file. Ones automatically specified and the ones I'd added would be great. The COMPILE_DEFINITIONS macro doesn't appear to contain -- despite what the documentation says.

For example, in the below setup the message never includes GUI_BUILD

add_definitions( -DGUI_BUILD )
message( "COMPILE_DEFINITIONS = ${COMPILE_DEFINITIONS}" )

I don't need to see them in their final form, I just want a quick output to help verify that everything has been configured correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

城歌 2024-11-01 20:06:34

您想要从 目录中提取 COMPILE_DEFINITIONS 属性< /a>.例如,使用以下内容:

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} )

请注意,定义也可能与 目标源文件而不是目录。请注意,它们在配置之间可能有所不同。根据您的要求,您可能需要检查大量不同的属性。

You want to extract the COMPILE_DEFINITIONS property from the directory. E.g. use the following:

add_definitions( -DDebug )
get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )

Then you can simply iterate over them, e.g.:

foreach( d ${DirDefs} )
    message( STATUS "Found Define: " ${d} )
endforeach()
message( STATUS "DirDefs: " ${DirDefs} )

Note that definitions may also be associated with targets or source-files instead of directories. And note that they can differ between configurations. Depending on your requirements, you may need to check a large set of different properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文