X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarball.cpp;h=5d7678d28a79e33f55a076166b8886915365f5c2;hb=654de39b62a9a58fd8e1b5a557361d628345788b;hp=348272f064689e473610cb14f4ae17b4358317e7;hpb=8bc8db44c47cd2906c57dccbfb589e41eff7f694;p=builder.git diff --git a/source/tarball.cpp b/source/tarball.cpp index 348272f..5d7678d 100644 --- a/source/tarball.cpp +++ b/source/tarball.cpp @@ -7,26 +7,33 @@ Distributed under the LGPL #include "builder.h" #include "file.h" -#include "package.h" +#include "sourcepackage.h" #include "tar.h" #include "tarball.h" using namespace std; -TarBall::TarBall(Builder &b, const Package &p, const string &ev): +TarBall::TarBall(Builder &b, const SourcePackage &p, const string &ev): Target(b, &p, create_target_name(p, ev)) { buildable=true; } +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=package->get_tar_files(); + 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()); @@ -43,7 +50,7 @@ Action *TarBall::build() return Target::build(new Tar(builder, *this)); } -string TarBall::create_target_name(const Package &pkg, const string &extra_ver) +string TarBall::create_target_name(const SourcePackage &pkg, const string &extra_ver) { string basename=pkg.get_name()+"-"+pkg.get_version(); if(!extra_ver.empty())