tts-rs/build.rs

36 lines
1.3 KiB
Rust

fn main() {
#[cfg(windows)]
if std::env::var("TARGET").unwrap().contains("windows") {
windows::build!(
Windows::Foundation::{EventRegistrationToken, IAsyncOperation, TypedEventHandler},
Windows::Media::Core::MediaSource,
Windows::Media::Playback::{MediaPlaybackSession, MediaPlaybackState, MediaPlayer, MediaPlayerAudioCategory},
Windows::Media::SpeechSynthesis::{SpeechSynthesisStream, SpeechSynthesizer, SpeechSynthesizerOptions},
Windows::Storage::Streams::IRandomAccessStream,
);
}
if std::env::var("TARGET").unwrap().contains("-apple") {
println!("cargo:rustc-link-lib=framework=AVFoundation");
if !std::env::var("CARGO_CFG_TARGET_OS")
.unwrap()
.contains("ios")
{
println!("cargo:rustc-link-lib=framework=AppKit");
}
}
#[cfg(feature = "ffi")]
generate_c_bindings();
}
#[cfg(feature = "ffi")]
fn generate_c_bindings() {
use std::path::PathBuf;
let crate_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
let mut header_path: PathBuf = std::env::var("OUT_DIR").unwrap().into();
header_path.push("tts.h");
cbindgen::generate(crate_dir)
.unwrap()
.write_to_file(header_path);
}