Remove build engine dependencies on SCons.Script. Fix a misspelled variable name.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 8 Jan 2005 20:20:03 +0000 (20:20 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 8 Jan 2005 20:20:03 +0000 (20:20 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1210 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Environment.py
src/engine/SCons/EnvironmentTests.py
src/engine/SCons/SConf.py
src/engine/SCons/SConfTests.py
src/engine/SCons/Script/SConscript.py
src/engine/SCons/Tool/__init__.py
src/engine/SCons/Tool/aixc++.py
test/Configure.py

index c98c7aa145be4eff4100249d14322345e2486b57..fbc84541d2daa7e09b023c64c523fceb72c73292 100644 (file)
@@ -1188,7 +1188,7 @@ class Base(SubstitutionEnvironment):
         if args:
             nargs = nargs + self.subst_list(args)[0]
         nkw = self.subst_kw(kw)
-        nkw['called_from_env_method'] = 1
+        nkw['_depth'] = kw.get('_depth', 0) + 1
         try:
             nkw['custom_tests'] = self.subst_kw(nkw['custom_tests'])
         except KeyError:
index b34657afdd08fffb4eac5f63f5a3c80294ca3b20..ad5a9b2ba026d90c813eb7561df9623181478d10 100644 (file)
@@ -2159,9 +2159,6 @@ f5: \
         # Configure() will write to a local temporary file.
         test = TestCmd.TestCmd(workdir = '')
         save = os.getcwd()
-        # Configure() will test, if we are reading a SConscript file
-        import SCons.Script.SConscript
-        SCons.Script.SConscript.sconscript_reading = 1
 
         try:
             os.chdir(test.workpath())
index 76df30a8449deb8197627794a5bf2e2353219888..6b96384773acf12b69d26a664b14324f0cb89268 100644 (file)
@@ -326,17 +326,13 @@ class SConf:
     """
 
     def __init__(self, env, custom_tests = {}, conf_dir='#/.sconf_temp',
-                 log_file='#/config.log', config_h = None,
-                 called_from_env_method = 0): 
+                 log_file='#/config.log', config_h = None, _depth = 0): 
         """Constructor. Pass additional tests in the custom_tests-dictinary,
         e.g. custom_tests={'CheckPrivate':MyPrivateTest}, where MyPrivateTest
         defines a custom test.
         Note also the conf_dir and log_file arguments (you may want to
         build tests in the BuildDir, not in the SourceDir)
         """
-        import SCons.Script.SConscript
-        if not SCons.Script.SConscript.sconscript_reading:
-            raise SCons.Errors.UserError, "Calling Configure from Builders is not supported."
         global SConfFS
         if not SConfFS:
             SConfFS = SCons.Node.FS.FS(SCons.Node.FS.default_fs.pathTop)
@@ -350,7 +346,7 @@ class SConf:
             self.logfile = None
         self.logstream = None
         self.lastTarget = None
-        self.called_from_env_method = called_from_env_method
+        self.depth = _depth
         self.cached = 0 # will be set, if all test results are cached
 
         # add default tests
@@ -603,7 +599,7 @@ class SConf:
             # existing file with the same name in the source directory
             self.logfile.dir.add_ignore( [self.logfile] )
 
-            tb = traceback.extract_stack()[-3-self.called_from_env_method]
+            tb = traceback.extract_stack()[-3-self.depth]
             old_fs_dir = SConfFS.getcwd()
             SConfFS.chdir(SConfFS.Top, change_os_dir=0)
             self.logstream.write('file %s,line %d:\n\tConfigure(confdir = %s)\n' %
@@ -870,5 +866,3 @@ def CheckLibWithHeader(context, libs, header, language,
             call = call, language = language, autoadd = autoadd)
     context.did_show_result = 1
     return not res
-
-    
index b704f62ef66d623c9add9041fc3952cc2d78b6d0..3cde7d0f2c1967d5f9d972e9b8b69bf79c99ecff 100644 (file)
@@ -64,8 +64,6 @@ class SConfTestCase(unittest.TestCase):
         # we only use SCons.Environment and SCons.SConf for these tests.
         import SCons.Environment
         import SCons.SConf
-        import SCons.Script.SConscript
-        SCons.Script.SConscript.sconscript_reading = 1
         self.Environment = SCons.Environment
         self.SConf = SCons.SConf
         # and we need a new environment, cause references may point to
index 4bc8bd31b5dc6295069ed1b8704ef43f0d8a552f..30f6933d80964dc9212fbb08a8cfd49cb511c8ad 100644 (file)
@@ -413,6 +413,12 @@ class SConsEnvironment(SCons.Environment.Base):
     # as global functions.
     #
 
+    def Configure(self, *args, **kw):
+        if not SCons.Script.SConscript.sconscript_reading:
+            raise SCons.Errors.UserError, "Calling Configure from Builders is not supported."
+        kw['_depth'] = kw.get('_depth', 0) + 1
+        return apply(SCons.Environment.Base.Configure, (self,)+args, kw)
+
     def Default(self, *targets):
         global DefaultCalled
         global DefaultTargets
@@ -527,6 +533,12 @@ SCons.Environment.Environment = SConsEnvironment
 def Options(files=None, args=Arguments):
     return SCons.Options.Options(files, args)
 
+def Configure(*args, **kw):
+    if not SCons.Script.SConscript.sconscript_reading:
+        raise SCons.Errors.UserError, "Calling Configure from Builders is not supported."
+    kw['_depth'] = 1
+    return apply(SCons.SConf.SConf, args, kw)
+
 #
 _DefaultEnvironmentProxy = None
 
@@ -646,7 +658,7 @@ def BuildDefaultGlobals():
         'Action'                : SCons.Action.Action,
         'BoolOption'            : SCons.Options.BoolOption,
         'Builder'               : SCons.Builder.Builder,
-        'Configure'             : SCons.SConf.SConf,
+        'Configure'             : Configure,
         'EnumOption'            : SCons.Options.EnumOption,
         'Environment'           : SCons.Environment.Environment,
         'ListOption'            : SCons.Options.ListOption,
index 5513f5e44cb2aeeb11d2b4f9effdd1d25a2a3024..1cfe6eff5b08c55720b0b2bbf44f2a53690080ae 100644 (file)
@@ -179,7 +179,7 @@ def createLoadableModuleBuilder(env):
     """
 
     try:
-        loadable_module = env['BUILDERS']['LoadableModule']
+        ld_module = env['BUILDERS']['LoadableModule']
     except KeyError:
         action_list = [ SCons.Defaults.SharedCheck,
                         SCons.Defaults.LdModuleLinkAction ]
index dcc444aba16997a1d4be66234ac64eb252480211..91aa92e73a2b6faad6392d88d65b3541c19d0943 100644 (file)
@@ -36,7 +36,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import os.path
 
 import SCons.Platform.aix
-import SCons.Script.SConscript
 
 cplusplus = __import__('c++', globals(), locals(), [])
 
@@ -48,7 +47,7 @@ def get_xlc(env):
     return SCons.Platform.aix.get_xlc(env, xlc, xlc_r, packages)
 
 def smart_cxxflags(source, target, env, for_signature):
-    build_dir = SCons.Script.SConscript.GetBuildPath()
+    build_dir = env.GetBuildPath()
     if build_dir:
         return '-qtempinc=' + os.path.join(build_dir, 'tempinc')
     return ''
index 2309904c5d53de9b66c3cbca736d419cfb43cbc4..715219edb6104e52d6b9f8fff54d1432ecaddaf0 100644 (file)
@@ -85,6 +85,10 @@ def checklib(lang, name, up_to_date):
     elif lang == 'C++':
         return (".cc", _obj, _exe)
 
+class NoMatch:
+    def __init__(self, p):
+        self.pos = p
+
 NCR = 0 # non-cached rebuild
 CR  = 1 # cached rebuild (up to date)
 NCF = 2 # non-cached build failure
@@ -93,10 +97,6 @@ CF  = 3 # cached build failure
 def checkLogAndStdout(checks, results, cached,
                       test, logfile, sconf_dir, sconstruct,
                       doCheckLog=1, doCheckStdout=1):
-    class NoMatch:
-        def __init__(self, p):
-            self.pos = p
-            
     def matchPart(log, logfile, lastEnd):
         m = re.match(log, logfile[lastEnd:])
         if not m: