X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffiletarget.cpp;h=6626db8ded177b79ed8ecd1f0b8bd5a81f3bf456;hb=47496103adfdfe45cdc162a4f6341e924211302d;hp=decb4bf793d68015066e1dede84f044e340ae836;hpb=25900e0f84f72de6208f30529f9bcaae11570f8f;p=builder.git diff --git a/source/filetarget.cpp b/source/filetarget.cpp index decb4bf..6626db8 100644 --- a/source/filetarget.cpp +++ b/source/filetarget.cpp @@ -10,10 +10,12 @@ using namespace std; using namespace Msp; FileTarget::FileTarget(Builder &b, const Package *p, const FS::Path &a): - Target(b, p, make_name(p, a)), + Target(b, generate_name(p, a)), path(a), size(0) { + package = p; + builder.get_vfs().register_path(path, this); if(FS::Stat st = FS::lstat(path)) @@ -26,6 +28,7 @@ FileTarget::FileTarget(Builder &b, const Package *p, const FS::Path &a): void FileTarget::touch() { mtime = Time::now(); + signal_bubble_rebuild.emit(); } void FileTarget::check_rebuild() @@ -33,9 +36,7 @@ void FileTarget::check_rebuild() if(!tool) return; - if(builder.get_build_all()) - mark_rebuild("Rebuilding everything"); - else if(!mtime) + if(!mtime) mark_rebuild("Does not exist"); else { @@ -46,12 +47,6 @@ void FileTarget::check_rebuild() mark_rebuild((*i)->get_name()+" has changed"); else if((*i)->needs_rebuild()) mark_rebuild((*i)->get_name()+" needs rebuilding"); - else - { - Target *real = ft->get_real_target(); - if(real->needs_rebuild()) - mark_rebuild(real->get_name()+" needs rebuilding"); - } } } @@ -60,7 +55,7 @@ void FileTarget::check_rebuild() mark_rebuild("Package options changed"); } -string FileTarget::make_name(const Package *pkg, const FS::Path &pth) +string FileTarget::generate_name(const Package *pkg, const FS::Path &pth) { if(const SourcePackage *spkg = dynamic_cast(pkg)) {