]> git.tdb.fi Git - builder.git/blobdiff - source/lib/sourcepackage.cpp
Convert the remaining tools into actual plugins
[builder.git] / source / lib / sourcepackage.cpp
index dfbf16e92553737e9aa9a333db5b5a4a13d048e0..1af2aa693e148831c09f72e327c349f82c0129af 100644 (file)
@@ -5,11 +5,9 @@
 #include <msp/io/print.h>
 #include <msp/strings/lexicalcast.h>
 #include <msp/strings/utils.h>
-#include "android/androidapplicationcomponent.h"
 #include "binarycomponent.h"
 #include "binarypackage.h"
 #include "builder.h"
-#include "datafile/datapackcomponent.h"
 #include "file.h"
 #include "installcomponent.h"
 #include "plugin.h"
@@ -155,9 +153,7 @@ SourcePackage::Loader::Loader(SourcePackage &p, const Config::InputOptions *o):
        FeatureConditional(p, p.name),
        options(o)
 {
-       add("android_application", &Loader::component<AndroidApplicationComponent>);
        add("build_info",  &Loader::build_info);
-       add("datapack",    &Loader::component<DataPackComponent>);
        add("description", &SourcePackage::description);
        add("feature",     &Loader::feature);
        add("generate",    &Loader::generate);
@@ -170,6 +166,8 @@ SourcePackage::Loader::Loader(SourcePackage &p, const Config::InputOptions *o):
        add("source_tarball", &Loader::source_archive);
        add("tarball",     &Loader::tarball);
        add("version",     &Loader::version);
+
+       p.builder.get_component_registry().invoke_all(*this);
 }
 
 void SourcePackage::Loader::finish()
@@ -200,16 +198,6 @@ void SourcePackage::Loader::feature(const string &n, const string &d)
        }
 }
 
-template<typename C, typename... Args>
-void SourcePackage::Loader::component(Args... args, const string &n)
-{
-       if(any_of(obj.components.begin(), obj.components.end(), [&n](const Component *c){ return c->get_name()==n; }))
-               throw key_error(n);
-       C *comp = new C(obj, n, args...);
-       load_sub(*comp);
-       obj.components.push_back(comp);
-}
-
 void SourcePackage::Loader::build_info()
 {
        load_sub(obj.build_info);