aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/init.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-12-04 12:42:09 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-12-04 12:42:09 +0200
commitad770fe609d1958a64e7364861296ac5407611d9 (patch)
tree00636725cad5adebc03e6659b411c6123b8ebea9 /build2/cc/init.cxx
parent398134d2b4d362f857de5d2c94942e919d0bc534 (diff)
Improve diagnostics when c-family modules using different toolchains
We now also warn on toolchain pattern mismatch.
Diffstat (limited to 'build2/cc/init.cxx')
-rw-r--r--build2/cc/init.cxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/build2/cc/init.cxx b/build2/cc/init.cxx
index 90821ae..7a3e99e 100644
--- a/build2/cc/init.cxx
+++ b/build2/cc/init.cxx
@@ -96,6 +96,7 @@ namespace build2
// Hint variables (not overridable).
//
v.insert<string> ("config.cc.id");
+ v.insert<string> ("config.cc.hinter"); // Hinting module.
v.insert<string> ("config.cc.pattern");
v.insert<target_triplet> ("config.cc.target");
@@ -156,12 +157,14 @@ namespace build2
if (!cast_false<bool> (rs["cc.core.vars.loaded"]))
load_module (rs, rs, "cc.core.vars", loc);
- // config.cc.id
+ // config.cc.{id,hinter}
//
{
- // This value must be hinted.
+ // These values must be hinted.
//
rs.assign<string> ("cc.id") = cast<string> (hints["config.cc.id"]);
+ rs.assign<string> ("cc.hinter") =
+ cast<string> (hints["config.cc.hinter"]);
}
// config.cc.target
@@ -188,8 +191,8 @@ namespace build2
{
// This value could be hinted.
//
- if (auto l = hints["config.cc.pattern"])
- rs.assign<string> ("cc.pattern") = cast<string> (l);
+ rs.assign<string> ("cc.pattern") =
+ cast_empty<string> (hints["config.cc.pattern"]);
}
return true;