2012-04-10 23 views
3

Angenommen, ich schreibe Code auf 2 Computern, die verschiedene Linux-Distributionen läuft.Wie man Distro-spezifische bedingte qmake-Projekt erstellen

Wie qmake diese beiden Distributionen unterscheiden und bestimmten LIBS für diese beiden zuweisen.

Zum Beispiel;

unix: { 

    ubuntu*: { 
      LIBS += -lcxcore -lhighgui -lm 
    } 

    gentoo*: { 
      LIBS += -lopencv_imgproc -lopencv_highgui -lm 
    } 

} 

Antwort

6

Ich denke, man kann „uname -a“ laufen und einen regulären Ausdruck verwenden, den Rückgabewert in der .pro-Datei zu überprüfen:

UNAME = $$system(uname -a) 

contains(UNAME, YourRegExpToMatchGentoo): GENTOO = 1 
contains(UNAME, YourRegExpToMatchUbuntu): UBUNTU = 1 

contains(GENTOO, 1): { 
    LIBS += -lcxcore -lhighgui -lm 
} 

contains(UBUNTU, 1): { 
    LIBS += -lopencv_imgproc -lopencv_highgui -lm 
} 
+1

Dank @rogerzanoni, „enthält“ ist das, was ich war Auf der Suche nach. Ändere deine Version in folgendes: 'GENTOO = $$ System (cat/proc/version | grep -o Gentoo)' 'UBUNTU = $$ System (cat/proc/version | grep -o Ubuntu)' 'enthält (GENTOO, Gentoo): { Nachricht (Dies ist Gentoo) LIBS + = -lopencv_imgproc -lopencv_highgui -Im } '' enthält (Ubuntu, Ubuntu): { Nachricht (Dies ist Ubuntu) LIBS + = -lcxcore -lhighgui -lm } ' – tarik