aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/guess.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-01-04 15:35:57 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-01-05 15:10:01 +0200
commit76de594667b370094f5da5c0871c155d788d135e (patch)
tree610d67fc2350a4fdeaa2de7b6583f5da9067bc24 /build2/cc/guess.hxx
parentd6427addaf7de41d401dd2a871b4789022e5f7cf (diff)
Initial support for c/cxx runtime/stdlib detection
Diffstat (limited to 'build2/cc/guess.hxx')
-rw-r--r--build2/cc/guess.hxx34
1 files changed, 34 insertions, 0 deletions
diff --git a/build2/cc/guess.hxx b/build2/cc/guess.hxx
index 86c9793..9d87cb4 100644
--- a/build2/cc/guess.hxx
+++ b/build2/cc/guess.hxx
@@ -151,8 +151,42 @@ namespace build2
string signature;
string checksum;
string target;
+ string original_target; // As reported by the compiler.
string pattern;
string bin_pattern;
+
+ // Compiler runtime, C standard library, and language (e.g., C++)
+ // standard library.
+ //
+ // The runtime is the low-level compiler runtime library and its name is
+ // the library/project name. Current values are (but can also be some
+ // custom name specified with Clang's --rtlib):
+ //
+ // libgcc
+ // compiler-rt (clang)
+ // msvc
+ //
+ // The C standard library is normally the library/project name (e.g,
+ // glibc, musl, newlib, klibc, etc) but if there is none, then we
+ // fallback to the vendor name (e.g., freebsd). Proposed values are (any
+ // BSD-derived libc should end with the *bsd suffix):
+ //
+ // glibc
+ // msvc (msvcrt.lib/msvcrNNN.dll)
+ // freebsd
+ // applebsd
+ // cygwin? (apparently newlib)
+ //
+ // The C++ standard library is normally the library/project name.
+ // Current values are:
+ //
+ // libstdc++
+ // libc++
+ // msvcp (msvcprt.lib/msvcpNNN.dll)
+ //
+ string runtime;
+ string c_stdlib;
+ string x_stdlib;
};
// In a sense this is analagous to the language standard which we handle