Commit 7f2a8671 authored by Steven Fackler's avatar Steven Fackler Committed by GitHub
Browse files

Merge pull request #598 from ajroetker/maint/recreate_ability_to_pass_in_OPENSSL_LIBS

(maint) Recreate ability to pass in OPENSSL_LIBS variable
parents 06b10a57 663547a7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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.
+13 −6
Original line number Diff line number Diff line
@@ -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);
    }
}