mi piacerebbe impostare il compilatore definisce per -DBLUB così come -DFOO = 1.Crea misto (valore impostato) CPPDEFINES in SCons
Attualmente ho solo:
env.Append("CPPDEFINES", ["BLUB", "VALUE2"])
ora vorrebbe includere un terzo definiscono tramite "FOO": 1 e quindi utilizzare CPPDEFINES come un dizionario in modo che posso in seguito prova abbastanza facile
env["CPPDEFINES"].get("FOO") == 1
o così. Tutto ciò che ho tentato porta a errori di sintassi o strani errori. Qualcuno potrebbe spiegare gli strani modi per farlo in python?
È __CANNOT__ uso * * env.Append su un nuovo ambiente in quanto CPPDEFINES * * viene inizializzato come una lista e aggiungere aggiunge semplicemente il dizionario come elemento della lista. Perché funzioni, devi usare * env ["CPPDEFINES"] = {'Foo': 1} * in modo che il tipo/variabile * CPPDEFINES * venga sostituito. – abergmeier
@LCIDFire 'CPPDEFINES' non è inizializzato come lista per me in un nuovo ambiente in scons 2.0.1. Quando creo un nuovo ambiente, posso usare il codice che ho scritto sopra. Hai ragione nel dire che se 'CPPDEFINES' è già una lista, otterrai degli errori - quindi la prima riga della mia risposta :) –
Per l'elenco, puoi gestirlo con:' env.Append (CPPDEFINES = ['BLUB', 'VALUE2', ('Foo', '1')]) '. Risulterà come '-DBLUB -DVALUE2 -DFoo = 1' Dovresti aggiungerlo alla tua risposta. – Phong