X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=site_scons%2Fsite_init.py;h=0121a242ae47b32c03ebcfcca49ae475b504b7b2;hb=e05437de40eb79af1075c5186820d639db42e105;hp=45eb2bbb18a066c86e4cc50277b9b370a51b83b8;hpb=4723b149c5ca163fab7fce58a5314c5db212bedc;p=senf.git diff --git a/site_scons/site_init.py b/site_scons/site_init.py index 45eb2bb..0121a24 100644 --- a/site_scons/site_init.py +++ b/site_scons/site_init.py @@ -1,9 +1,12 @@ import os.path, SCons +import inspect +import sys # SCons is at #/tools/scons-/engine/SCons/__init__.py # site_init is at #/site_scons/site_init.py -sconsbase = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"tools") +sconsbase = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath( + inspect.currentframe().f_code.co_filename))),"tools") sconsbase = os.path.join( sconsbase,sorted((f for f in os.listdir(sconsbase) if f.startswith("scons-")))[-1]) sconsengine = os.path.join(sconsbase, 'engine') @@ -36,16 +39,15 @@ if os.path.dirname(os.path.dirname(os.path.abspath(SCons.__file__))) != sconseng if not target_top: target_top = '.' if frame: - cdir = frame.f_locals.get('cdir', '') + cdir = frame.f_locals.get('cdir', '.') # END HACK os.chdir(target_top) - for dir in reversed(os.path.normpath(cdir).split('/')): - if dir == '..': - SCons.Utio.display("scons: WARNING: failed to undo -C option") - break - if dir == '.': - continue - os.chdir('..') + cdir = os.path.normpath(cdir) + if cdir.startswith('../'): + SCons.Util.display("scons: WARNING: failed to undo -C option") + elif cdir != '.' and not cdir.startswith('/'): + os.chdir('/'.join(('..' for _ in cdir.split('/')))) os.environ['SCONS_LIB_DIR'] = sconsengine - os.execv(sconsscript, sys.argv) + os.execv(sys.executable, [sconsscript] + sys.argv) +