diff options
| author | Aidan Hobson Sayers <[email protected]> | 2016-12-12 17:51:35 +0000 |
|---|---|---|
| committer | Aidan Hobson Sayers <[email protected]> | 2016-12-12 17:51:35 +0000 |
| commit | b090804227596b1814bbb6c6cdcf89347270371e (patch) | |
| tree | 4a8d5024ee5229f4f09c9bcbcffeae50ccc77746 /openssl-sys | |
| parent | Fix ErrorStack display (diff) | |
| download | rust-openssl-b090804227596b1814bbb6c6cdcf89347270371e.tar.xz rust-openssl-b090804227596b1814bbb6c6cdcf89347270371e.zip | |
Allow OPENSSL_{LIB,INCLUDE}_DIR to override OPENSSL_DIR
Diffstat (limited to 'openssl-sys')
| -rw-r--r-- | openssl-sys/build.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index b6c8c2de..ce173192 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -11,17 +11,25 @@ use std::process::Command; fn main() { let target = env::var("TARGET").unwrap(); - let openssl_dir = env::var_os("OPENSSL_DIR").unwrap_or_else(|| { - find_openssl_dir(&target) - }); + let lib_dir = env::var_os("OPENSSL_LIB_DIR").map(PathBuf::from); + let include_dir = env::var_os("OPENSSL_INCLUDE_DIR").map(PathBuf::from); + + let (lib_dir, include_dir) = if lib_dir.is_none() || include_dir.is_none() { + let openssl_dir = env::var_os("OPENSSL_DIR").unwrap_or_else(|| { + find_openssl_dir(&target) + }); + let openssl_dir = Path::new(&openssl_dir); + let lib_dir = lib_dir.unwrap_or_else(|| openssl_dir.join("lib")); + let include_dir = include_dir.unwrap_or_else(|| openssl_dir.join("include")); + (lib_dir, include_dir) + } else { + (lib_dir.unwrap(), include_dir.unwrap()) + }; - let lib_dir = Path::new(&openssl_dir).join("lib"); - let include_dir = Path::new(&openssl_dir).join("include"); if !Path::new(&lib_dir).exists() { panic!("OpenSSL library directory does not exist: {}", lib_dir.to_string_lossy()); } - if !Path::new(&include_dir).exists() { panic!("OpenSSL include directory does not exist: {}", include_dir.to_string_lossy()); |