diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2019-06-19 08:38:56 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2019-06-19 08:38:56 +0200 |
commit | cde3ea58802c700ed8fd3b11e46eb973a7018a12 (patch) | |
tree | 03038c64f62b30b56334e7988e6add370520c895 /build2/cc | |
parent | a5b95ad0d6ee18f2deb9e98e3058efd12bf0f492 (diff) |
Improve diagnostics
Diffstat (limited to 'build2/cc')
-rw-r--r-- | build2/cc/common.cxx | 8 | ||||
-rw-r--r-- | build2/cc/compile-rule.cxx | 10 | ||||
-rw-r--r-- | build2/cc/init.cxx | 10 | ||||
-rw-r--r-- | build2/cc/module.cxx | 2 |
4 files changed, 17 insertions, 13 deletions
diff --git a/build2/cc/common.cxx b/build2/cc/common.cxx index 1bfb354..b4b0a6d 100644 --- a/build2/cc/common.cxx +++ b/build2/cc/common.cxx @@ -971,7 +971,7 @@ namespace build2 // Extract user-supplied search paths (i.e., -L, /LIBPATH). // - auto extract = [&r, this] (const value& val, const variable& what) + auto extract = [&bs, &r, this] (const value& val, const variable& var) { const auto& v (cast<strings> (val)); @@ -1012,8 +1012,10 @@ namespace build2 } catch (const invalid_path& e) { - fail << "invalid path '" << e.path << "' in option '" << o - << "' in variable " << what; + fail << "invalid directory '" << e.path << "'" + << " in option '" << o << "'" + << " in variable " << var + << " for scope " << bs; } // Ignore relative paths. Or maybe we should warn? diff --git a/build2/cc/compile-rule.cxx b/build2/cc/compile-rule.cxx index 2edb8cc..1ea3800 100644 --- a/build2/cc/compile-rule.cxx +++ b/build2/cc/compile-rule.cxx @@ -1293,16 +1293,18 @@ namespace build2 } catch (const invalid_path& e) { - fail << "invalid -I directory " << e.path - << " in variable " << var.name + fail << "invalid directory '" << e.path << "'" + << " in option '" << o << "'" + << " in variable " << var << " for target " << t; } l6 ([&]{trace << "-I " << d;}); if (d.relative ()) - fail << "relative -I directory " << d - << " in variable " << var.name + fail << "relative directory " << d + << " in option '" << o << "'" + << " in variable " << var << " for target " << t; // If the directory is not normalized, we can complain or normalize diff --git a/build2/cc/init.cxx b/build2/cc/init.cxx index d9c1371..4223d84 100644 --- a/build2/cc/init.cxx +++ b/build2/cc/init.cxx @@ -67,7 +67,7 @@ namespace build2 const variable_map&) { tracer trace ("cc::core_vars_init"); - l5 ([&]{trace << "for " << rs.out_path ();}); + l5 ([&]{trace << "for " << rs;}); assert (first); @@ -160,7 +160,7 @@ namespace build2 const variable_map& h) { tracer trace ("cc::core_guess_init"); - l5 ([&]{trace << "for " << rs.out_path ();}); + l5 ([&]{trace << "for " << rs;}); assert (first); @@ -225,7 +225,7 @@ namespace build2 const variable_map& hints) { tracer trace ("cc::core_config_init"); - l5 ([&]{trace << "for " << rs.out_path ();}); + l5 ([&]{trace << "for " << rs;}); assert (first); @@ -339,7 +339,7 @@ namespace build2 const variable_map& hints) { tracer trace ("cc::core_init"); - l5 ([&]{trace << "for " << rs.out_path ();}); + l5 ([&]{trace << "for " << rs;}); assert (first); @@ -397,7 +397,7 @@ namespace build2 const location& loc, const variable_map& hints) { - l5 ([&]{trace << "for " << bs.out_path ();}); + l5 ([&]{trace << "for " << bs;}); // We only support root loading (which means there can only be one). // diff --git a/build2/cc/module.cxx b/build2/cc/module.cxx index 436688a..aa775ae 100644 --- a/build2/cc/module.cxx +++ b/build2/cc/module.cxx @@ -423,7 +423,7 @@ namespace build2 diag_record dr (text); { - dr << x << ' ' << project (rs) << '@' << rs.out_path () << '\n' + dr << x << ' ' << project (rs) << '@' << rs << '\n' << " " << left << setw (11) << x << ci.path << '\n' << " id " << ci.id << '\n' << " version " << ci.version.string << '\n' |