diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-07 15:29:59 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-11 14:03:09 +0300 |
commit | b740417add06a6df0dff65b60fbd92a8c8d95aab (patch) | |
tree | e07e9a6e7c2f39164ff8bba7b6ee933679bf99aa /tests/buildtab/driver.cxx | |
parent | 1d977345398584ff774990cf436289ddd64d2b42 (diff) |
Add support for build configuration class inheritance
Diffstat (limited to 'tests/buildtab/driver.cxx')
-rw-r--r-- | tests/buildtab/driver.cxx | 22 |
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; |