aboutsummaryrefslogtreecommitdiff
path: root/build2/bin
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-10-26 19:07:42 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-10-26 19:07:42 +0200
commit296575ba025ded840304c1e3b6365a6b6ee7ea48 (patch)
treeda8ecb3dfc8178b7ddf00c51a21fbe8d375cd435 /build2/bin
parent1dba8a7b279c857e9c13cbd6496849f5501e9944 (diff)
Add config.{c,cxx}.{id,version,target} configuration variables
These variables allow overriding guessed compiler id/version/target, for example, in case of mis-guesses or when working with compilers that don't report their base (e.g., GCC, Clang) with -v/--version (common in the embedded space).
Diffstat (limited to 'build2/bin')
-rw-r--r--build2/bin/guess.cxx18
-rw-r--r--build2/bin/init.cxx2
2 files changed, 10 insertions, 10 deletions
diff --git a/build2/bin/guess.cxx b/build2/bin/guess.cxx
index 78a1940..61c9f20 100644
--- a/build2/bin/guess.cxx
+++ b/build2/bin/guess.cxx
@@ -74,7 +74,7 @@ namespace build2
// that.
//
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// Normally GNU binutils ar --version output has a line that starts
// with "GNU ar" and ends with the version. For example:
@@ -155,7 +155,7 @@ namespace build2
//
if (arr.empty ())
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
return l.find (" ar ") != string::npos
? guess_result ("generic", move (l), semantic_version ())
@@ -185,7 +185,7 @@ namespace build2
// Binutils, LLVM, and FreeBSD.
//
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// The same story as with ar: normally starts with "GNU ranlib "
// but can vary.
@@ -218,7 +218,7 @@ namespace build2
//
if (rlr.empty ())
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
return l.find ("ranlib") != string::npos
? guess_result ("generic", move (l), semantic_version ())
@@ -285,7 +285,7 @@ namespace build2
// Version extraction is a @@ TODO.
//
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// Microsoft link.exe output starts with "Microsoft (R) ".
//
@@ -321,7 +321,7 @@ namespace build2
//
if (r.empty ())
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// New ld64 has "PROJECT:ld64" in the first line (output to stderr),
// for example:
@@ -352,7 +352,7 @@ namespace build2
//
if (r.empty ())
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// Unlike other LLVM tools (e.g., ar), the lld's version is printed
// (to stderr) as:
@@ -404,7 +404,7 @@ namespace build2
//
// Version extraction is a @@ TODO.
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
// Binutils windres --version output has a line that starts with
// "GNU windres " but search for "GNU ", similar to other tools.
@@ -430,7 +430,7 @@ namespace build2
//
if (r.empty ())
{
- auto f = [] (string& l) -> guess_result
+ auto f = [] (string& l, bool) -> guess_result
{
if (l.compare (0, 14, "Microsoft (R) ") == 0)
return guess_result ("msvc", move (l), semantic_version ());
diff --git a/build2/bin/init.cxx b/build2/bin/init.cxx
index 9112773..6b3aeb3 100644
--- a/build2/bin/init.cxx
+++ b/build2/bin/init.cxx
@@ -262,7 +262,7 @@ namespace build2
s = run<string> (3,
ops.config_sub (),
s.c_str (),
- [] (string& l) {return move (l);});
+ [] (string& l, bool) {return move (l);});
l5 ([&]{trace << "config.sub target: '" << s << "'";});
}