Seite 1 von 1

VS.NET2003 & UIC - Dependency-Probleme

Verfasst: 26. Oktober 2005 19:07
von Massa
Qt v4.0.1:
Bei einem Projekt habe ich fuer meine .ui-Dateien im VisualStudio.NET 2003 folgenden Custom Build Step eingetragen:

Code: Alles auswählen

Command Line: "$(QTDIR)\bin\uic.exe" "$(InputPath)" -o "$(InputDir)\..\include\GUI\ui\$(InputName).h"
Description: UIC'ing $(InputFileName)...
Outputs: $(InputDir)\..\include\GUI\ui\$(InputName).h
Additional Dependencies: $(InputPath)
Die daraus resultierenden .h-Dateien sind in einem eigenen Baum in der Solution eingetragen (nur zur Kontrolle).

Ausserdem werden die generierten .h-Dateien dann in eigenen .h-Dateien eingebunden und diese leiten dann aus den UI-Klassen eigene Klassen ab.

Soweit so gut. Das funktioniert auch gut.
Wenn ich die Solution baue, macht er brav seine ganzen Schritte (uic, dann moc'ed er meine Header, etc.)
Aber irgendwie erkennt jetzt VisualStudio nicht, dass die vom UIC verwendeten .ui-Dateien sich nicht geändert haben und dass die generierten .h-Dateien bereits existieren.
Bei jedem "Build Solution" ruft er wieder den UIC auf um aus den .ui die .h-Dateien zu generieren :shock:
Auch wenn ich dann z.B. den Debugger starten will, werde ich jedesmal gefragt, ob ich das Projekt nicht übersetzen will, es sei noch nicht aktuell :cry:

Bin ich zu doof das richtig im VS.NET einzutragen oder was ist da los :?:

Das ganze ist auch deswegen besonders lästig, weil er dann nach dem UIC Aufruf natürlich (in dem Fall zu recht) weitere von diesen generierten .h-Dateien abhängige Dateien neu übersetzt.

Hat irgendjemand eine Idee woran das liegen könnte bzw. wie ich das abstellen kann?

Verfasst: 27. Oktober 2005 07:39
von Christian81
Warum benutzt du nicht qmake um die vcproj-Datei zu erstellen. Zumdinest zum Test um zu sehen was qmake für den CustomBuildStep einträgt:

Code: Alles auswählen

<Tool
    Name="VCCustomBuildTool"
    AdditionalDependencies="C:\tmp\qt-4.0.1\bin\uic.exe"
    CommandLine="C:\tmp\qt-4.0.1\bin\uic.exe finddialog.ui -o ui_finddialog.h"
    Description="UIC finddialog.ui"
    Outputs="ui_finddialog.h"/>
Das sieht schon etwas anders aus als bei Dir.

Verfasst: 27. Oktober 2005 22:43
von Massa
Christian81 hat geschrieben:Warum benutzt du nicht qmake um die vcproj-Datei zu erstellen. Zumdinest zum Test um zu sehen was qmake für den CustomBuildStep einträgt:
Könnte ich ja mal versuchen...
(wobei ich zuerst einmal den umgekehrten Weg gehen müsste und eine .pro Datei erzeugen müsste :shock: )
Christian81 hat geschrieben:Das sieht schon etwas anders aus als bei Dir.
Findest Du? Ich nicht :wink:
Ich benutze nur VS-Variablen, damit ich die Regel überall gleich machen kann und nicht für jede Datei anpassen muss.
Und ich will meine Ergebnisse in ein spezielles Verzeichnis schreiben, damit andere Sourcen das gleich finden.
Das ist für mich jetzt nicht wesentlich anders... :)

Das einzige was bei mir eingetragen ist, ist eine Abhängigkeit zur eigenen Sourcedatei (und bei Dir zum uic-Compiler selber)
Diese Abhängigkeite hatte ich aber auch schon mal weggelassen - mit gleichem Ergebnis.

Aber Du hast insofern Recht, dass ich mal versuchen werde, zumindest bei einer Datei die Variablen wegzulassen und feste Werte hinzuschreiben - mal sehen ob's dann besser wird (und das VS vielleicht Probleme mit der Auflösung der Variablen hat).

Verfasst: 28. Oktober 2005 07:34
von Christian81
Das pro-File kannst Du doch recht schnell mit 'qmake -project' erzeugen. Zumindest zum Test sollte das reichen :)

Verfasst: 28. Oktober 2005 07:35
von macman
Massa hat geschrieben:Aber Du hast insofern Recht, dass ich mal versuchen werde, zumindest bei einer Datei die Variablen wegzulassen und feste Werte hinzuschreiben - mal sehen ob's dann besser wird (und das VS vielleicht Probleme mit der Auflösung der Variablen hat).
Nein, daran liegt es nicht. Ich arbeite da auch nur mit den Variablen und habe keine Probleme. Was aber Probleme bereitet, sind Dateien in der Dateiliste, die überhaupt nicht existieren. Ich weiß noch nicht wie die da rein kommen, komme dem auch nicht näher. Vermute es liegt an abgebrochenen Debugsitzungen, aber das ist bisher reine Spekulation.

Pobier mal alle gelisteten Dateien durch, ob welche vom Editor nicht gefunden werden. Die schmeißt Du dann raus und dann sollte es gehen. Wundere Dich aber nicht, wenn die plötzlich wieder da sind.

Verfasst: 29. Oktober 2005 18:52
von Massa
macman hat geschrieben:Pobier mal alle gelisteten Dateien durch, ob welche vom Editor nicht gefunden werden. Die schmeißt Du dann raus und dann sollte es gehen. Wundere Dich aber nicht, wenn die plötzlich wieder da sind.
Gute Idee!
Werde ich mal nachschauen...

An den Variablen liegt es wirklich nicht, das habe ich inzwischen getestet...
Christian81 hat geschrieben:Das pro-File kannst Du doch recht schnell mit 'qmake -project' erzeugen. Zumindest zum Test sollte das reichen Smile
Das Projekt beinhaltet mehrere Unterprojekte (DLLs und Libraries) und ist strukturiert auf 'zig Verzeichnisse verteilt :?
Ich denke nicht, dass da so einfach eine .pro-Datei zu generieren ist...
Ich werde es aber nächste Woche mal versuchen... :shock: