From 9540bdd26ea653f2262d4871cfb665300b76a13c Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 31 Jan 2014 08:27:37 -0800 Subject: [PATCH] Build only the given mode --- SConstruct | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/SConstruct b/SConstruct index 239afb5..98b2dfa 100644 --- a/SConstruct +++ b/SConstruct @@ -112,5 +112,20 @@ release_env.Append(CPPDEFINES=['RELEASE']) release_cflags = ' -O2' release_env.Append(CFLAGS=release_cflags, CXXFLAGS=release_cflags) -for mode, env in {'debug': debug_env, 'release': release_env}.iteritems(): +modes = { + 'debug': debug_env, + 'release': release_env, +} + +mode = ARGUMENTS.get('MODE', None) +if mode: + # If MODE=foo is specified, build only that mode. + try: + env = modes[mode] + except KeyError: + raise SCons.Errors.UserError('Invalid mode: {}'.format(mode)) env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env}) +else: + # Build all modes. + for mode, env in {'debug': debug_env, 'release': release_env}.iteritems(): + env.SConscript(os.path.join('build', mode, 'SConscript'), {'env': env})