Ich habe ein Projekt, das ich mit SCons (und MinGW/gcc abhängig von der Plattform) erstellen. Dieses Projekt hängt von mehreren anderen Bibliotheken ab (wir nennen sie libfoo
und libbar
), die an verschiedenen Orten für verschiedene Benutzer installiert werden können.SCons Konfigurationsdatei und Standardwerte
Derzeit enthält meine SConstruct
Datei einen hartcodierten Pfad zu diesen Bibliotheken (sagen wir mal so etwas wie: C:\libfoo
).
Nun, würde Ich mag eine Konfigurationsoption meiner SConstruct
Datei hinzufügen, so dass ein Benutzer, der libfoo
an einem anderen Ort installiert ist (sagen wir C:\custom_path\libfoo
) so etwas wie tun:
> scons --configure --libfoo-prefix=C:\custom_path\libfoo
Oder:
> scons --configure
scons: Reading SConscript files ...
scons: done reading SConscript files.
### Environment configuration ###
Please enter location of 'libfoo' ("C:\libfoo"): C:\custom_path\libfoo
Please enter location of 'libbar' ("C:\libfoo"): C:\custom_path\libbar
### Configuration over ###
Einmal ausgewählt, sollten diese Konfigurationsoptionen in eine Datei geschrieben und jedes Mal neu eingelesen werden, wenn scons
ausgeführt wird.
Bietet scons
einen solchen Mechanismus? Wie würde ich dieses Verhalten erreichen? Ich beherrsche Python nicht wirklich, daher sind selbst offensichtliche (aber vollständige) Lösungen willkommen.
Danke.
Danke, das scheint den Trick zu machen;) Gibt es einen anderen Weg, um den Wert einer Variablen zu erhalten? So etwas wie 'print var.getVariable ('LIBFOO')' '? – ereOn
@ereOn Ich habe die Dokumentation durchforstet, aber da scheint es keinen Weg zu geben. Ziemlich asymmetrisch. Sie müssen die Variablen in eine Umgebung schieben und vorlesen. Ich werde den Beitrag aktualisieren, wenn ich es jemals herausfinden werde. – richq