qmake und Einstellungen für CONFIG

Verschiedenes zu Qt
Antworten
TheBert
Beiträge: 21
Registriert: 1. September 2009 14:27

qmake und Einstellungen für CONFIG

Beitrag von TheBert »

Hallo,

ich befasse mich gerade mit qmake und habe auch die doku gewälzt. Ich bin auf viele einstellungsmöglichkeiten gestoßen und hab auch so manche tipps gefunden, die mir das leben leichter machen.

Zu meiner frage:

Ich weiß, das ich mit

Code: Alles auswählen

INCLUDEPATH = ...
LIBS += -L... -l...
libraries hinzufügen kann, das funktioniert auch wunderbar.

Jetzt habe ich in der doku die möglichkeit gefunden, bei CONFIG eine variable zu verwenden, welche als scope dient.

Bsp. aus der doku:

Code: Alles auswählen

 CONFIG += qt console newstuff
 ...
 newstuff {
     SOURCES += new.cpp
     HEADERS += new.h
 }
Mein gedanke ist jetzt, z.b. für config die variable "MyLibs" anzulegen, welche als inhalt z.b. folgendes hat:

Code: Alles auswählen

MyLibs {
INCLUDEPATH = /usr/share/my_libs
LIBS += -L/usr/lib/
LIBS += -lMyLib1
LIBS += -lMyLib2
LIBS += -lMyLib3
}
Was muss ich machen, wenn ich jetzt ein neues projekt anlege, und im .pro file folgendes angebe

Code: Alles auswählen

CONFIG += MyLibs
das automatisch der o.g. bereich MyLibs {...} eingefügt wird bzw. verwendet wird?

Muss ich da irgendwo ein eigenes file anlegen oder so?

Als beispiel habe ich das QXT projekt gefunden, wenn man die qxt libs verwenden möchte, dann muss man im .pro file CONFIG += qxt angeben und die libs werden gefunden. Ich habe das projekt schon zerlegt und geschaut, konnte aber nichts finden wie das gemacht wird, bzw. weiß ich nicht wonach ich suchen soll.

Danke.
koppi
Beiträge: 29
Registriert: 21. Dezember 2010 14:30
Wohnort: Augsburg
Kontaktdaten:

Re: qmake und Einstellungen für CONFIG

Beitrag von koppi »

Qxt mach das über die contains-Funktion:

Code: Alles auswählen

include(qxtvars.prf)

DEPENDPATH      += $${QXT_INSTALL_HEADERS}
INCLUDEPATH     += $${QXT_INSTALL_HEADERS}

QMAKE_RPATHDIR  += $${QXT_INSTALL_LIBS}
macx:LIBS       += -F$${QXT_INSTALL_LIBS}
LIBS            += -L$${QXT_INSTALL_LIBS}

contains(QXT, berkeley) {
    contains(QXT_MODULES, berkeley):DEFINES += QXT_BERKELEY_LIB
    else:warning(Qxt was built without QxtBerkeley)

    DEPENDPATH       += $${QXT_INSTALL_HEADERS}/QxtBerkeley
    INCLUDEPATH      += $${QXT_INSTALL_HEADERS}/QxtBerkeley
    macx:INCLUDEPATH += $${QXT_INSTALL_LIBS}/QxtBerkeley.framework/HEADERS/

    qtAddLibrary(QxtBerkeley)
    QXT += core
}

contains(QXT, web) {
    contains(QXT_MODULES, web):DEFINES += QXT_WEB_LIB
    else:warning(Qxt was built without QxtWeb)

    DEPENDPATH       += $${QXT_INSTALL_HEADERS}/QxtWeb
    INCLUDEPATH      += $${QXT_INSTALL_HEADERS}/QxtWeb
    macx:INCLUDEPATH += $${QXT_INSTALL_LIBS}/QxtWeb.framework/HEADERS/

    qtAddLibrary(QxtWeb)
    QXT += core network
    QT  += network
}
Antworten