X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsourcepackage.cpp;h=6f3db4d8e07e392451dbfe527397cbf3786394f6;hb=2edc25f87590bd81808792c3c38cab5ae8b94eb3;hp=3f38acf39c1eba37024d751ef840543195d2ee1d;hpb=5622fc20f0be8bff0938d24f6f45d3ab384288ca;p=builder.git diff --git a/source/sourcepackage.cpp b/source/sourcepackage.cpp index 3f38acf..6f3db4d 100644 --- a/source/sourcepackage.cpp +++ b/source/sourcepackage.cpp @@ -16,13 +16,21 @@ Distributed under the LGPL using namespace std; using namespace Msp; +namespace { + +bool component_sort(const Component &c1, const Component &c2) +{ return c1.get_type()(pkg); + spkg.components.sort(component_sort); +} + void SourcePackage::Loader::feature(const string &n, const string &d) { static_cast(pkg).features.push_back(Feature(n, d)); @@ -269,8 +284,27 @@ void SourcePackage::Loader::build_info() load_sub(static_cast(pkg).build_info); } +void SourcePackage::Loader::tarball(const string &n) +{ + SourcePackage &spkg=static_cast(pkg); + if(n=="@src") + { + for(ComponentList::iterator i=spkg.components.begin(); i!=spkg.components.end(); ++i) + if(i->get_type()==Component::TARBALL && i->get_name()==n) + load_sub(*i); + } + else + { + Component trbl(spkg, Component::TARBALL, n); + load_sub(trbl); + } +} + void SourcePackage::Loader::tar_file(const string &f) { + IO::print("%s: Note: tar_file is deprecated\n", get_source()); SourcePackage &spkg=static_cast(pkg); - spkg.tar_files.push_back(spkg.source/f); + for(ComponentList::iterator i=spkg.components.begin(); i!=spkg.components.end(); ++i) + if(i->get_type()==Component::TARBALL && i->get_name()=="@src") + const_cast(i->get_sources()).push_back(spkg.source/f); }