scons: deal with generated .py files properly

This commit is contained in:
Steve Reinhardt 2009-11-08 17:35:49 -08:00
parent 8a4af3668d
commit 374d337693

View file

@ -132,15 +132,15 @@ class PySource(SourceFile):
modpath = '.'.join(modpath)
arcpath = path + [ self.basename ]
debugname = self.snode.abspath
if not exists(debugname):
debugname = self.tnode.abspath
abspath = self.snode.abspath
if not exists(abspath):
abspath = self.tnode.abspath
self.package = package
self.modname = modname
self.modpath = modpath
self.arcname = joinpath(*arcpath)
self.debugname = debugname
self.abspath = abspath
self.compiled = File(self.filename + 'c')
self.assembly = File(self.filename + '.s')
self.symname = "PyEMB_" + PySource.invalid_sym_char.sub('_', modpath)
@ -339,9 +339,9 @@ class DictImporter(object):
source = self.modules[fullname]
if source.modname == '__init__':
mod.__path__ = source.modpath
mod.__file__ = source.snode.abspath
mod.__file__ = source.abspath
exec file(source.snode.abspath, 'r') in mod.__dict__
exec file(source.abspath, 'r') in mod.__dict__
return mod
@ -892,7 +892,7 @@ def objectifyPyFile(target, source, env):
dst = file(str(target[0]), 'w')
pysource = PySource.tnodes[source[0]]
compiled = compile(src, pysource.debugname, 'exec')
compiled = compile(src, pysource.abspath, 'exec')
marshalled = marshal.dumps(compiled)
compressed = zlib.compress(marshalled)
data = compressed