diff options
-rw-r--r-- | libbbot/build-config.cxx | 6 | ||||
-rw-r--r-- | libbbot/build-config.hxx | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/libbbot/build-config.cxx b/libbbot/build-config.cxx index 2e6dfbc..7d174c4 100644 --- a/libbbot/build-config.cxx +++ b/libbbot/build-config.cxx @@ -30,6 +30,9 @@ namespace bbot build_configs r; tab_parser parser (is, name); + r.classes.push_back ("all"); + r.classes.push_back ("default"); + tab_fields tl; while (!(tl = parser.next ()).empty ()) { @@ -161,6 +164,9 @@ namespace bbot j = r.class_inheritance_map.find (base); } + + if (c != "all" && c != "default") + r.classes.push_back (c); } else if (j->second != base && !base.empty ()) throw invalid_argument ("'" + c + "' new base '" + base + diff --git a/libbbot/build-config.hxx b/libbbot/build-config.hxx index 9396782..b5c5ade 100644 --- a/libbbot/build-config.hxx +++ b/libbbot/build-config.hxx @@ -37,6 +37,11 @@ namespace bbot struct build_configs: std::vector<build_config> { + // List of all configuration class names. Starts with the all and default + // classes. The rest follows in the same order as in the buildtab. + // + std::vector<std::string> classes; + // A map of derived class names to their bases. // std::map<std::string, std::string> class_inheritance_map; |