summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/anki/files/23.12.1/ninja-rules-for-cargo.patch')
-rw-r--r--app-misc/anki/files/23.12.1/ninja-rules-for-cargo.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/app-misc/anki/files/23.12.1/ninja-rules-for-cargo.patch b/app-misc/anki/files/23.12.1/ninja-rules-for-cargo.patch
new file mode 100644
index 000000000000..cf9356bbc24c
--- /dev/null
+++ b/app-misc/anki/files/23.12.1/ninja-rules-for-cargo.patch
@@ -0,0 +1,40 @@
+Fix the output path for Rust binaries in the Ninja file to match
+Cargo's target directory when CARGO_BUILD_TARGET is set. This prevents
+file-not-found errors for some build steps.
+
+Provide the cargo-nextest binary ourselves to prevent network access.
+Set test runner options in the ebuild.
+
+From: Lucio Sauer <watermanpaint@posteo.net>
+--- a/build/ninja_gen/src/cargo.rs
++++ b/build/ninja_gen/src/cargo.rs
+@@ -61,6 +61,9 @@ impl RustOutput<'_> {
+ let mut path: Utf8PathBuf = rust_base.into();
+ if let Some(target) = target {
+ path = path.join(target);
++ } else {
++ let triple = std::env::var("CARGO_BUILD_TARGET").unwrap_or_default();
++ path = path.join(triple);
+ }
+ path = path.join(profile_output_dir(build_profile)).join(filename);
+ path.to_string()
+@@ -152,19 +155,11 @@ impl BuildAction for CargoTest {
+
+ fn files(&mut self, build: &mut impl FilesHandle) {
+ build.add_inputs("", &self.inputs);
+- build.add_inputs("", inputs![":cargo-nextest"]);
+ build.add_env_var("ANKI_TEST_MODE", "1");
+ build.add_output_stamp("tests/cargo_test");
+ }
+
+ fn on_first_instance(&self, build: &mut Build) -> Result<()> {
+- build.add_action(
+- "cargo-nextest",
+- CargoInstall {
+- binary_name: "cargo-nextest",
+- args: "cargo-nextest --version 0.9.57 --locked",
+- },
+- )?;
+ setup_flags(build)
+ }
+ }