Anzeige:
Ergebnis 1 bis 7 von 7

Thema: SCons - Fragen

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456

    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.
    Code:
    #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

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    Hmm? Keiner? Joghurt?

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.09.2004
    Beiträge
    7
    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

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    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!

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    schau dir mal die wiki page 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

  6. #6
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    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:

    Code:
    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)


    Code:
    #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

    Code:
    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

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    nicht getestet
    Code:
    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •