# Function cargo::core::compiler::fingerprint::prepare_target

source ·

    pub fn prepare_target(
        build_runner: &mut BuildRunner<'_, '_>,
        unit: &Unit,
        force: bool
    ) -> CargoResult<Job>

Expand description

Determines if a `Unit` is up-to-date, and if not prepares necessary work to update the persisted fingerprint.

This function will inspect `Unit`, calculate a fingerprint for it, and then return an appropriate `Job` to run. The returned `Job` will be a noop if `unit` is considered “fresh”, or if it was previously built and cached. Otherwise the `Job` returned will write out the true fingerprint to the filesystem, to be executed after the unit’s work has completed.

The `force` flag is a way to force the `Job` to be “dirty”, or always update the fingerprint. Beware using this flag because it does not transitively propagate throughout the dependency graph, it only forces this one unit which is very unlikely to be what you want unless you’re exclusively talking about top-level units.