SCons: colored compilation

This commit is contained in:
hurikhan 2015-01-12 12:54:17 +08:00
parent f3dc51fc69
commit f9a4e6890b
4 changed files with 46 additions and 0 deletions

View file

@ -1316,3 +1316,39 @@ def save_active_platforms(apnames,ap):
logow = open(wf,"wb")
logow.write(str)
def colored(sys,env):
#If the output is not a terminal, do nothing
if not sys.stdout.isatty():
return
colors = {}
colors['cyan'] = '\033[96m'
colors['purple'] = '\033[95m'
colors['blue'] = '\033[94m'
colors['green'] = '\033[92m'
colors['yellow'] = '\033[93m'
colors['red'] = '\033[91m'
colors['end'] = '\033[0m'
compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
java_compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
compile_shared_source_message = '%sCompiling shared %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
link_program_message = '%sLinking Program %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
link_library_message = '%sLinking Static Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
ranlib_library_message = '%sRanlib Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
link_shared_library_message = '%sLinking Shared Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
java_library_message = '%sCreating Java Archive %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
env.Append( CXXCOMSTR=[compile_source_message] )
env.Append( CCCOMSTR=[compile_source_message] )
env.Append( SHCCCOMSTR=[compile_shared_source_message] )
env.Append( SHCXXCOMSTR=[compile_shared_source_message] )
env.Append( ARCOMSTR=[link_library_message] )
env.Append( RANLIBCOMSTR=[ranlib_library_message] )
env.Append( SHLINKCOMSTR=[link_shared_library_message] )
env.Append( LINKCOMSTR=[link_program_message] )
env.Append( JARCOMSTR=[java_library_message] )
env.Append( JAVACCOMSTR=[java_compile_source_message] )