base-cpp/site_scons/site_tools/sconscript.py

39 lines
919 B
Python
Raw Normal View History

2015-10-17 00:13:49 -07:00
# sconscript.py
# Eryn Wells <eryn@erynwells.me>
'''
SCons tool for working with SConscripts.
'''
import SCons.Script
def _do_sconscript(env):
original_sconscript = env.SConscript
2016-02-27 08:55:09 -08:00
2015-10-17 00:13:49 -07:00
def sconscript(env, sconscript, clone=False, *args, **kwargs):
2016-02-28 09:22:46 -08:00
exports = {
'Library': env.Library,
'Object': env.Object,
'SharedObject': env.SharedObject,
'StaticLibrary': env.StaticLibrary,
'SharedLibrary': env.SharedLibrary,
'Program': env.Program,
'env': env.Clone() if clone else env,
}
2015-10-17 00:13:49 -07:00
SCons.Script._SConscript.GlobalDict.update(exports)
env.log('Reading {}'.format(sconscript))
2016-02-28 09:22:46 -08:00
return original_sconscript(sconscript, {}, *args, **kwargs)
2015-10-17 00:13:49 -07:00
return sconscript
#
# SCons tool interface
#
def generate(env):
env.AddMethod(_do_sconscript(env), 'SConscript')
def exists(env):
return True