summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Bailey <davidbailey00@outlook.com>2021-02-09 11:44:45 +0000
committerDavid Bailey <davidbailey00@outlook.com>2021-02-09 11:44:45 +0000
commit20b3002e8debf8a4cabba74611db0d87c6af5040 (patch)
tree3cceb02b7a7553236e962c2f2a2b854cfaa3fd24
parent838e1b111bbb7336c6cb9658ff0faee266709630 (diff)
downloadrust-openssl-20b3002e8debf8a4cabba74611db0d87c6af5040.zip
Add support for MacPorts + fix scanning other directories on arm64
-rw-r--r--openssl-sys/build/find_normal.rs40
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();
}
}