]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Convert all list containers to vectors
[builder.git] / source / package.h
index aed1fd9c061b1f37fde116c42ec23ee539d3a3a5..bb3c809642c42f43aee233389b49723bbb5a33ce 100644 (file)
@@ -1,10 +1,11 @@
 #ifndef PACKAGE_H_
 #define PACKAGE_H_
 
-#include <list>
 #include <string>
+#include <vector>
 #include <msp/datafile/objectloader.h>
 #include "buildinfo.h"
+#include "conditionalloader.h"
 #include "config.h"
 
 class Builder;
@@ -18,25 +19,26 @@ packages and the builderrc file for binary packages with no pkg-config support.
 class Package
 {
 public:
-       class Loader: public Msp::DataFile::ObjectLoader<Package>
+       class Loader: public Msp::DataFile::ObjectLoader<Package>, public ArchitectureConditional
        {
        public:
                Loader(Package &);
        private:
-               void if_arch(const std::string &);
                void require(const std::string &);
        };
 
-       typedef std::list<Package *> Requirements;
+       using Requirements = std::vector<Package *>;
 
 protected:
        Builder &builder;
 
        std::string name;
+       std::string label;
 
        Requirements requires;
        BuildInfo export_binfo;
        bool prepared;
+       std::vector<std::string> problems;
 
        bool use_pkgconfig;
 
@@ -46,12 +48,13 @@ public:
 
        Builder &get_builder() const { return builder; }
        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_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. */
@@ -63,6 +66,8 @@ protected:
 public:
        bool is_prepared() const { return prepared; }
 
+       const std::vector<std::string> &get_problems() const { return problems; }
+
        virtual void save_caches() { }
 };