-/* $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()/(n+".tar"))
+{ }
const SourcePackage *TarBall::get_package() const
{
return static_cast<const SourcePackage *>(package);
}
-
-void TarBall::find_depends()
-{
- const SourcePackage *spkg=dynamic_cast<const SourcePackage *>(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::create_action()
-{
- return 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();
-}