aboutsummaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/build.rs b/build.rs
index c5677f6..ac1d6a6 100644
--- a/build.rs
+++ b/build.rs
@@ -17,6 +17,10 @@ fn is_neon() -> bool {
defined("CARGO_FEATURE_NEON")
}
+fn is_no_neon() -> bool {
+ defined("CARGO_FEATURE_NO_NEON")
+}
+
fn is_ci() -> bool {
defined("BLAKE3_CI")
}
@@ -226,6 +230,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
panic!("It doesn't make sense to enable both \"pure\" and \"neon\".");
}
+ if is_no_neon() && is_neon() {
+ panic!("It doesn't make sense to enable both \"no_neon\" and \"neon\".");
+ }
+
if is_x86_64() || is_x86_32() {
let support = c_compiler_support();
if is_x86_32() || should_prefer_intrinsics() || is_pure() || support == NoCompiler {
@@ -245,7 +253,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
}
}
- if (is_arm() && is_neon()) || (is_aarch64() && !is_pure()) {
+ if (is_arm() && is_neon()) || (!is_no_neon() && !is_pure() && is_aarch64()) {
println!("cargo:rustc-cfg=blake3_neon");
build_neon_c_intrinsics();
}