]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.cpp
Add Symlink target and associated action
[builder.git] / source / objectfile.cpp
index 766188b5ad313bc73dd5e3db1660c36e637aa785..f3d6183afa6b01161b1039af0bb6f838d571e5d8 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of builder
-Copyright © 2006-2009  Mikko Rasa, Mikkosoft Productions
+Copyright © 2006-2010  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
@@ -47,17 +47,9 @@ void ObjectFile::find_depends()
 
 void ObjectFile::find_depends(Target *tgt)
 {
-       SourceFile *src = dynamic_cast<SourceFile *>(tgt);
-       FileTarget *file = src;
-       if(!src)
-       {
-               if(Install *inst = dynamic_cast<Install *>(tgt))
-               {
-                       file = inst;
-                       src = dynamic_cast<SourceFile *>(&inst->get_source());
-               }
-       }
-       if(!src)
+       SourceFile *src = dynamic_cast<SourceFile *>(tgt->get_real_target());
+       FileTarget *file = dynamic_cast<FileTarget *>(tgt);
+       if(!src || !file)
                return;
 
        FS::Path spath = FS::dirname(file->get_path());
@@ -66,9 +58,9 @@ void ObjectFile::find_depends(Target *tgt)
        const list<string> &includes = src->get_includes();
        for(list<string>::const_iterator i=includes.begin(); i!=includes.end(); ++i)
        {
-               Target *hdr2 = builder.get_header(*i, spath, incpath);
-               if(hdr2 && find(depends.begin(), depends.end(), hdr2)==depends.end())
-                       add_depend(hdr2);
+               Target *hdr = builder.get_header(*i, spath, incpath);
+               if(hdr && find(depends.begin(), depends.end(), hdr)==depends.end())
+                       add_depend(hdr);
        }
 }