use std::collections::HashMap; use std::env; fn main() { println!("cargo:rerun-if-env-changed=bench"); if let Some(_val) = env::var_os("ntrust_bench") { println!("cargo:rustc-cfg=feature=\"bench\""); } let mut features = HashMap::new(); features.insert("ntruhps2048509", cfg!(feature = "ntruhps2048509")); features.insert("ntruhps2048677", cfg!(feature = "ntruhps2048677")); features.insert("ntruhps4096821", cfg!(feature = "ntruhps4096821")); features.insert("ntruhrss701", cfg!(feature = "ntruhrss701")); let mut target_feature = ""; for (feature, in_use) in features { if !target_feature.is_empty() && in_use { panic!("[ERROR] Configuration error: \n\t{} and {} cannot be used simultaneously!\n\tPlease select only one feature.", target_feature, feature); } else if in_use { target_feature = feature; } } if target_feature.is_empty() { println!("cargo:rustc-cfg=feature=\"ntruhps2048509\""); println!("cargo:rustc-cfg=feature=\"ntruhps\""); } }