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§
- Compiler
Wrapper Identity - Identity captured from a wrapper executable’s
--versionoutput. Populated bycabin-toolchain::detect_compiler_wrapperand surfaced through metadata. - Compiler
Wrapper Kind - Executable-family label reported in metadata and fingerprints.
- Compiler
Wrapper Summary - Lightweight, non-machine-specific summary of a resolved wrapper.
Carried inside
crate::ToolchainSummaryso the build configuration fingerprint reflects “which wrapper did this build use” without pinning the local absolute path. - Resolved
Compiler Wrapper - Fully resolved compiler wrapper, ready to prefix C and C++ compile commands.
Enums§
- Compiler
Wrapper Parse Error - Errors produced by
CompilerWrapperRequest::parse. - Compiler
Wrapper Request - What the user (or a manifest layer) asked for, structurally.
- Compiler
Wrapper Source - Where a resolved wrapper selection ultimately came from.
Recorded alongside the resolved wrapper so
cabin metadatacan show the precedence without re-deriving it.