3 This file is part of builder
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
16 TarBall::TarBall(Builder &b, const Package &p, const string &ev):
17 Target(b, &p, create_target_name(p, ev))
22 void TarBall::find_depends()
24 const TargetMap &targets=builder.get_targets();
25 for(TargetMap::const_iterator i=targets.begin(); i!=targets.end(); ++i)
26 if(i->second->get_package()==package && i->second!=this && !i->second->get_buildable())
27 add_depend(i->second);
29 const PathList &tar_files=package->get_tar_files();
30 for(PathList::const_iterator i=tar_files.begin(); i!=tar_files.end(); ++i)
32 Target *tgt=builder.get_target(i->str());
34 tgt=new File(builder, i->str());
41 Action *TarBall::build()
43 return Target::build(new Tar(builder, *this));
46 string TarBall::create_target_name(const Package &pkg, const string &extra_ver)
48 string basename=pkg.get_name()+"-"+pkg.get_version();
49 if(!extra_ver.empty())
50 basename+="-"+extra_ver;
53 return (pkg.get_source()/basename).str();