Wie verweist man auf das Quellverzeichnis in qmake?

8

Ich habe

hinzugefügt %Vor%

zu dem Projekt, aber es versucht, "generate-version.sh" im Zielverzeichnis auszuführen:

%Vor%

Es gibt $$ DESTDIR, aber ich sehe $$ SRCDIR nicht. Wie verweise ich auf das Projektverzeichnis in qmake (oder wie schreibe ich es um?)?

    
Vi. 04.03.2011, 10:46
quelle

5 Antworten

11

Mein erster Gedanke ist, zu versuchen, umzuschreiben

%Vor%

, damit Sie kein Shell-Skript aufrufen müssen. Vielleicht können Sie alle Anweisungen in einer Zeile kombinieren:

%Vor%

Wenn Sie beim Aufruf des Skripts nicht weiterkommen, suchen Sie wahrscheinlich nach PWD oder OUT_PWD. Aus der qmake Variablenreferenz

  

PWD

     

Diese Variable enthält den vollständigen Pfad zum Verzeichnis, in dem sich die qmake-Projektdatei (project.pro) befindet.

     

OUT_PWD

     

Diese Variable enthält den vollständigen Pfad zu dem Verzeichnis, in dem qmake das generierte Makefile platziert.

Der einzige Nachteil, der in der Dokumentation nicht erwähnt wird, ist, dass PWD, wenn Sie einen rekursiven qmake ausführen, sich darauf bezieht, woher die .pro-Datei der obersten Ebene gelesen wurde. Wenn Sie also qmake -r von {proj-root} ausführen, wenn sub / sub / sub / dir-proj.pro schließlich eingelesen wird, zeigt PWD immer noch auf {proj-root}.

Wenn Sie davon ausgehen, dass sich generate-version.sh im selben Verzeichnis befindet wie Ihre .pro-Datei auf der obersten Ebene, versuchen Sie Folgendes:

%Vor%     
jwernerny 04.03.2011, 15:00
quelle
1

Ich habe eine bessere und sauberere Lösung gefunden

%Vor%

Die Variable _PRO_FILE_PWD _ ist seit qt 4.5 dokumentiert und enthält den Pfad zum Verzeichnis, in dem sich die verwendete Projektdatei befindet (enthält die .pro-Datei)

Um jedoch auf diese Variable für QMAKE_EXTRA_TARGETS zuzugreifen, muss QMAKE_VAR _ angehängt werden.

    
benjarobin 09.06.2012 15:46
quelle
0
  

PWD

     

Gibt den vollständigen Pfad an, der zu dem Verzeichnis führt, das den Pfad enthält   aktuelle Datei wird analysiert. Dies kann nützlich sein, um auf Dateien innerhalb zu verweisen   der Quellbaum beim Schreiben von Projektdateien zur Unterstützung von Schattenerstellungen.

    
Timmmm 15.06.2014 20:46
quelle
0

Ich benutze (Linux und g ++)

%Vor%

definiert das Makro SVNVERSON als die svn-Version. Um von C ++ aus darauf zuzugreifen:

%Vor%

Erklärung: In der Shell möchte ich diesen Aufruf sehen:

%Vor%

Wie Sie sehen, sind auf der Shell-Ebene einige Escapes notwendig. In der .pro-Datei muss dann zweimal maskiert werden.

    
je suis charlie 29.01.2015 07:49
quelle
0

Das funktioniert und ist leicht zu verstehen.

%Vor%     
Ed of the Mountain 29.06.2016 14:08
quelle

Tags und Links