]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Recent versions of sigc++ require C++11
[builder.git] / source / package.h
index 3a7ba3ab3c19cd71410874eeb2fd0877098ac478..34049d0ce9129ec4de87a3f35a367e22c7d72cee 100644 (file)
@@ -5,6 +5,7 @@
 #include <string>
 #include <msp/datafile/objectloader.h>
 #include "buildinfo.h"
+#include "conditionalloader.h"
 #include "config.h"
 
 class Builder;
@@ -18,12 +19,11 @@ 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 &);
        };
 
@@ -33,10 +33,12 @@ protected:
        Builder &builder;
 
        std::string name;
+       std::string label;
 
        Requirements requires;
        BuildInfo export_binfo;
        bool prepared;
+       std::list<std::string> problems;
 
        bool use_pkgconfig;
 
@@ -44,14 +46,15 @@ protected:
 public:
        virtual ~Package() { }
 
-       const std::string &get_name() const { return name; }
        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::list<std::string> &get_problems() const { return problems; }
+
        virtual void save_caches() { }
 };