(maint) Recreate ability to pass in OPENSSL_LIBS variable
Prior to this commit in 43c951f743 the
ability to pass OPENSSL_LIBS was removed from the build.rs of
openssl-sys. This commit adds the ability to pass custom names for the
OPENSSL_LIBS back in. This is useful for when building openssl across
linux and windows with the same lib names (ssl:crypto) and the default
names provided by the build script are not valid.
This commit is contained in:
parent
06b10a5753
commit
663547a758
|
|
@ -133,6 +133,8 @@ The build script can be configured via environment variables:
|
|||
(if specified).
|
||||
* `OPENSSL_STATIC` - If specified, OpenSSL libraries will be statically rather
|
||||
than dynamically linked.
|
||||
* `OPENSSL_LIBS` - If specified, the names of the OpenSSL libraries that will be
|
||||
linked, e.g. `ssl:crypto`.
|
||||
|
||||
If `OPENSSL_DIR` is specified, then the build script will skip the pkg-config
|
||||
step.
|
||||
|
|
|
|||
|
|
@ -65,16 +65,23 @@ fn main() {
|
|||
|
||||
let version = validate_headers(&[include_dir.clone().into()]);
|
||||
|
||||
let libs = match version {
|
||||
let libs_env = env::var("OPENSSL_LIBS").ok();
|
||||
let libs = match libs_env {
|
||||
Some(ref v) => v.split(":").collect(),
|
||||
None => {
|
||||
match version {
|
||||
Version::Openssl101 | Version::Openssl102 if target.contains("windows") => {
|
||||
["ssleay32", "libeay32"]
|
||||
vec!["ssleay32", "libeay32"]
|
||||
}
|
||||
Version::Openssl110 if target.contains("windows") => vec!["libssl", "libcrypto"],
|
||||
_ => vec!["ssl", "crypto"],
|
||||
}
|
||||
}
|
||||
Version::Openssl110 if target.contains("windows") => ["libssl", "libcrypto"],
|
||||
_ => ["ssl", "crypto"],
|
||||
};
|
||||
|
||||
|
||||
let kind = determine_mode(Path::new(&lib_dir), &libs);
|
||||
for lib in libs.iter() {
|
||||
for lib in libs.into_iter() {
|
||||
println!("cargo:rustc-link-lib={}={}", kind, lib);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue