Project-Files

Verschiedenes zu Qt
Antworten
Willi2793
Beiträge: 147
Registriert: 29. September 2008 10:59
Kontaktdaten:

Project-Files

Beitrag von Willi2793 »

Hallo,

wir haben folgendes Szenario:
  • Mehrere Entwickler
  • Source-Directories auf unterschiedlichen Laufwerken, aber dort dann gleich strukturiert (SVN)
  • künftig auch unter verschiedenen Betriebssystemen
Wir haben in unseren Projekten größere Blöcke die immer wieder verwendet werden. Um auf die verschiedenen Lokationen eingehen zu können haben wir folgendes in ein PRI-File eingetragen was in jedem Projekt eingebunden wird:

Code: Alles auswählen

LW_QTDIR = ""

unix {
    exists(/root/QT)       { LW_QTDIR = "/Source/QT"       }
}

win32 {
    exists(C:/LensWare/QT) { LW_QTDIR = "C:/Source/QT" }
    exists(D:/LensWare/QT) { LW_QTDIR = "D:/Source/QT" }
    exists(E:/LensWare/QT) { LW_QTDIR = "E:/Source/QT" }
}

INCLUDEPATH *= $$unique(LW_QTDIR)
Soweit, so gut. Für die oben genannten wiederverwendeten Blöcke haben wir auch PRI-Files die folgendermassen strukturiert sind:

Code: Alles auswählen

DEPENDPATH *= $$unique(LW_QTDIR)/SrcDir1/
INCLUDEPATH *= $$unique(LW_QTDIR)/SrcDir1

HEADERS *= $$unique(LW_QTDIR)/SrcDir1/src1.h \
    $$unique(LW_QTDIR)/SrcDir1/src2.h

SOURCES *= $$unique(LW_QTDIR)/SrcDir1/src1.cpp \
    $$unique(LW_QTDIR)/SrcDir1/src2.cpp
Dies funktioniert auch soweit. Die Sources werden eingebunden und gefunden sowohl bei den Includes als auch später bei der Compilierung.

Aber: Im Creator in der Project-Ansicht werden die Files mehrfach aufgelistet. Folgende Bäume erscheinen z.B. unter "Headers" des PRI-Files:
  • "C:/Source" und darunter ein leerer Zweig "QT"
  • "Source/QT/SrcDir1" und darunter dann die Files
  • "SrcDir1" und darunter dann die Files
Ich frage mich nun: Ist der Ansatz falsch? Wenn ja, wie macht man es richtig? Wenn nein, wie lasse ich die überflüssigen Einträge verschwinden?

Danke und Gruß,
Willi
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Project-Files

Beitrag von solarix »

Den Source mehrmals einzubinden macht doch überhaupt keinen Sinn.. wir haben bei uns auch ein grosses Qt-SVN-Repository für unterschiedliche Betriebsysteme, aber:

1. wiederverwendbarer Code organisiert man in Libraries und linkt dagegen..
2. arbeitet man mit relativen Pfaden (z.B: "INCLUDEPATH += ../includes/libabc"), damit die Ablage bei jedem Entwickler (und OS) individuell ausgecheckt werden kann.

hth...
Willi2793
Beiträge: 147
Registriert: 29. September 2008 10:59
Kontaktdaten:

Re: Project-Files

Beitrag von Willi2793 »

Hi, danke für die Antwort. Aber wir binden den Code nicht mehrfach ein. Er erscheint nu rmehrfach in der Project-Ansicht.

Das mit den Libraries haben wir mal dieskutiert aber verworfen. Und mit relativen Pfaden arbeiten ist auch schlecht da die PRI-Files nicht immer von derselben Directory-Ebene aufgerufen werden.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Project-Files

Beitrag von solarix »

Willi2793 hat geschrieben: Aber wir binden den Code nicht mehrfach ein.
Dann verstehe ich dich evt. falsch... ich dachte ihr möchtet z.B. "src1.cpp"

Code: Alles auswählen

SOURCES *= $$unique(LW_QTDIR)/SrcDir1/src1.cpp \
    $$unique(LW_QTDIR)/SrcDir1/src2.cpp
in mehreren Pro-Files eintragen....?
Willi2793 hat geschrieben: Das mit den Libraries haben wir mal dieskutiert aber verworfen.
Warum?
Willi2793 hat geschrieben: Und mit relativen Pfaden arbeiten ist auch schlecht da die PRI-Files nicht immer von derselben Directory-Ebene aufgerufen werden.
Warum? IDEs kann man alles beibringen, Nightlybuilds ebenfalls und ab Konsole ist es sowieso kein Problem...
Willi2793
Beiträge: 147
Registriert: 29. September 2008 10:59
Kontaktdaten:

Re: Project-Files

Beitrag von Willi2793 »

Der zweitw Code-Block ist ein PRI-File. Das wird dann natürlich schon in mehreren Projekten includiert. Das ist richtig.

Gute Frage. Eventuell werde ich das nochmal aufrollen.

Wenn die PRO-Files nicht auf demselben Directory-Level stehen beziehen sich relative Pfade auf verschiedene Directories.
Antworten