2016-05-05 41 views
0

我希望能夠將參數從qmake項目傳遞給moc編譯器,但僅限於特定文件。從qmake傳遞參數到moc每個標題

例如,在一些.pro文件:

HEADER += foo.h \ 
      bar.h \ 
      baz.h 

我想通過-ffoo_extra.h到了foo.h,-fbar_extra.h到bar.h,並沒有什麼baz.h

This answer建議使用變量QMAKE_MOC,但會一起影響所有標題。類似的東西,但針對個人頭文件將是理想的。

回答

0

-f參數將include添加到生成的輸出中。您可以通過利用Q_MOC_RUN宏實現同樣的效果。這是even documented - 連同命令行選項,不少於:)

// foo.h 
#ifdef Q_MOC_RUN 
#include "foo_extra.h" 
#endif 
... 

// bar.h 
#ifdef Q_MOC_RUN 
#include "bar_extra.h" 
#endif 
... 
+0

看起來這是唯一的實用方法。 – Scott

+0

希望有一些侵入性較小的東西(在這種情況下重新編寫一個外部項目來處理qmake而不是cmake,並不是真的想要編輯這些文件)以及更一般的方法(例如將選項傳遞給其他區域中的單個文件,而不僅僅是moc) 將其標記爲已回答 – Scott