Seite 1 von 1

meherere Programmversionen aus einer qmake erstellen

Verfasst: 19. November 2007 12:28
von butze
hi!

in meinem Progamm habe ich mehrere bedingte Compilierungsanweisungen für mehrere Testfälle (#IFDEF TEST1.... #ENDIF) gemacht.

Momentan muss ich allerdings für jeden einzelnen testfall in die *.pro Datei ein #DEFINE TEST1 schreiben und die anderen TEST2... entfernen.

Jetzt möchte ich aber nicht für jeden Testfall in der *.pro Datei rumwerkeln und alles einzeln compilieren, sondern einfach mehrere *.exe erstellen, die mit unterschiefdlichen DEFINES compiliert wurden.

geht das irgendwie? Am liebsten noch mit voreingestelltem Dateinamen für jede Version :)

Verfasst: 19. November 2007 12:59
von solarix
vielleicht gehts auch eleganter, aber via Shell-Variabeln ist das sicher moeglich:

z.B. in die pro-File:

Code: Alles auswählen

QMAKE_CXXFLAGS += ${TESTCASE}
nach einem neuen "qmake" kannst du nun in der Shell Testcases generieren via

Code: Alles auswählen

 $ export TESTCASE='-DTEST1'; make clean; make
 $ export TESTCASE='-DTEST2'; make clean; make
usw... wenn du mehrere Binaries moechtest, kannst du ja diese Abfolge in ein Script packen und die jeweiligen Binaries dazwischen umbenennen..

Verfasst: 19. November 2007 16:02
von butze
..danke für die Anwort, aber irgendwie hilft mir die gerade nicht viel :(

bin noch unerfahren, was shell skripte etc. angeht.


Kann man nicht mit einfachen befehlen im qmake selbst sagen, dass er 3 exen mit 3 verschiedenen defines nehmen soll?

...und dann am liebsten noch mit eclipse einfach per "klick" :)

(eclipse europa, cdt4, qtplugin, mingw)


..nötigenfalls freunde ich mich aber auch mit der kommandozeile an


was das angeht. Ich hab keine Ahnung, wie ich deinen Tipp benutzen soll.
QMAKE_CXXFLAGS

This variable contains the C++ compiler flags that are used when building a project. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified. The flags specific to debug and release modes can be adjusted by modifying the QMAKE_CXXFLAGS_DEBUG and QMAKE_CXXFLAGS_RELEASE variables, respectively.
$ export TESTCASE='-DTEST1'; make clean; make
gebe ich das dann in der shell nach "qmake" an?