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