extern crate cc; extern crate pkg_config; use std::path::Path; fn main() { let root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); let root = Path::new(&root).join("libvorbis"); println!( "cargo:include={}", root.join("include").into_os_string().into_string().unwrap() ); println!( "cargo:src={}", root.join("lib").into_os_string().into_string().unwrap() ); match pkg_config::find_library("vorbis") { Ok(_) => return, Err(..) => {} }; let ogg_inc = std::env::var("DEP_OGG_INCLUDE").unwrap(); let ogg_inc = Path::new(&ogg_inc); cc::Build::new() .file("libvorbis/lib/analysis.c") .file("libvorbis/lib/bitrate.c") .file("libvorbis/lib/block.c") .file("libvorbis/lib/codebook.c") .file("libvorbis/lib/envelope.c") .file("libvorbis/lib/floor0.c") .file("libvorbis/lib/floor1.c") .file("libvorbis/lib/info.c") .file("libvorbis/lib/lookup.c") .file("libvorbis/lib/lpc.c") .file("libvorbis/lib/lsp.c") .file("libvorbis/lib/mapping0.c") .file("libvorbis/lib/mdct.c") .file("libvorbis/lib/psy.c") .file("libvorbis/lib/registry.c") .file("libvorbis/lib/res0.c") .file("libvorbis/lib/sharedbook.c") .file("libvorbis/lib/smallft.c") .file("libvorbis/lib/synthesis.c") .file("libvorbis/lib/vorbisenc.c") .file("libvorbis/lib/window.c") .define("_USRDLL", None) .define("LIBVORBIS_EXPORTS", None) .include(&root.join("include")) .include(&root.join("lib")) .include(&ogg_inc) .compile("libvorbis.a"); }