Rollup merge of #36663 - brson:build-plan, r=alexcrichton

rustbuild: Print out all build steps when --verbose

These helped me debug some problems with the asmjs target. It's just vomiting debug representations, so not the prettiest stuff.

r? @alexcrichton
This commit is contained in:
Jonathan Turner 2016-09-26 17:29:48 -07:00 committed by GitHub
commit 96577e4871
2 changed files with 11 additions and 1 deletions

View File

@ -243,7 +243,14 @@ impl Build {
// Almost all of these are simple one-liners that shell out to the // Almost all of these are simple one-liners that shell out to the
// corresponding functionality in the extra modules, where more // corresponding functionality in the extra modules, where more
// documentation can be found. // documentation can be found.
for target in step::all(self) { let steps = step::all(self);
self.verbose("bootstrap build plan:");
for step in &steps {
self.verbose(&format!("{:?}", step));
}
for target in steps {
let doc_out = self.out.join(&target.target).join("doc"); let doc_out = self.out.join(&target.target).join("doc");
match target.src { match target.src {
Llvm { _dummy } => { Llvm { _dummy } => {

View File

@ -171,6 +171,8 @@ targets!(define_source);
/// into a topologically sorted list which when executed left-to-right will /// into a topologically sorted list which when executed left-to-right will
/// correctly sequence the entire build. /// correctly sequence the entire build.
pub fn all(build: &Build) -> Vec<Step> { pub fn all(build: &Build) -> Vec<Step> {
build.verbose("inferred build steps:");
let mut ret = Vec::new(); let mut ret = Vec::new();
let mut all = HashSet::new(); let mut all = HashSet::new();
for target in top_level(build) { for target in top_level(build) {
@ -184,6 +186,7 @@ pub fn all(build: &Build) -> Vec<Step> {
set: &mut HashSet<Step<'a>>) { set: &mut HashSet<Step<'a>>) {
if set.insert(target.clone()) { if set.insert(target.clone()) {
for dep in target.deps(build) { for dep in target.deps(build) {
build.verbose(&format!("{:?}\n -> {:?}", target, dep));
fill(build, &dep, ret, set); fill(build, &dep, ret, set);
} }
ret.push(target.clone()); ret.push(target.clone());