diff options
| author | rsdy <[email protected]> | 2021-10-08 11:34:35 +0100 |
|---|---|---|
| committer | rsdy <[email protected]> | 2021-10-08 11:34:35 +0100 |
| commit | 20fd56ac0fe8c5f824cb7ce0375c6a63102a1ff1 (patch) | |
| tree | 95931950570feedeb2a13c0ffff83e152d0887a1 /build.rs | |
| parent | 0a0bb7126e9207d3bb3d9af0f0b5ae646d532cf2 (diff) | |
Add `no_neon` feature to disable NEON on aarch64
Diffstat (limited to 'build.rs')
| -rw-r--r-- | build.rs | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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(); } |
