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