Expand description
C-compiler probing and detection.
This module will fill out the cc
and cxx
maps of Build
by looking for
C and C++ compilers for each target configured. A compiler is found through
a number of vectors (in order of precedence)
- Configuration via
target.$target.cc
inbootstrap.toml
. - Configuration via
target.$target.android-ndk
inbootstrap.toml
, if applicable - Special logic to probe on OpenBSD
- The
CC_$target
environment variable. - The
CC
environment variable. - “cc”
Some of this logic is implemented here, but much of it is farmed out to the
cc
crate itself, so we end up having the same fallbacks as there.
Similar logic is then used to find a C++ compiler, just some s/cc/c++/ is
used.
It is intended that after this module has run no C/C++ compiler will ever be probed for. Instead the compilers found here will be used for everything.
Enums§
- Language 🔒
- Representing the target programming language for a native compiler.
Functions§
- cc2ar 🔒
- Finds archiver tool for the given target if possible.
FIXME(onur-ozkan): This logic should be replaced by calling into the
cc
crate. - default_
compiler 🔒 - Determines the default compiler for a given target and language when not explicitly
configured in
bootstrap.toml
. - find
- Probes for C and C++ compilers and configures the corresponding entries in the
Build
structure. - find_
target - Probes and configures the C and C++ compilers for a single target.
- ndk_
compiler 🔒 - Constructs the path to the Android NDK compiler for the given target triple and language.
- new_
cc_ 🔒build - Creates and configures a new
cc::Build
instance for the given target.