diff options
| author | Steven Knight <knight@baldmt.com> | 2002-07-17 23:12:12 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-07-17 23:12:12 (GMT) |
| commit | 64a0553a81deaa7cab0158d9f533a1f460ad2c8b (patch) | |
| tree | f8aacc828f3c77f73d8bebf5b6c5ec78eacf05d5 /src/engine/SCons/Script | |
| parent | 1c2adf628d15657cee31f82525493bd9ab84b369 (diff) | |
| download | SCons-64a0553a81deaa7cab0158d9f533a1f460ad2c8b.zip SCons-64a0553a81deaa7cab0158d9f533a1f460ad2c8b.tar.gz SCons-64a0553a81deaa7cab0158d9f533a1f460ad2c8b.tar.bz2 | |
Repository support (first cut).
Diffstat (limited to 'src/engine/SCons/Script')
| -rw-r--r-- | src/engine/SCons/Script/SConscript.py | 7 | ||||
| -rw-r--r-- | src/engine/SCons/Script/__init__.py | 16 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index 48c4046..e088c99 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -167,7 +167,7 @@ def SConscript(*ls, **kw): else: f = SCons.Node.FS.default_fs.File(str(fn)) if f.exists(): - file = open(str(f), "r") + file = open(f.rstr(), "r") SCons.Node.FS.default_fs.chdir(f.dir) if sconscript_chdir: old_dir = os.getcwd() @@ -276,10 +276,13 @@ def BuildDefaultGlobals(): globals['FindFile'] = FindFile globals['GetBuildPath'] = GetBuildPath globals['GetCommandHandler'] = SCons.Action.GetCommandHandler + globals['GetLaunchDir'] = GetLaunchDir globals['Help'] = Help globals['Import'] = Import globals['Library'] = SCons.Defaults.StaticLibrary globals['Object'] = SCons.Defaults.StaticObject + globals['Repository'] = SCons.Node.FS.default_fs.Repository + globals['SetBuildSignatureType'] = SetBuildSignatureType globals['StaticLibrary'] = SCons.Defaults.StaticLibrary globals['StaticObject'] = SCons.Defaults.StaticObject globals['SharedLibrary'] = SCons.Defaults.SharedLibrary @@ -294,6 +297,4 @@ def BuildDefaultGlobals(): globals['Split'] = SCons.Util.Split globals['Tool'] = SCons.Tool.Tool globals['WhereIs'] = SCons.Util.WhereIs - globals['GetLaunchDir'] = GetLaunchDir - globals['SetBuildSignatureType'] = SetBuildSignatureType return globals diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py index 66b4fd7..10794f5 100644 --- a/src/engine/SCons/Script/__init__.py +++ b/src/engine/SCons/Script/__init__.py @@ -185,6 +185,7 @@ target_top = None exit_status = 0 # exit status, assume success by default profiling = 0 max_drift = None +repositories = [] # utility functions @@ -792,7 +793,11 @@ def options_init(): # long = ['warn-undefined-variables'], # help = "Warn when an undefined variable is referenced.") - Option(func = opt_not_yet, future = 1, + def opt_Y(opt, arg): + global repositories + repositories.append(arg) + + Option(func = opt_Y, short = 'Y', long = ['repository'], arg = 'REPOSITORY', help = "Search REPOSITORY for source and target files.") @@ -825,10 +830,15 @@ def _SConstruct_exists(dirname=''): If so, it returns the path of the file. By default, it checks the current directory. """ + global repositories for file in ['SConstruct', 'Sconstruct', 'sconstruct']: sfile = os.path.join(dirname, file) if os.path.isfile(sfile): return sfile + if not os.path.isabs(file): + for rep in repositories: + if os.path.isfile(os.path.join(rep, sfile)): + return sfile return None @@ -932,6 +942,10 @@ def _main(): sys.path = include_dirs + sys.path + global repositories + for rep in repositories: + SCons.Node.FS.default_fs.Repository(rep) + start_time = time.time() for script in scripts: SCons.Script.SConscript.SConscript(script) |
