]> git.tdb.fi Git - builder.git/blobdiff - source/config.h
Variables in Build files weren't such a hot idea. KISS.
[builder.git] / source / config.h
index d7f7351f00d4420eb324cb492abbf388b2732645..9043208364b554e518feb8a74ff1a18e37df730e 100644 (file)
@@ -29,13 +29,11 @@ public:
        };
 
        typedef std::map<std::string, Option> OptionMap;
+       typedef std::map<std::string, std::string> InputOptions;
 
 private:
-       class Loader: public Msp::DataFile::Loader
+       class Loader: public Msp::DataFile::ObjectLoader<Config>
        {
-       private:
-               Config &conf;
-
        public:
                Loader(Config &);
        private:
@@ -44,8 +42,9 @@ private:
 
        SourcePackage &package;
        OptionMap options;
+       InputOptions pending_options;
        Msp::Time::TimeStamp mtime;
-       bool freeze_mtime;
+       bool changed;
 
 public:
        Config(SourcePackage &);
@@ -62,25 +61,13 @@ public:
        /** Checks whether an option exists. */
        bool is_option(const std::string &) const;
 
-       /** Selects the last profile used.  If the profile cache file is not
-       present, the default profile is assumed. */
-       void select_last_profile();
-
-       /** Selects a profile.  The profile cache file is updated, unless doing a
-       dry run. */
-       void select_profile(const std::string &);
-
        /** Processes options from the given raw option map.  Nonexistent options
        are ignored.  If any options were changed, the mtime of the configuration is
        updated to the current time.  Return value indicates whether any options
        were changed. */
        bool update(const StringMap &);
 
-       /** Expands any variable references in options. */
-       void finish();
-
        void save() const;
-private:
        bool set_option(const std::string &, const std::string &);
        void load();
 };