]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Add Id tag to all files
[builder.git] / source / package.h
index 68e0c224c2116126d29ec620e44fe71a4bab5242..0bd678a9c77a01ff4391eabc296e46c3e9d33733 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of builder
+Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef PACKAGE_H_
 #define PACKAGE_H_
 
@@ -6,7 +13,9 @@
 #include <msp/parser/loader.h>
 #include "buildinfo.h"
 #include "component.h"
+#include "condition.h"
 #include "config.h"
+#include "feature.h"
 #include "packageref.h"
 
 class Builder;
@@ -41,6 +50,8 @@ public:
                Package &pkg;
                
                void require(const std::string &);
+               void feature(const std::string &, const std::string &);
+               void condition(const std::string &);
                void program(const std::string &);
                void library(const std::string &);
                void module(const std::string &);
@@ -70,7 +81,7 @@ public:
        const std::string   &get_arch() const           { return config.get_option("arch").value; }
        LibMode             get_library_mode() const;
        void                resolve_refs();
-       void                configure(const RawOptionMap &, unsigned);
+       void                configure(const StringMap &, unsigned);
 
        static Package *create(Builder &, const std::string &);
 private:
@@ -84,8 +95,10 @@ private:
        Msp::Path::Path source;
        PkgRefList    requires;
        PackageList   all_reqs;
+       FeatureList   features;
        BuildInfo     build_info;
        BuildInfo     export_binfo;
+       ConditionList conditions;
        ComponentList components;
        Config        config;
        bool          conf_done;