cargo::core::compiler::fingerprint

Function translate_dep_info

source
pub fn translate_dep_info(
    rustc_dep_info: &Path,
    cargo_dep_info: &Path,
    rustc_cwd: &Path,
    pkg_root: &Path,
    target_root: &Path,
    rustc_cmd: &ProcessBuilder,
    allow_package: bool,
) -> CargoResult<()>
Expand description

Parses the dep-info file coming out of rustc into a Cargo-specific format.

This function will parse rustc_dep_info as a makefile-style dep info to learn about the all files which a crate depends on. This is then re-serialized into the cargo_dep_info path in a Cargo-specific format.

The pkg_root argument here is the absolute path to the directory containing Cargo.toml for this crate that was compiled. The paths listed in the rustc dep-info file may or may not be absolute but we’ll want to consider all of them relative to the root specified.

The rustc_cwd argument is the absolute path to the cwd of the compiler when it was invoked.

If the allow_package argument is true, then package-relative paths are included. If it is false, then package-relative paths are skipped and ignored (typically used for registry or git dependencies where we assume the source never changes, and we don’t want the cost of running stat on all those files). See the module-level docs for the note about -Zbinary-dep-depinfo for more details on why this is done.

The serialized Cargo format will contain a list of files, all of which are relative if they’re under root. or absolute if they’re elsewhere.