#[non_exhaustive]pub enum BuildMessageKind {
GeneralWarning,
StderrForwarding,
#[non_exhaustive] CommandFailed {
is_detection_cmd: bool,
exit_status: ExitStatus,
},
CompileCommand,
}Expand description
What a BuildMessage is about.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
GeneralWarning
Every warning cc prints itself, such as a failed compiler family
detection or a setting that doesn’t apply to the compiler. A failed
command’s error, which parallel also prints as a warning, arrives as
CommandFailed instead.
extra is ().
StderrForwarding
Each line of stderr that cc forwards from a command it runs, such as the compiler or the archiver. Stderr that cc hides, such as that of flag support probes, isn’t passed.
A trailing \r is removed, and text that isn’t UTF-8 is converted
lossily. extra is the Command.
#[non_exhaustive]CommandFailed
A command cc runs exits unsuccessfully.
The text is the error cc returns, and extra is the
Command. Checks whose failure cc expects,
such as flag support probes and the ar call with D that cc retries
without it, are not reported. Neither are commands that can’t be
started, since they have no exit status.
Fields
This variant is marked as non-exhaustive
is_detection_cmd: booltrue for detection commands that don’t break the build: cc
recovers when they fail, so the build can still succeed. Examples
are the compiler’s --print-search-dirs query,
xcrun --show-sdk-version and compiler family detection. cc hides
the output of family detection unless
cargo_debug is on, so its failures
are only reported then, apart from the --version check it runs on
clang. A failed family detection still arrives as a
GeneralWarning.
false for commands whose failure fails the build, such as the
compiler, the archiver or xcrun --show-sdk-path.
exit_status: ExitStatusThe status the command exited with.
CompileCommand
cc is about to run the command that compiles one source file into an
object file, during Build::compile or
Build::compile_intermediates.
Each object file gets one message, also with the parallel feature.
The text is the command line, and extra is the
CompileCommand,
which a
CompileCommandCollector
collects to write a compile_commands.json.