summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-10-10 12:49:15 (GMT)
committerSteven Knight <knight@baldmt.com>2002-10-10 12:49:15 (GMT)
commit08dbb4a708827254cfc0f1a5d1af6a95dfe8744a (patch)
tree496c184585332ec93483ce3f9862f292f2c5cd7a /src/engine/SCons
parenta788145cf0d0e87d1f279fb43c48bfec21dedcd7 (diff)
downloadSCons-08dbb4a708827254cfc0f1a5d1af6a95dfe8744a.zip
SCons-08dbb4a708827254cfc0f1a5d1af6a95dfe8744a.tar.gz
SCons-08dbb4a708827254cfc0f1a5d1af6a95dfe8744a.tar.bz2
Add Python and SCons version checking functions. (Anthony Roach)
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Script/SConscript.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index 9ecd3d7..cb20ae9 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -41,6 +41,7 @@ import SCons.Tool
import SCons.Util
import SCons.Sig
import SCons.Options
+import SCons
import os
import os.path
@@ -268,6 +269,28 @@ class Options(SCons.Options.Options):
def Update(self, env):
return SCons.Options.Options.Update(self, env, arguments)
+def CheckVersion(major,minor,version_string):
+ """Return 0 if 'major' and 'minor' are greater than the version
+ in 'version_string', and 1 otherwise."""
+ version = string.split(string.split(version_string, ' ')[0], '.')
+ if major > int(version[0]) or (major == int(version[0]) and minor > int(version[1])):
+ return 0
+ else:
+ return 1
+
+def EnsureSConsVersion(major, minor):
+ """Exit abnormally if the SCons version is not late enough."""
+ if not CheckVersion(major,minor,SCons.__version__):
+ print "SCons %d.%d or greater required, but you have SCons %s" %(major,minor,SCons.__version__)
+ sys.exit(2)
+
+def EnsurePythonVersion(major, minor):
+ """Exit abnormally if the Python version is not late enough."""
+ if not CheckVersion(major,minor,sys.version):
+ v = string.split(sys.version, " ", 1)[0]
+ print "Python %d.%d or greater required, but you have Python %s" %(major,minor,v)
+ sys.exit(2)
+
def BuildDefaultGlobals():
"""
Create a dictionary containing all the default globals for
@@ -282,6 +305,8 @@ def BuildDefaultGlobals():
globals['CScan'] = SCons.Defaults.CScan
globals['Default'] = Default
globals['Dir'] = SCons.Node.FS.default_fs.Dir
+ globals['EnsurePythonVersion'] = EnsurePythonVersion
+ globals['EnsureSConsVersion'] = EnsureSConsVersion
globals['Environment'] = SCons.Environment.Environment
globals['Export'] = Export
globals['File'] = SCons.Node.FS.default_fs.File