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