Expose whisper.cpp version as a static string

Add a `WHISPER_CPP_VERSION` static that contains the version number of whisper.cpp that whisper-rs was built with. This can be useful for downstream applications for debugging and logging purposes.

This is implemented using [build script metadata](https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key) for whisper-rs-sys to expose the version number of whisper.cpp defined in `CMakeLists.txt` as metadata to crates that depend on it. Then whisper-rs accesses that build metadata and defines its own internal compile-time environment variable containing the same value, which is then assigned to a static variable.

It seemed better to expose this information through build metadata rather than defining a static in whisper-rs-sys directly, despite the extra indirection, so as to keep whisper-rs-sys as pure bindings.
This commit is contained in:
Stephen M. Coakley 2024-09-10 12:38:33 -05:00
parent 8596d2d98c
commit fe9ffb8030
3 changed files with 32 additions and 0 deletions

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 WhisperLogCallback = whisper_rs_sys::ggml_log_callback;
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");