Skip to content

Commit 7c0095a

Browse files
Fix: Ensure Rust build aborts on error
1 parent ee1a5d9 commit 7c0095a

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

build.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ fn main() {
4040
.flag_if_supported("/W1"); // Reduce warnings verbosity
4141
}
4242

43-
if build.try_compile("usearch").is_err() {
43+
let mut result = build.try_compile("usearch");
44+
if result.is_err() {
4445
print!("cargo:warning=Failed to compile with all SIMD backends...");
4546

4647
let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default();
@@ -54,20 +55,23 @@ fn main() {
5455
],
5556
};
5657

57-
for flag in flags_to_try.iter() {
58+
for flag in flags_to_try {
5859
build.define(flag, "0");
59-
if build.try_compile("usearch").is_ok() {
60+
result = build.try_compile("usearch");
61+
if result.is_err() {
62+
println!(
63+
"cargo:warning=Failed to compile after disabling {}, trying next configuration...",
64+
flag
65+
);
66+
} else {
6067
break;
6168
}
62-
63-
// Print the failed configuration
64-
println!(
65-
"cargo:warning=Failed to compile after disabling {}, trying next configuration...",
66-
flag
67-
);
6869
}
6970
}
7071

72+
// Ensure one build has been successful
73+
result.unwrap();
74+
7175
println!("cargo:rerun-if-changed=rust/lib.rs");
7276
println!("cargo:rerun-if-changed=rust/lib.cpp");
7377
println!("cargo:rerun-if-changed=rust/lib.hpp");

0 commit comments

Comments
 (0)