From 2c33568a77cf308c91129e0f0a4d4d53f1689ebb Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 8 Nov 2019 07:29:08 +0000 Subject: [PATCH] rustdoc: Support --extern-private but treat as --extern This makes `rustdoc` support `--extern-private` but treats it the same as `--extern` which is useful for making the CLI more similar to `rustc` to ease test suite integration. Signed-off-by: Daniel Silverstone --- src/librustdoc/config.rs | 4 +++- src/librustdoc/lib.rs | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index 0b8d4d6c302f..fc043cae5415 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -608,10 +608,12 @@ fn parse_extern_html_roots( /// Extracts `--extern CRATE=PATH` arguments from `matches` and /// returns a map mapping crate names to their paths or else an /// error message. +/// Also handles `--extern-private` which for the purposes of rustdoc +/// we can treat as `--extern` // FIXME(eddyb) This shouldn't be duplicated with `rustc::session`. fn parse_externs(matches: &getopts::Matches) -> Result { let mut externs: BTreeMap<_, ExternEntry> = BTreeMap::new(); - for arg in &matches.opt_strs("extern") { + for arg in matches.opt_strs("extern").iter().chain(matches.opt_strs("extern-private").iter()) { let mut parts = arg.splitn(2, '='); let name = parts.next().ok_or("--extern value must not be empty".to_string())?; let location = parts.next().map(|s| s.to_string()); diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 8cd32a3d1b50..3571104a3d90 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -142,6 +142,10 @@ fn opts() -> Vec { stable("extern", |o| { o.optmulti("", "extern", "pass an --extern to rustc", "NAME=PATH") }), + stable("extern-private", |o| { + o.optmulti("", "extern-private", + "pass an --extern to rustc (compatibility only)", "NAME=PATH") + }), unstable("extern-html-root-url", |o| { o.optmulti("", "extern-html-root-url", "base URL to use for dependencies", "NAME=URL")