diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2018-01-04 15:35:57 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2018-01-05 15:10:01 +0200 |
commit | 76de594667b370094f5da5c0871c155d788d135e (patch) | |
tree | 610d67fc2350a4fdeaa2de7b6583f5da9067bc24 /build2/cc/guess.hxx | |
parent | d6427addaf7de41d401dd2a871b4789022e5f7cf (diff) |
Initial support for c/cxx runtime/stdlib detection
Diffstat (limited to 'build2/cc/guess.hxx')
-rw-r--r-- | build2/cc/guess.hxx | 34 |
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 |