]> git.tdb.fi Git - builder.git/blobdiff - source/sourcepackage.h
Refactor the constructor of SourcePackage::Loader
[builder.git] / source / sourcepackage.h
index ed8ad40f7275f9d5ac364a3f7971cf805b31b050..68b89c85279e4ab9327be954b457f4f8a2742de2 100644 (file)
@@ -6,6 +6,7 @@
 #include "buildinfo.h"
 #include "cache.h"
 #include "component.h"
+#include "conditionalloader.h"
 #include "config.h"
 #include "feature.h"
 #include "package.h"
@@ -22,17 +23,16 @@ A package that can be built by Builder.
 class SourcePackage: public Package
 {
 public:
-       class Loader: public Msp::DataFile::DerivedObjectLoader<SourcePackage, Package::Loader>
+       class Loader: public Msp::DataFile::DerivedObjectLoader<SourcePackage, Package::Loader>, public FeatureConditional
        {
        private:
                const Config::InputOptions *options;
 
        public:
-               Loader(SourcePackage &);
-               Loader(SourcePackage &, const Config::InputOptions &);
+               Loader(SourcePackage &, const Config::InputOptions *);
        private:
-               void init(const Config::InputOptions *);
-               virtual void finish();
+               void finish() override;
+
                void feature(const std::string &, const std::string &);
                template<typename C>
                void component(const std::string &);
@@ -40,7 +40,6 @@ public:
                void component_arg(const std::string &);
                void build_info();
                void generate(const std::string &);
-               void if_feature(const std::string &);
                void interface_version(const std::string &);
                void source_archive();
                void tarball(const std::string &);
@@ -87,12 +86,12 @@ public:
        void set_build_type(const BuildType &);
        const BuildInfo &get_build_info() const { return build_info; }
 private:
-       virtual void do_prepare();
+       void do_prepare() override;
 
 public:
        Cache &get_cache() const { return cache; }
 private:
-       virtual void save_caches();
+       void save_caches() override;
 };
 
 #endif