2016-08-02 12 views
0

Derzeit erstellen ich eine SCONS (oder Waf) erstellen und alles ausführen. Dann überprüfe ich alles (einschließlich .sconsign.dblite, etc) in Git und drücken Sie auf die Fernbedienung. Wenn ich das Verzeichnis lokal lösche, klicke es von git (auf demselben Rechner) und tippe scons ein, es behandelt alles als bereits gebaut und nichts wird erneut ausgeführt.Scons/Waf-Implementierung, die nicht auf Klonen neu erstellen

Wenn ich dies jedoch auf einer anderen Maschine mache, denkt scons/waf, dass alles neu ausgeführt werden muss. Ich dachte, der Vorteil dieser Build-Tools wäre, dass sie anstelle von Zeitstempeln Hash-Werte verwenden, sodass ich nicht auf verschiedenen Rechnern neu laufen muss.

Zwei Fragen:

(1) Was die Wiederholung zwingt, wenn Sie Maschinen wechseln?

(2) Gibt es eine Möglichkeit, den erneuten Durchlauf zu verhindern?

(In der waf Sperrdatei, konnte ich maschinenspezifische Details sehen, aber ich habe nichts bemerkt, als ich an der .sconsign.dblite Datei sah, obwohl ich es in einem txt-Editor nur untersucht.)

+0

Mit SCons versuchen Sie zu laufen: scons --debug = erklären Sie es sollte Ihnen sagen, warum es umbaut. Dann poste die Ausgabe. – bdbaddog

+1

Erste wilde Vermutung: eine andere Maschine könnte bedeuten, dass es ein anderer Compiler ist (der Hash-Wert von 'gcc' ändert sich), der verwendet wird ... – dirkbaechle

Antwort

0

Diese answer behoben mein Problem. Das Problem war, dass scons automatisch den Hash/Zeitstempel der verwendeten ausführbaren Dateien (z. B. "Rscript") verfolgte, die sich auf den Rechnern ändern. Durch das Deaktivieren dieser impliziten Abhängigkeitsprüfung wurde das Problem behoben.

Verwandte Themen