From 470eced5567500dcce9020008f73ff4b397af46c Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 24 Dec 2018 23:13:34 +0300 Subject: Add build_config::classes member --- libbbot/build-config.cxx | 6 ++++++ libbbot/build-config.hxx | 5 +++++ 2 files changed, 11 insertions(+) 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 { + // 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 classes; + // A map of derived class names to their bases. // std::map class_inheritance_map; -- cgit v1.1