AUTOMOC_MACRO_NAMES¶
3.10 版本新增。
一个用于 AUTOMOC 的分号分隔的列表,用于确定 C++ 文件是否需要被 moc 处理。
此属性仅在该目标上 AUTOMOC 属性为 ON 时使用。
在运行 AUTOMOC 时,CMake 会在 C++ 源文件和头文件中搜索 AUTOMOC_MACRO_NAMES 中列出的字符串。如果找到任何字符串
作为新行上的第一个非空格字符串,或者
作为新行上的
{之后的第一个非空格字符串,
那么该文件将由 moc 处理。
默认情况下,AUTOMOC_MACRO_NAMES 会从 CMAKE_AUTOMOC_MACRO_NAMES 初始化。
另请参阅 INTERFACE_AUTOMOC_MACRO_NAMES 目标属性。
有关将 CMake 与 Qt 结合使用的更多信息,请参阅 cmake-qt(7) 手册。
示例¶
在这种情况下,Q_OBJECT 宏被隐藏在另一个名为 CUSTOM_MACRO 的宏中。为了让 CMake 知道包含 CUSTOM_MACRO 的源文件需要被 moc 处理,我们调用
set_property(TARGET tgt APPEND PROPERTY AUTOMOC_MACRO_NAMES "CUSTOM_MACRO")