1#![allow(
2    clippy::inconsistent_digit_grouping,
3    clippy::uninlined_format_args,
4    clippy::unusual_byte_groupings
5)]
6
7use std::env;
8
9fn main() {
10    if env::var("DEP_OPENSSL_LIBRESSL").is_ok() {
11        println!("cargo:rustc-cfg=libressl");
12    }
13
14    if env::var("DEP_OPENSSL_BORINGSSL").is_ok() {
15        println!("cargo:rustc-cfg=boringssl");
16        return;
17    }
18
19    if let Ok(v) = env::var("DEP_OPENSSL_LIBRESSL_VERSION_NUMBER") {
20        let version = u64::from_str_radix(&v, 16).unwrap();
21
22        if version >= 0x2_05_00_00_0 {
23            println!("cargo:rustc-cfg=libressl250");
24        }
25        if version >= 0x2_05_01_00_0 {
26            println!("cargo:rustc-cfg=libressl251");
27        }
28        if version >= 0x2_06_01_00_0 {
29            println!("cargo:rustc-cfg=libressl261");
30        }
31        if version >= 0x2_07_00_00_0 {
32            println!("cargo:rustc-cfg=libressl270");
33        }
34        if version >= 0x2_07_01_00_0 {
35            println!("cargo:rustc-cfg=libressl271");
36        }
37        if version >= 0x2_07_03_00_0 {
38            println!("cargo:rustc-cfg=libressl273");
39        }
40        if version >= 0x2_08_00_00_0 {
41            println!("cargo:rustc-cfg=libressl280");
42        }
43        if version >= 0x2_09_01_00_0 {
44            println!("cargo:rustc-cfg=libressl291");
45        }
46        if version >= 0x3_01_00_00_0 {
47            println!("cargo:rustc-cfg=libressl310");
48        }
49        if version >= 0x3_02_01_00_0 {
50            println!("cargo:rustc-cfg=libressl321");
51        }
52        if version >= 0x3_03_02_00_0 {
53            println!("cargo:rustc-cfg=libressl332");
54        }
55        if version >= 0x3_04_00_00_0 {
56            println!("cargo:rustc-cfg=libressl340");
57        }
58        if version >= 0x3_05_00_00_0 {
59            println!("cargo:rustc-cfg=libressl350");
60        }
61        if version >= 0x3_06_00_00_0 {
62            println!("cargo:rustc-cfg=libressl360");
63        }
64        if version >= 0x3_06_01_00_0 {
65            println!("cargo:rustc-cfg=libressl361");
66        }
67        if version >= 0x3_07_00_00_0 {
68            println!("cargo:rustc-cfg=libressl370");
69        }
70    }
71
72    if let Ok(vars) = env::var("DEP_OPENSSL_CONF") {
73        for var in vars.split(',') {
74            println!("cargo:rustc-cfg=osslconf=\"{}\"", var);
75        }
76    }
77
78    if let Ok(version) = env::var("DEP_OPENSSL_VERSION_NUMBER") {
79        let version = u64::from_str_radix(&version, 16).unwrap();
80
81        if version >= 0x1_00_01_00_0 {
82            println!("cargo:rustc-cfg=ossl101");
83        }
84        if version >= 0x1_00_02_00_0 {
85            println!("cargo:rustc-cfg=ossl102");
86        }
87        if version >= 0x1_01_00_00_0 {
88            println!("cargo:rustc-cfg=ossl110");
89        }
90        if version >= 0x1_01_00_07_0 {
91            println!("cargo:rustc-cfg=ossl110g");
92        }
93        if version >= 0x1_01_00_08_0 {
94            println!("cargo:rustc-cfg=ossl110h");
95        }
96        if version >= 0x1_01_01_00_0 {
97            println!("cargo:rustc-cfg=ossl111");
98        }
99        if version >= 0x3_00_00_00_0 {
100            println!("cargo:rustc-cfg=ossl300");
101        }
102        if version >= 0x3_01_00_00_0 {
103            println!("cargo:rustc-cfg=ossl310");
104        }
105    }
106
107    if let Ok(version) = env::var("DEP_OPENSSL_LIBRESSL_VERSION_NUMBER") {
108        let version = u64::from_str_radix(&version, 16).unwrap();
109
110        if version >= 0x2_05_01_00_0 {
111            println!("cargo:rustc-cfg=libressl251");
112        }
113
114        if version >= 0x2_06_01_00_0 {
115            println!("cargo:rustc-cfg=libressl261");
116        }
117
118        if version >= 0x2_07_00_00_0 {
119            println!("cargo:rustc-cfg=libressl270");
120        }
121
122        if version >= 0x2_07_01_00_0 {
123            println!("cargo:rustc-cfg=libressl271");
124        }
125
126        if version >= 0x2_07_03_00_0 {
127            println!("cargo:rustc-cfg=libressl273");
128        }
129
130        if version >= 0x2_08_00_00_0 {
131            println!("cargo:rustc-cfg=libressl280");
132        }
133
134        if version >= 0x2_09_01_00_0 {
135            println!("cargo:rustc-cfg=libressl291");
136        }
137
138        if version >= 0x3_02_01_00_0 {
139            println!("cargo:rustc-cfg=libressl321");
140        }
141
142        if version >= 0x3_03_02_00_0 {
143            println!("cargo:rustc-cfg=libressl332");
144        }
145
146        if version >= 0x3_04_00_00_0 {
147            println!("cargo:rustc-cfg=libressl340");
148        }
149
150        if version >= 0x3_05_00_00_0 {
151            println!("cargo:rustc-cfg=libressl350");
152        }
153
154        if version >= 0x3_06_00_00_0 {
155            println!("cargo:rustc-cfg=libressl360");
156        }
157
158        if version >= 0x3_06_01_00_0 {
159            println!("cargo:rustc-cfg=libressl361");
160        }
161    }
162}
163