install::Src,
install::Rustc
),
- Kind::Run => describe!(run::ExpandYamlAnchors, run::BuildManifest),
+ Kind::Run => describe!(run::ExpandYamlAnchors, run::BuildManifest, run::BumpStage0),
}
}
pub fn new(build: &Build) -> Builder<'_> {
let (kind, paths) = match build.config.cmd {
Subcommand::Build { ref paths } => (Kind::Build, &paths[..]),
- Subcommand::Check { ref paths, all_targets: _ } => (Kind::Check, &paths[..]),
+ Subcommand::Check { ref paths } => (Kind::Check, &paths[..]),
Subcommand::Clippy { ref paths, .. } => (Kind::Clippy, &paths[..]),
Subcommand::Fix { ref paths } => (Kind::Fix, &paths[..]),
Subcommand::Doc { ref paths, .. } => (Kind::Doc, &paths[..]),
// requirement, but the `-L` library path is not propagated across
// separate Cargo projects. We can add LLVM's library path to the
// platform-specific environment variable as a workaround.
- if mode == Mode::ToolRustc {
+ if mode == Mode::ToolRustc || mode == Mode::Codegen {
if let Some(llvm_config) = self.llvm_config(target) {
let llvm_libdir = output(Command::new(&llvm_config).arg("--libdir"));
add_link_lib_path(vec![llvm_libdir.trim().into()], &mut cargo);
// Only execute if it's supposed to run as default
if desc.default && should_run.is_really_default() { self.ensure(step) } else { None }
}
+
+ /// Checks if any of the "should_run" paths is in the `Builder` paths.
+ pub(crate) fn was_invoked_explicitly<S: Step>(&'a self) -> bool {
+ let desc = StepDescription::from::<S>();
+ let should_run = (desc.should_run)(ShouldRun::new(self));
+
+ for path in &self.paths {
+ if should_run.paths.iter().any(|s| s.has(path))
+ && !desc.is_excluded(self, &PathSet::Suite(path.clone()))
+ {
+ return true;
+ }
+ }
+
+ false
+ }
}
#[cfg(test)]