]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Add a field for a human-readable name for packages
[builder.git] / source / package.h
index e98f4e786f88b9d2fd4e674f1dcf76249e4965ee..01a43a0fb8453c0fbd1eedfae560b745717a9d7c 100644 (file)
@@ -10,8 +10,6 @@
 class Builder;
 class Package;
 
-typedef std::list<Package *> PackageList;
-
 /**
 A package is a distributable piece of software.  Package information may be
 obtained in several ways: Build files of source packages, pkg-config for binary
@@ -25,17 +23,22 @@ public:
        public:
                Loader(Package &);
        private:
+               void if_arch(const std::string &);
                void require(const std::string &);
        };
 
+       typedef std::list<Package *> Requirements;
+
 protected:
        Builder &builder;
 
        std::string name;
+       std::string label;
 
-       PackageList requires;
+       Requirements requires;
        BuildInfo export_binfo;
        bool prepared;
+       std::list<std::string> problems;
 
        bool use_pkgconfig;
 
@@ -43,26 +46,28 @@ protected:
 public:
        virtual ~Package() { }
 
-       const std::string &get_name() const { return name; }
        Builder &get_builder() const { return builder; }
-       const PackageList &get_requires() const { return requires; }
+       const std::string &get_name() const { return name; }
+       const std::string &get_label() const { return label; }
+       const Requirements &get_required_packages() const { return requires; }
 
-       const BuildInfo &get_exported_binfo() const { return export_binfo; }
+       const BuildInfo &get_exported_build_info() const { return export_binfo; }
 
        /// Indicates whether or not this package supports pkg-config
-       bool get_use_pkgconfig() const { return use_pkgconfig; }
+       bool uses_pkgconfig() const { return use_pkgconfig; }
 
        /** Prepares the package for building.  Recursively prepares all required
        packages, populates build info and creates targets. */
        void prepare();
 
-       bool is_prepared() const { return prepared; }
 protected:
-       virtual void create_build_info() { }
-
-       virtual void create_targets() { }
+       virtual void do_prepare() { }
 
 public:
+       bool is_prepared() const { return prepared; }
+
+       const std::list<std::string> &get_problems() const { return problems; }
+
        virtual void save_caches() { }
 };