Skip to main content

Module compiler_wrapper

Module compiler_wrapper 

Source
Expand description

Typed compiler-wrapper model.

Cabin can prefix C and C++ compile drivers with an executable such as ccache or sccache. The wrapper is separate from the compiler: it applies only to compile commands (never link or archive) and is selected through the same precedence ladder as the rest of the toolchain.

This module owns data only: the typed enums, the manifest declaration types, the resolved value, and the JSON helpers that cabin metadata consumes. PATH lookup, env reading, and subprocess version probing live in cabin-toolchain. CLI flag handling lives in cabin. Manifest parsing lives in cabin-manifest.

Structs§

CompilerWrapperIdentity
Identity captured from a wrapper executable’s --version output. Populated by cabin-toolchain::detect_compiler_wrapper and surfaced through metadata.
CompilerWrapperKind
Executable-family label reported in metadata and fingerprints.
CompilerWrapperSummary
Lightweight, non-machine-specific summary of a resolved wrapper. Carried inside crate::ToolchainSummary so the build configuration fingerprint reflects “which wrapper did this build use” without pinning the local absolute path.
ResolvedCompilerWrapper
Fully resolved compiler wrapper, ready to prefix C and C++ compile commands.

Enums§

CompilerWrapperParseError
Errors produced by CompilerWrapperRequest::parse.
CompilerWrapperRequest
What the user (or a manifest layer) asked for, structurally.
CompilerWrapperSource
Where a resolved wrapper selection ultimately came from. Recorded alongside the resolved wrapper so cabin metadata can show the precedence without re-deriving it.