X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flib%2Ffiletarget.cpp;h=7ab13c3d5bf93833580a687982d7dd2acbdcc2ce;hb=f4de41c810319d3ecc8bb5084de06a953037b7b7;hp=a2bd3f0a1e0b1f922e2fe89feff2bd59483ca39e;hpb=c8e829c219c65ff8e93b6c7b66212ff0876441c5;p=builder.git diff --git a/source/lib/filetarget.cpp b/source/lib/filetarget.cpp index a2bd3f0..7ab13c3 100644 --- a/source/lib/filetarget.cpp +++ b/source/lib/filetarget.cpp @@ -13,6 +13,14 @@ using namespace std; using namespace Msp; +FileTarget::FileTarget(Builder &b, const FS::Path &a): + FileTarget(b, 0, a) +{ } + +FileTarget::FileTarget(Builder &b, const SourcePackage &p, const FS::Path &a): + FileTarget(b, &p, a) +{ } + FileTarget::FileTarget(Builder &b, const SourcePackage *p, const FS::Path &a): Target(b, generate_name(b, p, a)), path(a) @@ -83,6 +91,8 @@ void FileTarget::check_rebuild() auto i = find_if(side_effects, [](const Target *s){ return s->needs_rebuild(); }); if(i!=side_effects.end()) mark_rebuild((*i)->get_name()+" needs rebuilding"); + if(primary_target && primary_target->needs_rebuild()) + mark_rebuild(primary_target->get_name()+" needs rebuilding"); } if(!needs_rebuild() && package) @@ -137,7 +147,7 @@ string FileTarget::create_build_signature() const void FileTarget::build(Task &task) { - task.add_file(path); + task.add_target(*this); task.set_unlink(true); }