diff options
| author | Steven Knight <knight@baldmt.com> | 2002-08-06 05:10:28 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-08-06 05:10:28 (GMT) |
| commit | 57d9079227dbde7a6d8f29d03dd36a8d26b3850d (patch) | |
| tree | 0343dbc1b37046bfabab4a8cab254f08646c0f17 /src/engine/SCons | |
| parent | 59ec4b2e4ca1579c703093d0f87a7c5ecde8633c (diff) | |
| download | SCons-57d9079227dbde7a6d8f29d03dd36a8d26b3850d.zip SCons-57d9079227dbde7a6d8f29d03dd36a8d26b3850d.tar.gz SCons-57d9079227dbde7a6d8f29d03dd36a8d26b3850d.tar.bz2 | |
Add Local() functionality to Repository support.
Diffstat (limited to 'src/engine/SCons')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 11 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConscript.py | 9 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 8bdfeb6..1433f20 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -388,6 +388,7 @@ class Entry(SCons.Node.Node): self.__doSrcpath(self.duplicate) self.srcpath_ = self.srcpath self.cwd = None # will hold the SConscript directory for target nodes + self._local = None def get_dir(self): return self.dir @@ -460,6 +461,9 @@ class Entry(SCons.Node.Node): else: return self.dir.is_under(dir) + def set_local(self): + self._local = 1 + # XXX TODO? @@ -606,7 +610,6 @@ class Dir(Entry): # source_exists # derived_exists # is_on_rpath -# local # base_suf # suffix # addsuffix @@ -758,8 +761,10 @@ class File(Entry): if r != self: # ...but there is one in a Repository... if calc.current(r, bsig): - # ...and it's even up-to-date. - # XXX Future: copy locally if requested + # ...and it's even up-to-date... + if self._local: + # ...and they'd like a local copy. + file_link(r.path, self.path) return 1 self._rfile = self return None diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index 38fd080..a141297 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -206,6 +206,14 @@ def Default(*targets): default_targets.extend(SCons.Node.arg2nodes(t, SCons.Node.FS.default_fs.Entry)) +def Local(*targets): + for targ in targets: + if isinstance(targ, SCons.Node.Node): + targ.set_local() + else: + for t in SCons.Node.arg2nodes(targ, SCons.Node.FS.default_fs.Entry): + t.set_local() + def Help(text): if print_help: print text @@ -280,6 +288,7 @@ def BuildDefaultGlobals(): globals['Help'] = Help globals['Import'] = Import globals['Library'] = SCons.Defaults.StaticLibrary + globals['Local'] = Local globals['Object'] = SCons.Defaults.StaticObject globals['Repository'] = SCons.Node.FS.default_fs.Repository globals['SetBuildSignatureType'] = SetBuildSignatureType |
