2016-05-05 11 views
0

Ich würde gerne in der Lage sein, Argumente an den Moc-Compiler aus einem qmake-Projekt, sondern nur für bestimmte Dateien übergeben.Übergabe von Argumenten von qmake zu MOC pro Header

Beispiel, in einigen .proDatei:

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

würde Ich mag -ffoo_extra.h passieren foo.h, -fbar_extra.h bar.h, und nichts baz.h

This answer schlägt vor, mit die QMAKE_MOC Variable, aber das betrifft alle Header zusammen. Etwas ähnliches, aber auf einzelne Header-Dateien ausgerichtet wäre ideal.

Antwort

0

Das Argument -f fügt der generierten Ausgabe ein Include hinzu. Sie können dasselbe erreichen, indem Sie das Makro Q_MOC_RUN nutzen. Es ist even documented - zusammen mit Befehlszeilenoptionen, nicht weniger :)

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

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

Es sieht so aus, als ob dies der einzige praktische Weg ist. – Scott

+0

War auf etwas weniger invasive (Überarbeitung eines externen Projekts mit qmake statt cmake in diesem Fall zu arbeiten, wollte nicht wirklich die Dateien bearbeiten), und allgemeiner (zB Weitergabe von Optionen an einzelne Dateien in anderen Bereichen, nicht nur moc) Wird es als beantwortet markieren – Scott