diff options
| author | Steven Fackler <[email protected]> | 2016-10-14 20:20:05 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-10-14 20:20:05 -0700 |
| commit | 3ea2a9cb5f2599b5c2147a2bde7488cc087081bc (patch) | |
| tree | 6103a6dc033fac707b061831599b7ee41a89bdc4 | |
| parent | Merge pull request #469 from sfackler/hostname (diff) | |
| parent | Respect osslconf in systest (diff) | |
| download | rust-openssl-3ea2a9cb5f2599b5c2147a2bde7488cc087081bc.tar.xz rust-openssl-3ea2a9cb5f2599b5c2147a2bde7488cc087081bc.zip | |
Merge pull request #470 from sfackler/confs
Support OpenSSL conditional compilation
| -rw-r--r-- | openssl-sys/build.rs | 3 | ||||
| -rw-r--r-- | openssl-sys/src/ossl10x.rs | 1 | ||||
| -rw-r--r-- | systest/build.rs | 5 |
3 files changed, 9 insertions, 0 deletions
diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index 9f5b3877..b6540368 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -283,6 +283,7 @@ The build is now aborting due to this version mismatch. // Look for `#define OPENSSL_FOO`, print out everything as our own // #[cfg] flag. + let mut vars = vec![]; for line in conf_header.lines() { let i = match line.find("define ") { Some(i) => i, @@ -291,8 +292,10 @@ The build is now aborting due to this version mismatch. let var = line[i + "define ".len()..].trim(); if var.starts_with("OPENSSL") && !var.contains(" ") { println!("cargo:rustc-cfg=osslconf=\"{}\"", var); + vars.push(var); } } + println!("cargo:osslconf={}", vars.join(",")); } return version_text.to_string() diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs index 86451a0c..16d669b0 100644 --- a/openssl-sys/src/ossl10x.rs +++ b/openssl-sys/src/ossl10x.rs @@ -549,6 +549,7 @@ extern { pub fn OPENSSL_add_all_algorithms_noconf(); pub fn HMAC_CTX_init(ctx: *mut ::HMAC_CTX); pub fn HMAC_CTX_cleanup(ctx: *mut ::HMAC_CTX); + #[cfg(not(osslconf = "OPENSSL_NO_SSL3_METHOD"))] pub fn SSLv3_method() -> *const ::SSL_METHOD; pub fn TLSv1_method() -> *const ::SSL_METHOD; pub fn SSLv23_method() -> *const ::SSL_METHOD; diff --git a/systest/build.rs b/systest/build.rs index b2820e5b..94c5534e 100644 --- a/systest/build.rs +++ b/systest/build.rs @@ -31,6 +31,11 @@ fn main() { if env::var("DEP_OPENSSL_IS_110").is_ok() { cfg.cfg("ossl110", None); } + if let Ok(vars) = env::var("DEP_OPENSSL_OSSLCONF") { + for var in vars.split(",") { + cfg.cfg("osslconf", Some(var)); + } + } cfg.header("openssl/comp.h") .header("openssl/dh.h") |