Archiv verlassen und diese Seite im Standarddesign anzeigen : SCons - Fragen
Hallo Leute,
damit die Fragen zum Übersetzungstool SCons nicht in dem Readline Thread untergehen, erstelle ich dafür einen neuen Thread.
Also ich habe noch ein paar Fragen zu SCons. Erstmal eine:
Ich habe eine .h-Datei, in der ein Versions-String in Form eines define drin steht.
#define VERSION "2.A26"
#define VERSION_INFO "ISTS TCP V" VERSION " (" __DATE__ " - " __TIME__ ") "
Jetzt würde ich das gern mit einer Build-Nummer versehen, die durch SCons automatisch hochgezählt wird. Sowas ist doch bestimmt möglich. Wenn ja, wie?
Danke
KingNothing
14-11-2005, 16:16
Ja das geht auf jeden fall durch setzten der CCFLAGS (CCFLAGS="-DVERSION=asd").
Dann musst du nur irgentwo deine aktuelle version zwischenspeichern und mit jedem build erhöhen
Wenn mir jetzt noch jemand sagen kann, wie ich in einem SConstruct einen Wert aus einer Datei in eine Variable einlese, diesen erhöhe und ihn wieder in die Datei zurück schreibe, dann bin ich glücklich! :)
schau dir mal die wiki page (http://www.scons.org/cgi-bin/wiki/GenerateConfig) an von scons da wird erklärt wie man eine config.h erstellt die du dann einbinden kannst das hochzählen unter python wird man sicherlich auch noch hinbekommen ;)
Das funktioniert gut. Mir fehlt allerdings noch die Erfahrung mit Python, um jetzt einen Wert aus einer Datei ausgelesen, ihn um 1 zu erhöhen und in das Element "build_ver" von config_h_defines zu schreiben:
def print_config(msg, two_dee_iterable):
print msg
for key, val in two_dee_iterable:
print " %-20s %s" %(key, val)
print
def config_h_build(target, source, env):
config_h_defines = {
"version_str": "2.A27",
"build_str": 0
}
print_config("Generating config.h with following settings: ", config_h_defines.items())
for a_target, a_source in zip(target, source):
config_h = file(str(a_target), "w")
config_h_in = file(str(a_source), "r")
config_h.write(config_h_in.read() % config_h_defines)
config_h_in.close()
config_h.close()
bios_env.Command('config.h', 'config.h.in', config_h_build)
SConstruct (teil)
#define BUILD "%(build_str)04i"
#define VERSION "%(version_str)s"
#define BVER VERSION "." BUILD
#define VERSION_INFO "ISTS TCP V" BVER " (" __DATE__ " - " __TIME__ ") "
config.h.in
0
build.ver
Wie lese ich jetzt den Wert aus der build.ver aus, erhöhe ihn um 1 und weise ihn dem Feld build_str von config_h_defines zu?
Danke!
Gruß,
Hendrik
nicht getestet
fob = open("build.ver", "r")
nr = fob.read()
nr = nr + 1
....
def config_h_build(target, source, env):
config_h_defines = {
"version_str": "2.A27",
"build_str": nr
}
....
MfG
xmarvel
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.