X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fconfig.h;h=3257794671530e119edcc9de67a9f78633d2d0c6;hb=c7df14c38a87ceca13df47fa700d3f9fa250be91;hp=92f558577d0c167454f3e05df0b112a0d1d57270;hpb=c63d5e1c1a1b3c095a94d1e21a302aaa694dd656;p=builder.git diff --git a/source/config.h b/source/config.h index 92f5585..3257794 100644 --- a/source/config.h +++ b/source/config.h @@ -6,7 +6,7 @@ #include #include #include -#include "misc.h" +#include "feature.h" class SourcePackage; @@ -18,14 +18,11 @@ class Config { public: /** A single configuration option. */ - struct Option + struct Option: public Feature { - std::string name; - std::string default_value; - std::string description; std::string value; - Option(const std::string &, const std::string &, const std::string &); + Option(const Feature &); }; typedef std::map OptionMap; @@ -44,13 +41,13 @@ private: OptionMap options; InputOptions pending_options; Msp::Time::TimeStamp mtime; - bool changed; + mutable bool changed; public: Config(SourcePackage &); - /** Adds a configuration option with name, default value and description. */ - void add_option(const std::string &, const std::string &, const std::string &); + /** Adds a configuration option based on a feature. */ + const Option &add_option(const Feature &); bool set_option(const std::string &, const std::string &);