summaryrefslogtreecommitdiff
path: root/buildscripts/scons.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/scons.py')
-rwxr-xr-xbuildscripts/scons.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/buildscripts/scons.py b/buildscripts/scons.py
index e7860162eb6..b0b9cfa834e 100755
--- a/buildscripts/scons.py
+++ b/buildscripts/scons.py
@@ -1,16 +1,26 @@
-#!/usr/bin/python
+#!/usr/bin/env python2
+
+from __future__ import print_function
import os
-import subprocess
import sys
SCONS_VERSION = os.environ.get('SCONS_VERSION', "2.5.0")
-mongodb_root = os.path.dirname(os.path.dirname(__file__))
-scons_dir = os.path.join(mongodb_root, 'src', 'third_party', 'scons-' + SCONS_VERSION)
+mongodb_root = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
+scons_dir = os.path.join(mongodb_root, 'src', 'third_party','scons-' + SCONS_VERSION,
+ 'scons-local-' + SCONS_VERSION)
+
+if not os.path.exists(scons_dir):
+ print("Could not find SCons in '%s'" % (scons_dir))
+ sys.exit(1)
+
+sys.path = [scons_dir] + sys.path
+
+try:
+ import SCons.Script
+except ImportError:
+ print("Could not find SCons in '%s'" % (scons_dir))
+ sys.exit(1)
-if sys.platform == 'win32':
- args = [sys.executable, os.path.join(scons_dir, 'scons.py')] + sys.argv[1:]
- sys.exit(subprocess.call(args))
-else:
- os.execv(os.path.join(scons_dir, 'scons.py'), sys.argv)
+SCons.Script.main()