the SCons.compat layer import cProfile as profile when it's available.
git-svn-id: http://scons.tigris.org/svn/scons/trunk@4777
fdb21ef1-2011-0410-befe-
b5e4ea1792b1
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+import SCons.compat
+
import os
import os.path
import sys
import pdb
pdb.Pdb().runcall(_main, parser)
elif options.profile_file:
- try:
- from cProfile import Profile
- except ImportError, e:
- from profile import Profile
+ # compat layer imports "cProfile" for us if it's available.
+ from profile import Profile
# Some versions of Python 2.4 shipped a profiler that had the
# wrong 'c_exception' entry in its dispatch table. Make sure
os.path.lexists = lexists
+try:
+ # Use the "imp" module to protect the import from fixers.
+ import imp
+ cProfile = imp.load_module('cProfile', *imp.find_module('cProfile'))
+except ImportError:
+ # The "cProfile" module has already been eliminated in favor of
+ # having "import profile" import the fast version when available.
+ pass
+else:
+ import sys
+ sys.modules['profile'] = cProfile
+ del cProfile
+
+
try:
import platform
except ImportError: