about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2019-11-08 07:29:08 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-11-08 07:31:24 +0000
commit2c33568a77cf308c91129e0f0a4d4d53f1689ebb (patch)
treefd091aab673f2489ae3a374b0d631054d39ca7c4
parent3f0e16473de5ec010f44290a8c3ea1d90e0ad7a2 (diff)
downloadrust-2c33568a77cf308c91129e0f0a4d4d53f1689ebb.tar.gz
rust-2c33568a77cf308c91129e0f0a4d4d53f1689ebb.zip
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 <dsilvers@digital-scurf.org>
-rw-r--r--src/librustdoc/config.rs4
-rw-r--r--src/librustdoc/lib.rs4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index 0b8d4d6c302..fc043cae541 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<Externs, String> {
     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 8cd32a3d1b5..3571104a3d9 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -142,6 +142,10 @@ fn opts() -> Vec<RustcOptGroup> {
         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")