Add OPENSSL_NO_VENDOR env var check

This commit is contained in:
Noah 2020-04-04 21:09:18 -05:00
parent ef369f827e
commit 830658ec0b
No known key found for this signature in database
GPG Key ID: E8C14146AE337195
1 changed files with 16 additions and 4 deletions

View File

@ -13,9 +13,9 @@ use std::path::{Path, PathBuf};
mod cfgs; mod cfgs;
#[cfg_attr(feature = "vendored", path = "find_vendored.rs")] mod find_normal;
#[cfg_attr(not(feature = "vendored"), path = "find_normal.rs")] #[cfg(feature = "vendored")]
mod find; mod find_vendored;
enum Version { enum Version {
Openssl11x, Openssl11x,
@ -41,12 +41,24 @@ fn env(name: &str) -> Option<OsString> {
env_inner(&prefixed).or_else(|| env_inner(name)) env_inner(&prefixed).or_else(|| env_inner(name))
} }
fn find_openssl(target: &str) -> (PathBuf, PathBuf) {
#[cfg(feature = "vendored")]
{
// vendor if the feature is present, unless
// OPENSSL_NO_VENDOR exists and isn't `0`
if env("OPENSSL_NO_VENDOR").map_or(true, |s| s == "0") {
return find_vendored::get_openssl(target);
}
}
find_normal::get_openssl(target)
}
fn main() { fn main() {
check_rustc_versions(); check_rustc_versions();
let target = env::var("TARGET").unwrap(); let target = env::var("TARGET").unwrap();
let (lib_dir, include_dir) = find::get_openssl(&target); let (lib_dir, include_dir) = find_openssl(&target);
if !Path::new(&lib_dir).exists() { if !Path::new(&lib_dir).exists() {
panic!( panic!(