X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.cpp;h=f3d6183afa6b01161b1039af0bb6f838d571e5d8;hb=af2dac0d09df4782060dd131f2a761e8a46a8d55;hp=766188b5ad313bc73dd5e3db1660c36e637aa785;hpb=04c316da6d5d90e43cba262f54d90ca231f703bf;p=builder.git diff --git a/source/objectfile.cpp b/source/objectfile.cpp index 766188b..f3d6183 100644 --- a/source/objectfile.cpp +++ b/source/objectfile.cpp @@ -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(tgt); - FileTarget *file = src; - if(!src) - { - if(Install *inst = dynamic_cast(tgt)) - { - file = inst; - src = dynamic_cast(&inst->get_source()); - } - } - if(!src) + SourceFile *src = dynamic_cast(tgt->get_real_target()); + FileTarget *file = dynamic_cast(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 &includes = src->get_includes(); for(list::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); } }