diff options
| author | Steven Knight <knight@baldmt.com> | 2008-12-10 14:25:18 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2008-12-10 14:25:18 (GMT) |
| commit | 2766fe209f8a25295455956337a4b1ff9730e32e (patch) | |
| tree | 64e148d5103bfc9a3272a40afb95486ec9d6f7b3 /src | |
| parent | 665765284f5de349b469c77fa384fb16ee56c4ce (diff) | |
| download | SCons-2766fe209f8a25295455956337a4b1ff9730e32e.zip SCons-2766fe209f8a25295455956337a4b1ff9730e32e.tar.gz SCons-2766fe209f8a25295455956337a4b1ff9730e32e.tar.bz2 | |
Issue 1287: copy File attributes from the local Node to a Repository
Node so we identify shared object files in a Repository and can link
them into a local shared library. (Matthew Wesley)
Diffstat (limited to 'src')
| -rw-r--r-- | src/CHANGES.txt | 9 | ||||
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index f496fa7..b6116ed 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -10,6 +10,15 @@ RELEASE 1.X - XXX + From Matthew Wesley: + + - Copy file attributes so we identify, and can link a shared library + from, shared object files in a Repository. + + + +RELEASE 1.X - XXX + From Benoit Belley: - Improve the robustness of GetBuildFailures() by refactoring diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 790d840..98efc7a 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -2834,6 +2834,19 @@ class File(Base): (isinstance(node, File) or isinstance(node, Entry) \ or not node.is_derived()): result = node + # Copy over our local attributes to the repository + # Node so we identify shared object files in the + # repository and don't assume they're static. + # + # This isn't perfect; the attribute would ideally + # be attached to the object in the repository in + # case it was built statically in the repository + # and we changed it to shared locally, but that's + # rarely the case and would only occur if you + # intentionally used the same suffix for both + # shared and static objects anyway. So this + # should work well in practice. + result.attributes = self.attributes break self._memo['rfile'] = result return result |
