Use AVLibrary for pkg-config probing

This commit is contained in:
FreezyLemon 2024-04-28 15:08:55 +02:00 committed by Josh Holmer
parent 40b7016177
commit 021c111ffb

View File

@ -49,6 +49,10 @@ impl Library {
} }
} }
fn lib_name(&self) -> String {
format!("lib{}", self.name)
}
fn enabled(&self) -> bool { fn enabled(&self) -> bool {
!self.optional || cargo_feature_enabled(self.name) !self.optional || cargo_feature_enabled(self.name)
} }
@ -984,37 +988,17 @@ fn main() {
} }
paths paths
} } else {
// Fallback to pkg-config // Fallback to pkg-config
else {
add_pkg_config_path(); add_pkg_config_path();
pkg_config::Config::new() let mut pkgconfig = pkg_config::Config::new();
.statik(statik) pkgconfig.statik(statik);
.probe("libavutil")
.unwrap();
let mut libs = vec![ for lib in LIBRARIES.iter().filter(|lib| lib.enabled()) {
("libavformat", "AVFORMAT"), let _ = pkgconfig.probe(&lib.lib_name()).unwrap();
("libavfilter", "AVFILTER"),
("libavdevice", "AVDEVICE"),
("libswscale", "SWSCALE"),
("libswresample", "SWRESAMPLE"),
];
if ffmpeg_major_version < 5 {
libs.push(("libavresample", "AVRESAMPLE"));
} }
for (lib_name, env_variable_name) in libs.iter() { pkgconfig
if cargo_feature_enabled(env_variable_name) {
pkg_config::Config::new()
.statik(statik)
.probe(lib_name)
.unwrap();
}
}
pkg_config::Config::new()
.statik(statik)
.probe("libavcodec") .probe("libavcodec")
.unwrap() .unwrap()
.include_paths .include_paths