$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r51017 - in sandbox/SCons: . libs
From: loonycyborg_at_[hidden]
Date: 2009-02-04 14:45:22
Author: loonycyborg
Date: 2009-02-04 14:45:22 EST (Wed, 04 Feb 2009)
New Revision: 51017
URL: http://svn.boost.org/trac/boost/changeset/51017
Log:
Made use of command-line construction variables. Added boost-specific help text.
Text files modified: 
   sandbox/SCons/SConstruct      |    19 ++++++++++++++++++-                     
   sandbox/SCons/libs/SConscript |    10 +++++-----                              
   2 files changed, 23 insertions(+), 6 deletions(-)
Modified: sandbox/SCons/SConstruct
==============================================================================
--- sandbox/SCons/SConstruct	(original)
+++ sandbox/SCons/SConstruct	2009-02-04 14:45:22 EST (Wed, 04 Feb 2009)
@@ -1,7 +1,24 @@
 # vi: syntax=python:et:ts=4
 EnsureSConsVersion(0, 98, 5)
 
-env = Environment(toolpath = ["tools/scons"], tools = ["default", "boost-libs", "boost-build-variants"])
+vars = Variables("build-config.py")
+vars.AddVariables(
+    ListVariable("variant", "Build configuration", "release", ["release", "debug"]),
+    ListVariable("link", "Library linking", "all", ["static", "dynamic"])
+)
+env = Environment(toolpath = ["tools/scons"], tools = ["default", "boost-libs", "boost-build-variants"], variables = vars)
+vars.Save("build-config.py", env)
 Export("env")
 
+Help("""
+Usage: scons [--option...] [variable=value...] [target...]
+target is a library name, e.g. 'iostreams' or 'signals'
+variable may be one of:
+""" + vars.GenerateHelpText(env, sort=cmp) + """
+Variables are saved in build-config.py and persist between scons invocations.
+""")
+
+if(GetOption("help")):
+    Return()
+
 SConscript("libs/SConscript")
Modified: sandbox/SCons/libs/SConscript
==============================================================================
--- sandbox/SCons/libs/SConscript	(original)
+++ sandbox/SCons/libs/SConscript	2009-02-04 14:45:22 EST (Wed, 04 Feb 2009)
@@ -8,11 +8,11 @@
     )
 
 sconscripts = Glob("*/build/SConscript")
-for debug_release in ["debug", "release"]:
-    for linking in ["static", "dynamic"]:
-        env["DEBUG_RELEASE_CCFLAGS"] = env.get(debug_release.upper() + "_CCFLAGS")
-        env["DEBUG_RELEASE_LIBFLAGS"] = env.get(debug_release.upper() + "_LIBFLAGS")
-        env.AppendUnique(CPPDEFINES = ["${LINK_DYNAMIC and 'BOOST_' + BOOST_LIB + '_DYN_LINK=1' or []}"])
+env.AppendUnique(CPPDEFINES = ["${LINK_DYNAMIC and 'BOOST_' + BOOST_LIB + '_DYN_LINK=1' or []}"])
+for debug_release in env["variant"]:
+    env["DEBUG_RELEASE_CCFLAGS"] = env.get(debug_release.upper() + "_CCFLAGS")
+    env["DEBUG_RELEASE_LIBFLAGS"] = env.get(debug_release.upper() + "_LIBFLAGS")
+    for linking in env["link"]:
         if linking == "dynamic":
             env["LINK_DYNAMIC"] = True
         else: