// yt - A fully featured command line YouTube client // // Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de> // SPDX-License-Identifier: GPL-3.0-or-later // // This file is part of Yt. // // You should have received a copy of the License along with this program. // If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. use std::env; use std::path::PathBuf; fn main() { let bindings = bindgen::Builder::default() .formatter(bindgen::Formatter::Prettyplease) .header("include/client.h") .header("include/render.h") .header("include/render_gl.h") .header("include/stream_cb.h") .impl_debug(true) .opaque_type("mpv_handle") .opaque_type("mpv_render_context") .enable_function_attribute_detection() .clang_args(&[ "-fretain-comments-from-system-headers", &format!( "--include-directory={}", env::var("LIBCLANG_INCLUDE_PATH").unwrap() ), "--verbose", ]) .generate_comments(true) .generate() .expect("Unable to generate bindings"); let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); bindings .write_to_file(out_path.join("bindings.rs")) .expect("Couldn't write bindings!"); println!("cargo:rustc-link-lib=mpv"); }