scons: provide option to avoid color printed terminal output

This commit is contained in:
Dane Springmeyer 2009-04-14 00:01:21 +00:00
parent d0b3ecdaa8
commit 364b6f72c5

View file

@ -33,7 +33,10 @@ try:
HAS_DISTUTILS = True HAS_DISTUTILS = True
except: except:
HAS_DISTUTILS = False HAS_DISTUTILS = False
#### SCons build options and initial setup ####
env = Environment(ENV=os.environ)
def color_print(color,text,newline=True): def color_print(color,text,newline=True):
# 1 - red # 1 - red
# 2 - green # 2 - green
@ -45,6 +48,12 @@ def color_print(color,text,newline=True):
else: else:
print text print text
def regular_print(color,text,newline=True):
if not newline:
print text,
else:
print text
def call(cmd): def call(cmd):
stdin, stderr = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE).communicate() stdin, stderr = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE).communicate()
if not stderr: if not stderr:
@ -87,10 +96,6 @@ for k,v in PLUGINS.items():
if v['default']: if v['default']:
DEFAULT_PLUGINS.append(k) DEFAULT_PLUGINS.append(k)
#### SCons build options and initial setup ####
color_print(4,'\nWelcome to Mapnik...\n')
env = Environment(ENV=os.environ)
# All of the following options may be modified at the command-line, for example: # All of the following options may be modified at the command-line, for example:
# `python scons/scons.py PREFIX=/opt` # `python scons/scons.py PREFIX=/opt`
opts = Variables() opts = Variables()
@ -160,6 +165,7 @@ opts.AddVariables(
('JOBS', 'Set the number of parallel compilations', "1", lambda key, value, env: int(value), int), ('JOBS', 'Set the number of parallel compilations', "1", lambda key, value, env: int(value), int),
BoolVariable('DEMO', 'Compile demo c++ application', 'False'), BoolVariable('DEMO', 'Compile demo c++ application', 'False'),
BoolVariable('PGSQL2SQLITE', 'Compile and install a utility to convert postgres tables to sqlite', 'False'), BoolVariable('PGSQL2SQLITE', 'Compile and install a utility to convert postgres tables to sqlite', 'False'),
BoolVariable('COLOR_PRINT', 'Print build status information in color', 'True'),
) )
# variables to pickle after successful configure step # variables to pickle after successful configure step
# these include all scons core variables as well as custom # these include all scons core variables as well as custom
@ -187,6 +193,7 @@ pickle_store = [# Scons internal variables
'PYTHON_VERSION', 'PYTHON_VERSION',
'PYTHON_INCLUDES', 'PYTHON_INCLUDES',
'PYTHON_INSTALL_LOCATION', 'PYTHON_INSTALL_LOCATION',
'COLOR_PRINT',
] ]
# Add all other user configurable options to pickle pickle_store # Add all other user configurable options to pickle pickle_store
@ -210,6 +217,11 @@ elif ('-h' in command_line_args) or ('--help' in command_line_args):
# initially populate environment with defaults and any possible custom arguments # initially populate environment with defaults and any possible custom arguments
opts.Update(env) opts.Update(env)
if env.has_key('COLOR_PRINT') and env['COLOR_PRINT'] == False:
color_print = regular_print
color_print(4,'\nWelcome to Mapnik...\n')
# if we are not configuring overwrite environment with pickled settings # if we are not configuring overwrite environment with pickled settings
if not force_configure: if not force_configure:
if os.path.exists(SCONS_CONFIGURE_CACHE): if os.path.exists(SCONS_CONFIGURE_CACHE):