2015-09-26 14 views
5

Mi sono imbattuto in un sistema di compilazione che utilizza scons. Non essendo affatto familiare se gli scons sono di per sé un framework piuttosto sofisticato, mi sento molto frustrato di non poter eseguire il debug dei problemi di build.Come impostare gli scons per l'output della riga di comando estesa completa?

voglio scons per stampare la riga di comando completamente espanso essere invocate (come si vede con più sistemi di compilazione) ho scoperto è possibile utilizzare il --debug = presub opzione ma (almeno su OSX) esso è inutile dal momento che stampa il valore delle variabili non espansi

ad esempio:

Building build/obj/ios-uni-rel-sta-clang/common/libs/boost/libs/date_time/src/gregorian/date_generators.i386.o with action: $SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES

C'è anche un VERBOSE = 1 parametro può fornire sulla riga di comando scons ma (almeno con la versione 2.3.4) che ho ottenuto, non sembra molto prolisso.

Non sto dicendo Scons è male, ma è diventato un po 'faticoso ed espansivo per mantenere :(

Chiunque abbia familiarità con Scons? Cosa modulo, in cui è il comando effettivo viene invocato? Voglio solo aggiungere un paio di stampe ...

in alternativa, come si può configurazione PyDev o PyCharm per collegare utilizzando i scons --debug = PDB? qualcuno questo?

+0

Grazie Roman! – Rastikan

+0

Puoi mostrare quale è l'output attuale? Anche quale pacchetto stai cercando di costruire? SCons consente agli sviluppatori del sistema di generazione di nascondere l'intero output. – bdbaddog

+0

Sta usando scons patchato? Ho 2.3.4 su Windows e stampa la riga di comando completa in tutti i suoi dettagli sordidi –

risposta

-1

SHOWBUILD = 1

Fo r Esempio: $> scons SHOWBUILD = 1

questo ha lavorato per me

+0

SHOWBUILD non è predefinito da scons, ma deve essere implementato in alcuni script/script. – bdbaddog

0

qualche parte in uno SConstruct, SConscript, o qualche modulo python stato caricato dal (potrebbe essere in site_scons sotto top dir) qualcuno sta cambiando il * Variabili ENV COMSTR.

Si avrà un aspetto simile:

env['SHCXXCOMSTR'] = "Building $TARGET" 

o:

for k in env.keys(): 
    if k.endswith('COMSTR'): 
     env[k] = "Building $TARGET" 

Avrai voglia di commentare quelle linee.

Il comportamento predefinito di SCons è quello di mostrare le righe di comando.

http://scons.org/doc/production/HTML/scons-man.html#cv-SHCXXCOMSTR