Clean up env creation
This commit is contained in:
parent
b40e4b07d9
commit
1a37170b9a
1 changed files with 25 additions and 14 deletions
39
SConstruct
39
SConstruct
|
@ -100,21 +100,32 @@ if not BUILD_CMDS:
|
||||||
|
|
||||||
src_dir = Dir('#src')
|
src_dir = Dir('#src')
|
||||||
|
|
||||||
debug_env = common_env.Clone()
|
|
||||||
debug_build_dir = os.path.join('build', 'debug')
|
|
||||||
debug_env.VariantDir(debug_build_dir, src_dir, duplicate=0)
|
|
||||||
debug_env.Append(CPPDEFINES=['DEBUG'])
|
|
||||||
debug_cflags = ' -O0 -g'
|
|
||||||
debug_env.Append(CFLAGS=debug_cflags, CXXFLAGS=debug_cflags)
|
|
||||||
debug_env.Clean('.', debug_build_dir)
|
|
||||||
|
|
||||||
release_env = common_env.Clone()
|
def create_env(variant_dir, appends=None):
|
||||||
release_build_dir = os.path.join('build', 'release')
|
env = common_env.Clone()
|
||||||
release_env.VariantDir(release_build_dir, src_dir, duplicate=0)
|
env.VariantDir(variant_dir, src_dir, duplicate=0)
|
||||||
release_env.Append(CPPDEFINES=['RELEASE'])
|
env.Clean('.', variant_dir)
|
||||||
|
for k, v in appends.iteritems():
|
||||||
|
if k.startswith('='):
|
||||||
|
env[k[1:]] = v
|
||||||
|
else:
|
||||||
|
env.Append(**{k: v})
|
||||||
|
return env
|
||||||
|
|
||||||
|
|
||||||
|
debug_cflags = ' -O0 -g'
|
||||||
|
debug_env = create_env(os.path.join('build', 'debug'), {
|
||||||
|
'CPPDEFINES': ['DEBUG'],
|
||||||
|
'CFLAGS': debug_cflags,
|
||||||
|
'CXXFLAGS': debug_cflags,
|
||||||
|
})
|
||||||
|
|
||||||
release_cflags = ' -O2'
|
release_cflags = ' -O2'
|
||||||
release_env.Append(CFLAGS=release_cflags, CXXFLAGS=release_cflags)
|
release_env = create_env(os.path.join('build', 'release'), {
|
||||||
release_env.Clean('.', release_build_dir)
|
'CPPDEFINES': ['RELEASE'],
|
||||||
|
'CFLAGS': release_cflags,
|
||||||
|
'CXXFLAGS': release_cflags,
|
||||||
|
})
|
||||||
|
|
||||||
modes = {
|
modes = {
|
||||||
'debug': debug_env,
|
'debug': debug_env,
|
||||||
|
@ -131,5 +142,5 @@ if mode:
|
||||||
env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env})
|
env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env})
|
||||||
else:
|
else:
|
||||||
# Build all modes.
|
# Build all modes.
|
||||||
for mode, env in {'debug': debug_env, 'release': release_env}.iteritems():
|
for mode, env in modes.iteritems():
|
||||||
env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env})
|
env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue