X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsourcepackage.cpp;h=40b098ca10931b4bf31651f80b7dcbb64beded83;hb=aa053d637e8259755af7d2e4b510a242f4d29c7b;hp=74c38864bce10cb4f63bdd5888604b0f69841365;hpb=8f99b70eb78bdb5537afc77aa283961a2e825506;p=builder.git diff --git a/source/sourcepackage.cpp b/source/sourcepackage.cpp index 74c3886..40b098c 100644 --- a/source/sourcepackage.cpp +++ b/source/sourcepackage.cpp @@ -180,9 +180,9 @@ SourcePackage::Loader::Loader(SourcePackage &p, const Config::InputOptions *o): add("generate", &Loader::generate); add("install", &Loader::component); add("interface_version", &Loader::interface_version); - add("library", &Loader::component_arg); - add("module", &Loader::component_arg); - add("program", &Loader::component_arg); + add("library", &Loader::component_arg, BinaryComponent::LIBRARY); + add("module", &Loader::component_arg, BinaryComponent::MODULE); + add("program", &Loader::component_arg, BinaryComponent::PROGRAM); add("source_archive", &Loader::source_archive); add("source_tarball", &Loader::source_archive); add("tarball", &Loader::tarball); @@ -195,7 +195,10 @@ void SourcePackage::Loader::finish() other components wil be created first */ auto i = find(obj.components, obj.source_archive); if(i!=obj.components.end()) - obj.components.splice(obj.components.end(), obj.components, i); + { + obj.components.erase(i); + obj.components.push_back(obj.source_archive); + } } void SourcePackage::Loader::feature(const string &n, const string &d) @@ -222,8 +225,8 @@ void SourcePackage::Loader::component(const string &n) obj.components.push_back(comp); } -template -void SourcePackage::Loader::component_arg(const string &n) +template +void SourcePackage::Loader::component_arg(A a, const string &n) { C *comp = new C(obj, n, a); load_sub(*comp);