X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarball.cpp;h=7596a3d25f1f1ed92dd64a735ca317d9e27dd6cb;hb=e4c839cacd8572ade951f4961e8e145d20e0103f;hp=5d7678d28a79e33f55a076166b8886915365f5c2;hpb=654de39b62a9a58fd8e1b5a557361d628345788b;p=builder.git diff --git a/source/tarball.cpp b/source/tarball.cpp index 5d7678d..7596a3d 100644 --- a/source/tarball.cpp +++ b/source/tarball.cpp @@ -1,61 +1,14 @@ -/* $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)) -{ - buildable=true; -} +TarBall::TarBall(Builder &b, const SourcePackage &p, const string &n): + FileTarget(b, p, p.get_source_directory()/(n+".tar")) +{ } 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) -{ - string basename=pkg.get_name()+"-"+pkg.get_version(); - if(!extra_ver.empty()) - basename+="-"+extra_ver; - basename+=".tar"; - - return (pkg.get_source()/basename).str(); -}