about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-05-13 20:29:19 +0200
committerGitHub <noreply@github.com>2024-05-13 20:29:19 +0200
commited2c2c06e6f7d3c26634a844f617c3c983f1fb8b (patch)
tree3c3cb9b84b8373fea1b1d92b3df322b5c61ba1c7
parent472391dbf63ae49f459fc2f6c6bd7c060dfda9df (diff)
parentb515de83af4fd73255de0a1ebb48db5849f8e01f (diff)
downloadrust-ed2c2c06e6f7d3c26634a844f617c3c983f1fb8b.tar.gz
rust-ed2c2c06e6f7d3c26634a844f617c3c983f1fb8b.zip
Rollup merge of #125071 - GuillaumeGomez:migrate-rustdoc-target-spec-json-path, r=jieyouxu
Migrate rustdoc target spec json path

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
-rw-r--r--src/tools/run-make-support/src/rustdoc.rs14
-rw-r--r--src/tools/tidy/src/allowed_run_make_makefiles.txt1
-rw-r--r--tests/run-make/rustdoc-target-spec-json-path/Makefile9
-rw-r--r--tests/run-make/rustdoc-target-spec-json-path/rmake.rs14
4 files changed, 28 insertions, 10 deletions
diff --git a/src/tools/run-make-support/src/rustdoc.rs b/src/tools/run-make-support/src/rustdoc.rs
index 75ca1fc2974..c4f4e9f9bd2 100644
--- a/src/tools/run-make-support/src/rustdoc.rs
+++ b/src/tools/run-make-support/src/rustdoc.rs
@@ -123,6 +123,12 @@ impl Rustdoc {
         self
     }
 
+    /// Specify the target triple, or a path to a custom target json spec file.
+    pub fn target(&mut self, target: &str) -> &mut Self {
+        self.cmd.arg(format!("--target={target}"));
+        self
+    }
+
     /// Specify the crate type.
     pub fn crate_type(&mut self, crate_type: &str) -> &mut Self {
         self.cmd.arg("--crate-type");
@@ -137,6 +143,14 @@ impl Rustdoc {
         self
     }
 
+    /// Add a directory to the library search path. It corresponds to the `-L`
+    /// rustdoc option.
+    pub fn library_search_path<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
+        self.cmd.arg("-L");
+        self.cmd.arg(path.as_ref());
+        self
+    }
+
     #[track_caller]
     pub fn run_fail_assert_exit_code(&mut self, code: i32) -> Output {
         let caller_location = std::panic::Location::caller();
diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt
index 02a94457385..18a7cb168b3 100644
--- a/src/tools/tidy/src/allowed_run_make_makefiles.txt
+++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt
@@ -248,7 +248,6 @@ run-make/rustdoc-scrape-examples-multiple/Makefile
 run-make/rustdoc-scrape-examples-remap/Makefile
 run-make/rustdoc-scrape-examples-test/Makefile
 run-make/rustdoc-scrape-examples-whitespace/Makefile
-run-make/rustdoc-target-spec-json-path/Makefile
 run-make/rustdoc-themes/Makefile
 run-make/rustdoc-verify-output-files/Makefile
 run-make/rustdoc-with-out-dir-option/Makefile
diff --git a/tests/run-make/rustdoc-target-spec-json-path/Makefile b/tests/run-make/rustdoc-target-spec-json-path/Makefile
deleted file mode 100644
index 6d0bc4186f2..00000000000
--- a/tests/run-make/rustdoc-target-spec-json-path/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-include ../tools.mk
-
-# Test that rustdoc will properly canonicalize the target spec json path just like rustc
-
-OUTPUT_DIR := "$(TMPDIR)/rustdoc-target-spec-json-path"
-
-all:
-	$(RUSTC) --crate-type lib dummy_core.rs --target target.json
-	$(RUSTDOC) -o $(OUTPUT_DIR) -L $(TMPDIR) my_crate.rs --target target.json
diff --git a/tests/run-make/rustdoc-target-spec-json-path/rmake.rs b/tests/run-make/rustdoc-target-spec-json-path/rmake.rs
new file mode 100644
index 00000000000..66530a4f08e
--- /dev/null
+++ b/tests/run-make/rustdoc-target-spec-json-path/rmake.rs
@@ -0,0 +1,14 @@
+// Test that rustdoc will properly canonicalize the target spec json path just like rustc.
+
+use run_make_support::{rustc, rustdoc, tmp_dir};
+
+fn main() {
+    let out_dir = tmp_dir().join("rustdoc-target-spec-json-path");
+    rustc().crate_type("lib").input("dummy_core.rs").target("target.json").run();
+    rustdoc()
+        .input("my_crate.rs")
+        .output(out_dir)
+        .library_search_path(tmp_dir())
+        .target("target.json")
+        .run();
+}