mirror of
https://github.com/encounter/rust-ffmpeg-zmwangx.git
synced 2026-07-10 21:18:40 -07:00
Use the os from the target triple, rather than Rust's nickname
This commit is contained in:
+19
-8
@@ -185,7 +185,7 @@ fn switch(configure: &mut Command, feature: &str, name: &str) {
|
||||
configure.arg(arg.to_string() + name);
|
||||
}
|
||||
|
||||
fn build() -> io::Result<()> {
|
||||
fn build(target_os: &str) -> io::Result<()> {
|
||||
let source_dir = source();
|
||||
|
||||
// Command's path is not relative to command's current_dir
|
||||
@@ -213,10 +213,7 @@ fn build() -> io::Result<()> {
|
||||
"--arch={}",
|
||||
env::var("CARGO_CFG_TARGET_ARCH").unwrap()
|
||||
));
|
||||
configure.arg(format!(
|
||||
"--target_os={}",
|
||||
env::var("CARGO_CFG_TARGET_OS").unwrap()
|
||||
));
|
||||
configure.arg(format!("--target_os={}", target_os));
|
||||
}
|
||||
|
||||
// control debug build
|
||||
@@ -373,6 +370,19 @@ fn build() -> io::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn os_from_triple(triple: &str) -> &str {
|
||||
let platform = triple.splitn(2, '-').nth(1).expect("bad triple");
|
||||
platform
|
||||
.trim_start_matches("unknown-")
|
||||
.trim_start_matches("pc-")
|
||||
.trim_start_matches("wrs-")
|
||||
.trim_start_matches("apple-")
|
||||
.trim_start_matches("uwp-")
|
||||
.split('-')
|
||||
.next()
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
fn try_vcpkg(_statik: bool) -> Option<Vec<PathBuf>> {
|
||||
None
|
||||
@@ -633,7 +643,8 @@ fn main() {
|
||||
|
||||
fn thread_main() {
|
||||
let statik = env::var("CARGO_FEATURE_STATIC").is_ok();
|
||||
let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap();
|
||||
let target = env::var("TARGET").unwrap();
|
||||
let target_os = os_from_triple(&target); // it's different than Rust's target_os! but ./configure likes these better
|
||||
|
||||
let include_paths: Vec<PathBuf> = if env::var("CARGO_FEATURE_BUILD").is_ok() {
|
||||
println!(
|
||||
@@ -644,7 +655,7 @@ fn thread_main() {
|
||||
if fs::metadata(&search().join("lib").join("libavutil.a")).is_err() {
|
||||
fs::create_dir_all(&output()).expect("failed to create build directory");
|
||||
fetch().unwrap();
|
||||
build().unwrap();
|
||||
build(&target_os).unwrap();
|
||||
}
|
||||
|
||||
// Check additional required libraries.
|
||||
@@ -741,7 +752,7 @@ fn thread_main() {
|
||||
paths
|
||||
};
|
||||
|
||||
if statik && target_os == "macos" {
|
||||
if statik && target_os == "darwin" {
|
||||
let frameworks = vec![
|
||||
"AppKit",
|
||||
"AudioToolbox",
|
||||
|
||||
Reference in New Issue
Block a user