将参数从qmake传递到moc每个标头

时间:2016-05-05 15:20:19

标签: qt qt-creator 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变量,但这会影响所有标头。这样的东西,但针对单个头文件将是理想的。

1 个答案:

答案 0 :(得分: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
...