]> git.tdb.fi Git - builder.git/blobdiff - source/sourcepackage.h
Support specifying library modes on a per-library basis
[builder.git] / source / sourcepackage.h
index bdcba478262a786d5e3a91369787ec2b00632bb7..f0a58b74dc9619ed1a6fe5abfb865e61ab34d9b9 100644 (file)
@@ -28,7 +28,7 @@ A package that can be built by Builder.
 class SourcePackage: public Package
 {
 public:
-       class Loader: public Msp::DataFile::DerivedObjectLoader<SourcePackage, Package>
+       class Loader: public Msp::DataFile::DerivedObjectLoader<SourcePackage, Package::Loader>
        {
        private:
                const Config::InputOptions *options;
@@ -46,17 +46,21 @@ public:
                void condition(const std::string &);
                void build_info();
                void headers(const std::string &);
-               void if_arch(const std::string &);
                void if_feature(const std::string &);
+               void interface_version(const std::string &);
                void source_tarball();
                void tarball(const std::string &);
                void tar_file(const std::string &);
+               void version(const std::string &);
        };
 
        typedef std::list<Component> ComponentList;
 
 private:
+       typedef std::list<Feature> FeatureList;
+
        std::string version;
+       std::string interface_version;
        std::string description;
 
        FileTarget *build_file;
@@ -73,6 +77,7 @@ public:
        SourcePackage(Builder &, const std::string &, const Msp::FS::Path &);
 
        const std::string &get_version() const { return version; }
+       const std::string &get_interface_version() const { return interface_version; }
        const std::string &get_description() const { return description; }
        FileTarget &get_build_file() const { return *build_file; }
        const Msp::FS::Path &get_source_directory() const { return source_dir; }
@@ -86,9 +91,7 @@ public:
 
        Cache &get_cache() const { return cache; }
 private:
-       virtual void create_build_info();
-
-       virtual void create_targets();
+       virtual void do_prepare();
 
        virtual void save_caches();
 };