"""For set up environment

"""

import os

#
# Build option
#

vars = Variables()
vars.Add(PathVariable(
	'OUT_DIR',
	'Path of directory for output',
	'bin',
	PathVariable.PathIsDirCreate
))
vars.Add(PathVariable(
	'BUILD_DIR',
	'Path of build file directory',
	'build',
	PathVariable.PathIsDirCreate
))
vars.Add(PathVariable(
	'BUILD_TOOLS_PATH',
	'Path of build tools directory',
	'build_tools',
	PathVariable.PathIsDir
))
vars.Add(PathVariable(
	'COMMON_PATH',
	'Path of common files, e.g. gstconfig.h',
	os.path.join('win32', 'common'),
	PathVariable.PathIsDir
))
vars.Add(
	'GLIB_LIB',
	'Path of glib to link',
	'glib-2.0'
)
vars.Add(
	'GOBJECT_LIB',
	'Path of gobject to link',
	'gobject-2.0'
)
vars.Add(
	'GTHREAD_LIB',
	'Path of gthread to link',
	'gthread-2.0'
)
vars.Add(
	'GMODULE_LIB',
	'Path of gmodule to link',
	'gmodule-2.0'
)
vars.Add(
	'XML_LIB',
	'Path of libxml to link',
	'libxml2'
)
vars.Add(
	'WS2_32_LIB',
	'Path of ws2_32 to link',
	'ws2_32'
)

#
# Gst variable
#
vars.Add(BoolVariable(
	'GST_DISABLE_LOADSAVE',
	'Flag to disable loadsave',
	False
))

vars.Add(BoolVariable(
	'GST_DISABLE_REGISTRY',
	'Flag to disable registry',
	False
))

vars.Add(BoolVariable(
	'USE_BINARY_REGISTRY',
	'Flag to disable binary registry, namely, use xml registry instead',
	False
))

vars.Add(BoolVariable(
	'GST_DISABLE_PARSE',
	'Flag to disable parse',
	False
))

vars.Add(BoolVariable(
	'GST_DISABLE_TRACE',
	'Flag to disable trace',
	False
))

vars.Add(BoolVariable(
	'GST_DISABLE_PLUGIN',
	'Flag to disable plugin',
	False
))

vars.Add(
	'GST_DATADIR',
	'GST_DATADIR macro define, you most escape sepcial chars as C language should be',
	'"""C:\\\\\\\\"""' # Opps! Ugly, we have to escape for compiler option, and then compiler, so it is so ugly.
)

#
# set up environment
#
env = Environment(variables=vars)

includePath = [
	'#$COMMON_PATH',
	'#.'
]

env.AppendENVPath('PATH', env.subst('$BUILD_TOOLS_PATH'))
env.Append(CPPDEFINES=["HAVE_CONFIG_H", ('GST_DATADIR', env['GST_DATADIR'])])
env.Append(CPPPATH=includePath)
#
#
#

SConscript([os.path.join('gst', 'SConscript')], 
	exports='env', 
	duplicate=0,
	variant_dir=env['BUILD_DIR']
)

print "Targets to build :", ', '.join(map(str, BUILD_TARGETS))
Help(vars.GenerateHelpText(env))