Wir haben eine ziemlich große Code-Basis. Der Großteil des Codes wird mit qmake kompiliert, um die Makefiles zu erzeugen. Es gibt jedoch einige Unterprojekte, die durch Ausführen von Stapeldateien oder Ausführen anderer Programme erzeugt werden.Ausführen eines Programms/Skripts von QMake
Ich möchte in der Lage sein, alles mit qmake kompiliert zu haben, aber ich kann nicht herausfinden, wie man qmake einfach ein Skript ausführen.
Eine Sache, die ich versucht habe, ist QMAKE_EXTRA_TARGETS in meiner Pro-Datei, etwa so:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
ich dann die Batch-Datei erzeugt placeholder.cpp wie so haben muß:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
Das scheint gut zu funktionieren. Das Problem ist, dass es etwas heikel ist. Wenn ich batch_runner.target nicht vorschreibe (d. H. Ich lasse es leer lassen) oder placeholder.cpp nicht in SOURCES setzen, wird die Batchdatei nie ausgeführt. Dies liegt daran, dass qmake Batch_Runner nicht ausführt, um die Aktion für eine andere Abhängigkeit im Makefile auszuführen.
Gibt es eine bessere Möglichkeit, QMake ein Makefile zu erstellen, so dass ein Skript ausgeführt wird, wenn das Makefile ausgeführt wird?
Interessant. Das funktioniert, aber der Befehl wird ausgeführt, wenn 'qmake' ausgeführt wird und nicht, wenn 'nmake' ausgeführt wird. Es passiert auch, dass es dreimal ausgeführt wird, anstatt einmal ausgeführt zu werden. –
Möglicherweise müssen Sie einen Bereich hinzufügen, um sicherzustellen, dass er nur einmal ausgeführt wird. –
Ich habe dem Beispiel gerade einen Bereich hinzugefügt, so dass der Befehl nur einmal ausgeführt wird, wenn qmake ausgeführt wird. – pixelgrease