fn main() {
// Declare all possible build-time cfgs so the compiler doesn't warn.
for cfg in [
"himada_force_scalar",
"himada_force_sse",
"himada_force_avx2",
"himada_force_neon",
] {
println!("cargo:rustc-check-cfg=cfg({})", cfg);
}
// Build-time dispatch: emit cfg flags for forced SIMD ISAs.
// These are used to conditionally compile only the requested kernels.
for (feat, cfg) in [
("force-scalar", "himada_force_scalar"),
("force-sse", "himada_force_sse"),
("force-avx2", "himada_force_avx2"),
("force-neon", "himada_force_neon"),
] {
let key = format!(
"CARGO_FEATURE_{}",
feat.to_uppercase().replace('-', "_")
);
if std::env::var(key).is_ok() {
println!("cargo:rustc-cfg={}", cfg);
}
}
}