aboutsummaryrefslogtreecommitdiff
path: root/tests/buildtab/driver.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-12-07 15:29:59 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-12-11 14:03:09 +0300
commitb740417add06a6df0dff65b60fbd92a8c8d95aab (patch)
treee07e9a6e7c2f39164ff8bba7b6ee933679bf99aa /tests/buildtab/driver.cxx
parent1d977345398584ff774990cf436289ddd64d2b42 (diff)
Add support for build configuration class inheritance
Diffstat (limited to 'tests/buildtab/driver.cxx')
-rw-r--r--tests/buildtab/driver.cxx22
1 files changed, 14 insertions, 8 deletions
diff --git a/tests/buildtab/driver.cxx b/tests/buildtab/driver.cxx
index 5242fe4..604aaa9 100644
--- a/tests/buildtab/driver.cxx
+++ b/tests/buildtab/driver.cxx
@@ -26,26 +26,32 @@ try
cin.exceptions (ios::failbit | ios::badbit);
cout.exceptions (ios::failbit | ios::badbit);
- for (const build_config& c: parse_buildtab (cin, "cin"))
+ const build_configs& configs (parse_buildtab (cin, "cin"));
+
+ for (const build_config& c: configs)
{
cout << c.machine_pattern << ' ' << c.name << ' ' << c.target;
string classes;
- for (const string& cs: c.classes)
+ for (const string& cls: c.classes)
{
if (!classes.empty ())
classes += ' ';
- classes += cs;
+ classes += cls;
+
+ auto i (configs.class_inheritance_map.find (cls));
+ if (i != configs.class_inheritance_map.end ())
+ classes += ':' + i->second;
}
- if (c.classes.size () > 1)
- cout << " \"" << classes << '"';
- else
+ if (c.classes.size () == 1)
cout << ' ' << classes;
+ else
+ cout << " \"" << classes << '"';
- for (const string& v: c.vars)
- cout << ' ' << v;
+ for (const string& a: c.args)
+ cout << ' ' << a;
for (const string& r: c.warning_regexes)
cout << " ~" << r;