From 20b3002e8debf8a4cabba74611db0d87c6af5040 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Tue, 9 Feb 2021 11:44:45 +0000 Subject: Add support for MacPorts + fix scanning other directories on arm64 --- openssl-sys/build/find_normal.rs | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/openssl-sys/build/find_normal.rs b/openssl-sys/build/find_normal.rs index 3e314e15..873dc671 100644 --- a/openssl-sys/build/find_normal.rs +++ b/openssl-sys/build/find_normal.rs @@ -56,31 +56,33 @@ fn resolve_with_wellknown_homebrew_location(dir: &str) -> Option { None } -fn resolve_with_wellknown_pkgsrc_location() -> Option { - let pkgsrc = Path::new("/opt/pkg"); - let pkgsrc_include_openssl = pkgsrc.join("include/openssl"); - if pkgsrc_include_openssl.exists() { - return Some(pkgsrc.to_path_buf()); +fn resolve_with_wellknown_location(dir: &str) -> Option { + let root_dir = Path::new(dir); + let include_openssl = root_dir.join("include/openssl"); + if include_openssl.exists() { + Some(root_dir.to_path_buf()) + } else { + None } - - None } fn find_openssl_dir(target: &str) -> OsString { let host = env::var("HOST").unwrap(); - if host == target { - if target == "aarch64-apple-darwin" { - if let Some(dir) = resolve_with_wellknown_homebrew_location("/opt/homebrew/opt/openssl") - { - return dir.into(); - } - } else if target.contains("apple-darwin") { - if let Some(dir) = resolve_with_wellknown_homebrew_location("/usr/local/opt/openssl") { - return dir.into(); - } else if let Some(dir) = resolve_with_wellknown_pkgsrc_location() { - return dir.into(); - } + if host == target && target.ends_with("-apple-darwin") { + let homebrew_dir = match target { + "aarch64-apple-darwin" => "/opt/homebrew/opt/openssl", + _ => "/usr/local/opt/openssl", + }; + + if let Some(dir) = resolve_with_wellknown_homebrew_location(homebrew_dir) { + return dir.into(); + } else if let Some(dir) = resolve_with_wellknown_location("/opt/pkg") { + // pkgsrc + return dir.into(); + } else if let Some(dir) = resolve_with_wellknown_location("/opt/local") { + // MacPorts + return dir.into(); } } -- cgit v1.2.3