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/engine/SCons/Node | |
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/engine/SCons/Node')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 13 |
1 files changed, 13 insertions, 0 deletions
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 |