X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fconfig.h;h=e35743a3050e5ff1c4c979be8b5b9d5d2c57fcbf;hb=b6dcf65b5e1b99f6c65454358c7610f3e9c8af2b;hp=2767f8263a827a67693ee18376d605e842077530;hpb=0fd98b61eb112fe397c67b7735627b7bbdd01e41;p=builder.git diff --git a/source/config.h b/source/config.h index 2767f82..e35743a 100644 --- a/source/config.h +++ b/source/config.h @@ -6,8 +6,9 @@ #include #include #include +#include "misc.h" -typedef std::map RawOptionMap; +class Package; /** Manages configuration for a package. A configuration may have an arbitary @@ -30,6 +31,7 @@ public: }; typedef std::map OptionMap; + Config(Package &); void add_option(const std::string &, const std::string &, const std::string &); const Option &get_option(const std::string &) const; const OptionMap &get_options() const { return options; } @@ -37,8 +39,8 @@ public: bool is_option(const std::string &) const; void select_last_profile(); void select_profile(const std::string &); - bool update(const RawOptionMap &); - void set_source(const Msp::Path::Path &s) { source=s; } + bool update(const StringMap &); + void finish(); void save() const; private: class Loader: public Msp::Parser::Loader @@ -50,10 +52,11 @@ private: void option(const std::string &, const std::string &); }; - - Msp::Path::Path source; + + Package &package; OptionMap options; Msp::Time::TimeStamp mtime; + bool freeze_mtime; bool set_option(const std::string &, const std::string &); void load();