AUTOMOC_MOC_OPTIONS

當使用 AUTOMOC 時,moc 的額外選項

只有在目標的 AUTOMOC 屬性為 ON 時,才會使用此屬性。在這種情況下,它會保存額外的命令列選項,這些選項會在建置期間執行 moc 時使用,也就是說,它等同於 qt4_wrap_cpp() 巨集的選擇性 OPTIONS 引數。

如果目標建立時設定了 CMAKE_AUTOMOC_MOC_OPTIONS 變數,則此屬性會由此變數的值初始化,否則初始化為空字串。

請參閱 cmake-qt(7) 手冊,以取得更多關於搭配 CMake 使用 Qt 的資訊。

範例

在此範例中,當為 object.cpp 產生 moc 檔案時,會使用 -D_EXTRA_DEFINE 選項來呼叫 moc 工具。

CMakeLists.txt
add_executable(mocOptions object.cpp main.cpp)
set_property(TARGET mocOptions PROPERTY AUTOMOC ON)
target_compile_options(mocOptions PRIVATE "-D_EXTRA_DEFINE")
set_property(TARGET mocOptions PROPERTY AUTOMOC_MOC_OPTIONS "-D_EXTRA_DEFINE")
target_link_libraries(mocOptions Qt6::Core)
object.hpp
#ifndef Object_HPP
#define Object_HPP

#include <QObject>

#ifdef _EXTRA_DEFINE
class Object : public QObject
{
Q_OBJECT
public:

  Object();

};
#endif

#endif