diff options
author | David Bailey <davidbailey00@outlook.com> | 2021-02-09 11:44:45 +0000 |
---|---|---|
committer | David Bailey <davidbailey00@outlook.com> | 2021-02-09 11:44:45 +0000 |
commit | 20b3002e8debf8a4cabba74611db0d87c6af5040 (patch) | |
tree | 3cceb02b7a7553236e962c2f2a2b854cfaa3fd24 | |
parent | 838e1b111bbb7336c6cb9658ff0faee266709630 (diff) | |
download | rust-openssl-20b3002e8debf8a4cabba74611db0d87c6af5040.zip |
Add support for MacPorts + fix scanning other directories on arm64
-rw-r--r-- | openssl-sys/build/find_normal.rs | 40 |
1 files 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<PathBuf> { None } -fn resolve_with_wellknown_pkgsrc_location() -> Option<PathBuf> { - 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<PathBuf> { + 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(); } } |