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