diff options
| author | Alex Crichton <[email protected]> | 2016-11-05 22:55:25 -0700 |
|---|---|---|
| committer | Alex Crichton <[email protected]> | 2016-11-05 22:55:25 -0700 |
| commit | c2bf8acad8cd6deb9122e23392636fa9ff325b3f (patch) | |
| tree | 90bd5e5566fe2040aed16f68baaf88dae2b92500 | |
| parent | Merge branch 'release' (diff) | |
| download | rust-openssl-c2bf8acad8cd6deb9122e23392636fa9ff325b3f.tar.xz rust-openssl-c2bf8acad8cd6deb9122e23392636fa9ff325b3f.zip | |
Provide a tailored error message on Linux
I just ran into a case where I installed OpenSSL in a docker container but I
forgot to install pkg-config. Right now openssl-sys relies on pkg-config, so
print out a nice error about this.
| -rw-r--r-- | openssl-sys/build.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index a435b192..b6c8c2de 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -6,6 +6,7 @@ use std::ffi::OsString; use std::fs::File; use std::io::Read; use std::path::{Path, PathBuf}; +use std::process::Command; fn main() { let target = env::var("TARGET").unwrap(); @@ -100,6 +101,18 @@ Unfortunately though the compile cannot continue, so aborting. } } + if host.contains("unknown-linux") && target.contains("unknown-linux-gnu") { + if Command::new("pkg-config").output().is_err() { + msg.push_str(&format!(" +It looks like you're compiling on Linux and also targeting Linux. Currently this +requires the `pkg-config` utility to find OpenSSL but unfortunately `pkg-config` +could not be found. If you have OpenSSL installed you can likely fix this by +installing `pkg-config`. + +")); + } + } + if host.contains("windows") && target.contains("windows-gnu") { msg.push_str(&format!(" It looks like you're compiling for MinGW but you may not have either OpenSSL or |