diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index b992a11bc6483..47411172c1513 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -102,6 +102,7 @@ pub fn opts() -> Vec { optopt("w", "output-format", "the output type to write", "[html|json]"), optopt("o", "output", "where to place the output", "PATH"), + optopt("", "crate-name", "specify the name of this crate", "NAME"), optmulti("L", "library-path", "directory to add to crate search path", "DIR"), optmulti("", "cfg", "pass a --cfg to rustc", ""), @@ -321,7 +322,7 @@ fn rust_input(cratefile: &str, externs: core::Externs, matches: &getopts::Matche let cr = Path::new(cratefile); info!("starting to run rustc"); - let (krate, analysis) = std::task::try(proc() { + let (mut krate, analysis) = std::task::try(proc() { let cr = cr; core::run_core(libs.move_iter().collect(), cfgs, @@ -331,6 +332,11 @@ fn rust_input(cratefile: &str, externs: core::Externs, matches: &getopts::Matche info!("finished with rustc"); analysiskey.replace(Some(analysis)); + match matches.opt_str("crate-name") { + Some(name) => krate.name = name, + None => {} + } + // Process all of the crate attributes, extracting plugin metadata along // with the passes which we are supposed to run. match krate.module.get_ref().doc_list() {