summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt4
-rw-r--r--src/engine/SCons/Script/SConscript.py10
-rw-r--r--src/engine/SCons/Script/__init__.py9
3 files changed, 20 insertions, 3 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 6ac5948..3e19a1e 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -35,6 +35,10 @@ RELEASE 0.04 -
- Add examples using Library, LIBS, and LIBPATH.
+ From Steve Leblanc:
+
+ - Add var=value command-line arguments.
+
RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index 8ba64d1..bb1064a 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -36,17 +36,22 @@ import SCons.Defaults
import SCons.Node
import SCons.Node.FS
import SCons.Environment
-import SCons.Scanner
-import SCons.Action
import string
import sys
default_targets = []
print_help = 0
+arguments = {}
# global exports set by Export():
global_exports = {}
+def _scons_add_args(alist):
+ global arguments
+ for arg in alist:
+ a, b = string.split(arg, '=', 2)
+ arguments[a] = b
+
class Frame:
"""A frame on the SConstruct/SConscript call stack"""
def __init__(self, exports):
@@ -163,6 +168,7 @@ def BuildDefaultGlobals():
globals = {}
globals['Action'] = SCons.Action.Action
+ globals['ARGUMENTS'] = arguments
globals['BuildDir'] = BuildDir
globals['Builder'] = SCons.Builder.Builder
globals['CScan'] = SCons.Defaults.CScan
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index 1711f7a..1788fab 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -584,12 +584,19 @@ def _main():
opt_func[opt](opt, arg)
try:
- cmd_opts, targets = getopt.getopt(sys.argv[1:], short_opts, long_opts)
+ cmd_opts, args = getopt.getopt(sys.argv[1:], short_opts, long_opts)
except getopt_err, x:
_scons_user_error(x)
else:
for opt, arg in cmd_opts:
opt_func[opt](opt, arg)
+ xmit_args = []
+ for a in args:
+ if '=' in a:
+ xmit_args.append(a)
+ else:
+ targets.append(a)
+ SCons.Script.SConscript._scons_add_args(xmit_args)
if not scripts:
for file in ['SConstruct', 'Sconstruct', 'sconstruct']: