X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftar.cpp;h=6dee843df7ef4de8bee1baae45509a7fb2f34699;hb=bc85cc286c8a3f1055f1979a7ff8697cf1b61912;hp=b49e6fe08a7279b3bdddcde002955b4516cf50df;hpb=0b16c3de0f9dc01bd8a9708008f9435fe0252df1;p=builder.git diff --git a/source/tar.cpp b/source/tar.cpp index b49e6fe..6dee843 100644 --- a/source/tar.cpp +++ b/source/tar.cpp @@ -13,17 +13,20 @@ using namespace Msp; Tar::Tar(Builder &b): Tool(b, "TAR") -{ } +{ + processing_unit = COMPONENT; +} -Target *Tar::create_target(const list &sources, const string &arg) const +Target *Tar::create_target(const list &sources, const string &arg) { if(!sources.front()->get_package()) throw invalid_argument("Tar::create_target"); - const SourcePackage &src_pkg = dynamic_cast(*sources.front()->get_package()); - TarBall *tarball = new TarBall(builder, src_pkg, arg); + TarBall *tarball = new TarBall(builder, *sources.front()->get_package(), arg); for(list::const_iterator i=sources.begin(); i!=sources.end(); ++i) - tarball->add_depend(*i); + tarball->add_dependency(**i); + + tarball->set_tool(*this); return tarball; } @@ -38,17 +41,15 @@ Task *Tar::run(const Target &target) const Tar::Worker::Worker(const TarBall &tb): tarball(tb) -{ - launch(); -} +{ } void Tar::Worker::main() { - const FS::Path &pkg_src = tarball.get_package()->get_source(); + const FS::Path &pkg_src = tarball.get_package()->get_source_directory(); FS::Path basedir = FS::basepart(FS::basename(tarball.get_path())); IO::File out(tarball.get_path().str(), IO::M_WRITE); - const Target::Dependencies &deps = tarball.get_depends(); + const Target::Dependencies &deps = tarball.get_dependencies(); for(Target::Dependencies::const_iterator i=deps.begin(); i!=deps.end(); ++i) { FileTarget *ft = dynamic_cast(*i);