Add ability to redefine library list via OPENSSL_LIBS environment variable.

It's usefull for compiling with MinGW-w64 installed via MSYS2 (https://wiki.qt.io/MSYS2).
This commit is contained in:
a.navrotskiy 2015-05-07 16:47:59 +03:00
parent 8a9aa0c657
commit 59c8a88839
1 changed files with 10 additions and 5 deletions

View File

@ -20,10 +20,14 @@ fn main() {
} }
} }
let (libcrypto, libssl) = if target.contains("windows") { let libs_env = env::var("OPENSSL_LIBS").ok();
("eay32", "ssl32") let libs = match libs_env {
} else { Some(ref v) => v.split(":").collect(),
("crypto", "ssl") None => if target.contains("windows") && env::var_os("MSYSTEM").is_none() {
vec!("eay32", "ssl32")
} else {
vec!("crypto", "ssl")
}
}; };
let mode = if env::var_os("OPENSSL_STATIC").is_some() { let mode = if env::var_os("OPENSSL_STATIC").is_some() {
@ -36,7 +40,8 @@ fn main() {
println!("cargo:rustc-flags=-L native={}", lib_dir); println!("cargo:rustc-flags=-L native={}", lib_dir);
} }
println!("cargo:rustc-flags=-l {0}={1} -l {0}={2}", mode, libcrypto, libssl); let libs_arg = libs.iter().fold(String::new(), |args, lib| args + &format!(" -l {0}={1}", mode, lib));
println!("cargo:rustc-flags={0}", libs_arg);
let mut include_dirs = vec![]; let mut include_dirs = vec![];