Merge pull request #172 from sagebind/version-info

This commit is contained in:
Niko 2024-09-11 15:29:25 +00:00 committed by GitHub
commit 59dea7e6af
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 0 deletions

8
build.rs Normal file
View file

@ -0,0 +1,8 @@
use std::env;
fn main() {
println!(
"cargo:rustc-env=WHISPER_CPP_VERSION={}",
env::var("DEP_WHISPER_WHISPER_CPP_VERSION").unwrap()
);
}

View file

@ -50,3 +50,6 @@ pub type WhisperLogitsFilterCallback = whisper_rs_sys::whisper_logits_filter_cal
pub type WhisperAbortCallback = whisper_rs_sys::ggml_abort_callback; pub type WhisperAbortCallback = whisper_rs_sys::ggml_abort_callback;
pub type WhisperLogCallback = whisper_rs_sys::ggml_log_callback; pub type WhisperLogCallback = whisper_rs_sys::ggml_log_callback;
pub type DtwAhead = whisper_rs_sys::whisper_ahead; pub type DtwAhead = whisper_rs_sys::whisper_ahead;
/// The version of whisper.cpp that whisper-rs was linked with.
pub static WHISPER_CPP_VERSION: &str = env!("WHISPER_CPP_VERSION");

View file

@ -4,6 +4,8 @@ extern crate bindgen;
use cmake::Config; use cmake::Config;
use std::env; use std::env;
use std::fs::File;
use std::io::{BufRead, BufReader};
use std::path::PathBuf; use std::path::PathBuf;
fn main() { fn main() {
@ -218,6 +220,13 @@ fn main() {
println!("cargo:rustc-link-lib=static=whisper"); println!("cargo:rustc-link-lib=static=whisper");
println!("cargo:rustc-link-lib=static=ggml"); println!("cargo:rustc-link-lib=static=ggml");
println!(
"cargo:WHISPER_CPP_VERSION={}",
get_whisper_cpp_version(&whisper_root)
.expect("Failed to read whisper.cpp CMake config")
.expect("Could not find whisper.cpp version declaration"),
);
// for whatever reason this file is generated during build and triggers cargo complaining // for whatever reason this file is generated during build and triggers cargo complaining
_ = std::fs::remove_file("bindings/javascript/package.json"); _ = std::fs::remove_file("bindings/javascript/package.json");
} }
@ -244,3 +253,18 @@ fn add_link_search_path(dir: &std::path::Path) -> std::io::Result<()> {
} }
Ok(()) Ok(())
} }
fn get_whisper_cpp_version(whisper_root: &std::path::Path) -> std::io::Result<Option<String>> {
let cmake_lists = BufReader::new(File::open(whisper_root.join("CMakeLists.txt"))?);
for line in cmake_lists.lines() {
let line = line?;
if let Some(suffix) = line.strip_prefix(r#"project("whisper.cpp" VERSION "#) {
let whisper_cpp_version = suffix.trim_end_matches(')');
return Ok(Some(whisper_cpp_version.into()));
}
}
Ok(None)
}