X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarball.cpp;h=47df5c170560d9d0b197b6852cd3007dc231d049;hb=43bd25ffcb0b4f7882773f4676b209a99cb73c04;hp=5d7678d28a79e33f55a076166b8886915365f5c2;hpb=654de39b62a9a58fd8e1b5a557361d628345788b;p=builder.git diff --git a/source/tarball.cpp b/source/tarball.cpp index 5d7678d..47df5c1 100644 --- a/source/tarball.cpp +++ b/source/tarball.cpp @@ -1,22 +1,13 @@ -/* $Id$ - -This file is part of builder -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - -#include "builder.h" -#include "file.h" #include "sourcepackage.h" #include "tar.h" #include "tarball.h" using namespace std; -TarBall::TarBall(Builder &b, const SourcePackage &p, const string &ev): - Target(b, &p, create_target_name(p, ev)) +TarBall::TarBall(Builder &b, const SourcePackage &p, const string &n): + FileTarget(b, &p, p.get_source()/(n+".tar")) { - buildable=true; + buildable = true; } const SourcePackage *TarBall::get_package() const @@ -24,38 +15,7 @@ const SourcePackage *TarBall::get_package() const return static_cast(package); } -void TarBall::find_depends() -{ - const SourcePackage *spkg=dynamic_cast(package); - - const TargetMap &targets=builder.get_targets(); - for(TargetMap::const_iterator i=targets.begin(); i!=targets.end(); ++i) - if(i->second->get_package()==package && i->second!=this && !i->second->get_buildable()) - add_depend(i->second); - - const PathList &tar_files=spkg->get_tar_files(); - for(PathList::const_iterator i=tar_files.begin(); i!=tar_files.end(); ++i) - { - Target *tgt=builder.get_target(i->str()); - if(!tgt) - tgt=new File(builder, i->str()); - add_depend(tgt); - } - - deps_ready=true; -} - -Action *TarBall::build() -{ - return Target::build(new Tar(builder, *this)); -} - -string TarBall::create_target_name(const SourcePackage &pkg, const string &extra_ver) +Action *TarBall::create_action() { - string basename=pkg.get_name()+"-"+pkg.get_version(); - if(!extra_ver.empty()) - basename+="-"+extra_ver; - basename+=".tar"; - - return (pkg.get_source()/basename).str(); + return new Tar(builder, *this); }