]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Refactor package configuration
[builder.git] / source / package.h
index 3d980f26ab19d501adf1486df69a25a6962a8943..b9807e34634c1380bcf9ab482a8b193e840b1245 100644 (file)
@@ -10,6 +10,9 @@
 #include "packageref.h"
 
 class Builder;
+class Package;
+
+typedef std::list<Package *> PackageList;
 
 /**
 A package is a distributable piece of software.  They consist of one or more
@@ -26,7 +29,6 @@ public:
        public:
                Loader(Package &);
                Package &get_object() { return pkg; }
-               ~Loader();
        private:
                Package &pkg;
                
@@ -50,8 +52,7 @@ public:
        Builder             &get_builder() const        { return builder; }
        bool                get_need_path() const       { return need_path; }
        void                resolve_refs();
-       void                create_build_info();
-       void                process_options(const RawOptionMap &);
+       void                configure(const RawOptionMap &, unsigned);
 
        static Package *create(Builder &, const std::string &);
 private:
@@ -72,17 +73,19 @@ private:
        bool          buildable;
        Msp::Path::Path source;
        PkgRefList    requires;
+       PackageList   all_reqs;
        BuildInfo     build_info;
        BuildInfo     export_binfo;
        ComponentList components;
        Config        config;
-       bool          build_info_ready;
+       bool          conf_done;
 
        bool          need_path;
        Msp::Path::Path path;
 
        Package(Builder &, const std::string &, const std::vector<std::string> &);
-       void    init_buildable();
+       void     init_config();
+       void     create_build_info();
        unsigned get_install_flags();
 };