]> git.tdb.fi Git - builder.git/blobdiff - source/sourcepackage.cpp
Convert all list containers to vectors
[builder.git] / source / sourcepackage.cpp
index 4d680ba9bd234e5d16e62ea76adda82bf8a89c2e..40b098ca10931b4bf31651f80b7dcbb64beded83 100644 (file)
@@ -167,23 +167,11 @@ void SourcePackage::save_caches()
 }
 
 
-SourcePackage::Loader::Loader(SourcePackage &p):
+SourcePackage::Loader::Loader(SourcePackage &p, const Config::InputOptions *o):
        DataFile::DerivedObjectLoader<SourcePackage, Package::Loader>(p),
-       FeatureConditional(p, p.name)
+       FeatureConditional(p, p.name),
+       options(o)
 {
-       init(0);
-}
-
-SourcePackage::Loader::Loader(SourcePackage &p, const Config::InputOptions &o):
-       DataFile::DerivedObjectLoader<SourcePackage, Package::Loader>(p),
-       FeatureConditional(p, p.name)
-{
-       init(&o);
-}
-
-void SourcePackage::Loader::init(const Config::InputOptions *o)
-{
-       options = o;
        add("android_application", &Loader::component<AndroidApplicationComponent>);
        add("build_info",  &Loader::build_info);
        add("datapack",    &Loader::component<DataPackComponent>);
@@ -192,9 +180,9 @@ void SourcePackage::Loader::init(const Config::InputOptions *o)
        add("generate",    &Loader::generate);
        add("install",     &Loader::component<InstallComponent>);
        add("interface_version", &Loader::interface_version);
-       add("library",     &Loader::component_arg<BinaryComponent, BinaryComponent::Type, BinaryComponent::LIBRARY>);
-       add("module",      &Loader::component_arg<BinaryComponent, BinaryComponent::Type, BinaryComponent::MODULE>);
-       add("program",     &Loader::component_arg<BinaryComponent, BinaryComponent::Type, BinaryComponent::PROGRAM>);
+       add("library",     &Loader::component_arg<BinaryComponent, BinaryComponent::Type>, BinaryComponent::LIBRARY);
+       add("module",      &Loader::component_arg<BinaryComponent, BinaryComponent::Type>, BinaryComponent::MODULE);
+       add("program",     &Loader::component_arg<BinaryComponent, BinaryComponent::Type>, BinaryComponent::PROGRAM);
        add("source_archive", &Loader::source_archive);
        add("source_tarball", &Loader::source_archive);
        add("tarball",     &Loader::tarball);
@@ -207,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)
@@ -234,8 +225,8 @@ void SourcePackage::Loader::component(const string &n)
        obj.components.push_back(comp);
 }
 
-template<typename C, typename A, A a>
-void SourcePackage::Loader::component_arg(const string &n)
+template<typename C, typename A>
+void SourcePackage::Loader::component_arg(A a, const string &n)
 {
        C *comp = new C(obj, n, a);
        load_sub(*comp);