]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Add DependencyCache to speed up build preparation
[builder.git] / source / package.h
index 1aebf163865a98c290d5a668a55cf8ffc790b9d3..90ee6bc510abc941262d884146c6d053db32f522 100644 (file)
@@ -10,11 +10,12 @@ Distributed under the LGPL
 
 #include <list>
 #include <string>
-#include <msp/parser/loader.h>
+#include <msp/datafile/loader.h>
 #include "buildinfo.h"
 #include "component.h"
 #include "condition.h"
 #include "config.h"
+#include "dependencycache.h"
 #include "feature.h"
 #include "packageref.h"
 
@@ -26,8 +27,7 @@ typedef std::list<Package *> PackageList;
 /**
 A package is a distributable piece of software.  They consist of one or more
 Components and may depend on other packages.  Packages also have configuration
-to determine where files are installed and which features to include (features
-NYI).
+to determine where files are installed and which features to include.
 */
 class Package
 {
@@ -41,7 +41,7 @@ public:
        };
 
        /// Loads a package from a file.
-       class Loader: public Msp::Parser::Loader
+       class Loader: public Msp::DataFile::Loader
        {
        public:
                Loader(Package &);
@@ -82,6 +82,7 @@ public:
        const std::string   &get_arch() const           { return config.get_option("arch").value; }
        LibMode             get_library_mode() const;
        const PathList      &get_tar_files() const      { return tar_files; }
+       DependencyCache     &get_deps_cache() const     { return deps_cache; }
        void                resolve_refs();
        void                configure(const StringMap &, unsigned);
 
@@ -104,6 +105,7 @@ private:
        ComponentList components;
        Config        config;
        bool          conf_done;
+       mutable DependencyCache deps_cache;
        PathList      tar_files;
 
        bool          use_pkgconfig;