From 6bc0e4019b77778c803d1e89d32755a0242d96bf Mon Sep 17 00:00:00 2001 From: Jessica Hamilton Date: Sat, 22 Apr 2017 13:58:21 +1200 Subject: [PATCH] Allow overriding lib/include dirs when cross-compiling. --- openssl-sys/build.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index df530032..789f4ca7 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -38,11 +38,23 @@ enum Version { fn main() { let target = env::var("TARGET").unwrap(); + let host = env::var("HOST").unwrap(); - println!("cargo:rerun-if-env-changed=OPENSSL_LIB_DIR"); - let lib_dir = env::var_os("OPENSSL_LIB_DIR").map(PathBuf::from); - println!("cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR"); - let include_dir = env::var_os("OPENSSL_INCLUDE_DIR").map(PathBuf::from); + println!("target == {}", target); + println!("host == {}", host); + + let mut env_lib_dir = "OPENSSL_LIB_DIR".to_string(); + let mut env_include_dir = "OPENSSL_INCLUDE_DIR".to_string(); + + if target != host { + env_lib_dir = "TARGET_OPENSSL_LIB_DIR".to_string(); + env_include_dir = "TARGET_OPENSSL_INCLUDE_DIR".to_string(); + } + + println!("cargo:rerun-if-env-changed={}", env_lib_dir); + let lib_dir = env::var_os(env_lib_dir).map(PathBuf::from); + println!("cargo:rerun-if-env-changed={}", env_include_dir); + let include_dir = env::var_os(env_include_dir).map(PathBuf::from); let (lib_dir, include_dir) = if lib_dir.is_none() || include_dir.is_none() { println!("cargo:rerun-if-env-changed=OPENSSL_DIR");