SCons Reihenfolge festlegen
-
Moin,
ist es möglich in einem Scons-Script festzulegen, dass bestimmte Dateien ausgeführt werden, z.b. nachdem alle Quellen kompiliert wurden.Wenn ich aber z.b. os.system('AusführbareDatei') aufrufe und irgendwo auch env.Program('AusführbareDatei.cpp'), so wird der os.system Befehl zuerst ausgeführt. Natürlich wird mir dann aber nur die Meldung anzeigt, dass die Datei nicht gefunden wurde. Ist ja auch klar, weil sie nicht vorhanden ist.
Ein ähnliches Problem, habe ich mit Scripten an sich. Also in einem Sconscript werden zwei andere Sconscripte aufgerufen. Wieder in der falschen Reihenfolge.
Danke im Voraus.
-
weiß keiner wie das geht?
-
matimatiker schrieb:
Moin,
ist es möglich in einem Scons-Script festzulegen, dass bestimmte Dateien ausgeführt werden, z.b. nachdem alle Quellen kompiliert wurden.Wenn ich aber z.b. os.system('AusführbareDatei') aufrufe und irgendwo auch env.Program('AusführbareDatei.cpp'), so wird der os.system Befehl zuerst ausgeführt. Natürlich wird mir dann aber nur die Meldung anzeigt, dass die Datei nicht gefunden wurde. Ist ja auch klar, weil sie nicht vorhanden ist.
Ein ähnliches Problem, habe ich mit Scripten an sich. Also in einem Sconscript werden zwei andere Sconscripte aufgerufen. Wieder in der falschen Reihenfolge.
Danke im Voraus.
Hey, das kannst du mit einer PostAction machen. Scons führt die os.system Befehle aus wenn es die Sconscripte parst, danach wird ein Abhängigkeitsbaum aufgebaut, der dann entsprechend ausgeführt wird.
Nun musst du scons sagen das es ein "target" gibt welches von einem anderen abhängt.
Mal ein Beispiel:
Du baust ein Programm hello_world und willst danach das Programm ausführen:env = Environment( ...... ) prog = env.Program('hello_world', ['src1.cpp', 'src2.cpp']) env.AddPostAction(prog, os.system(prog[0].abspath))
Es gibt aber auch noch andere scons-spezifische "Actions" wie Copy, Move.... lies mal in der Hilfe zu dem Thema.
-
Danke, ist genau das was ich gesucht habe.