diff --git a/Cargo.toml b/Cargo.toml index 83becb7..23ed6f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,7 @@ simd = [] coreml = ["whisper-rs-sys/coreml"] cuda = ["whisper-rs-sys/cuda"] opencl = ["whisper-rs-sys/opencl"] +openblas = ["whisper-rs-sys/openblas"] test-with-tiny-model = [] [package.metadata.docs.rs] diff --git a/src/standalone.rs b/src/standalone.rs index 4928785..35758fe 100644 --- a/src/standalone.rs +++ b/src/standalone.rs @@ -100,3 +100,14 @@ impl Default for SystemInfo { } } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_openblas() { + let info = SystemInfo::default(); + assert_eq!(info.blas, cfg!(feature = "openblas")); + } +} diff --git a/sys/Cargo.toml b/sys/Cargo.toml index 4f985e0..5b85997 100644 --- a/sys/Cargo.toml +++ b/sys/Cargo.toml @@ -35,6 +35,7 @@ include = [ coreml = [] cuda = [] opencl = [] +openblas = [] [dependencies] diff --git a/sys/build.rs b/sys/build.rs index 2b6b1a1..afbfff7 100644 --- a/sys/build.rs +++ b/sys/build.rs @@ -31,6 +31,10 @@ fn main() { println!("cargo:rustc-link-lib=clblast"); println!("cargo:rustc-link-lib=OpenCL"); } + #[cfg(feature = "openblas")] + { + println!("cargo:rustc-link-lib=openblas"); + } #[cfg(feature = "cuda")] { println!("cargo:rustc-link-lib=cublas"); @@ -109,6 +113,9 @@ fn main() { #[cfg(feature = "cuda")] cmd.arg("-DWHISPER_CUBLAS=ON"); + #[cfg(feature = "openblas")] + cmd.arg("-DWHISPER_OPENBLAS=ON"); + #[cfg(feature = "opencl")] cmd.arg("-DWHISPER_CLBLAST=ON");