pqcrypto-frodo 0.1.1

Post-Quantum kem frodo
Documentation
extern crate cc;
extern crate glob;

use std::path::Path;


fn main() {
    let common_dir = Path::new("pqclean/common");
    let common_files = [
        common_dir.join("fips202.c"),
        common_dir.join("aes.c"),
        common_dir.join("randombytes.c"),
        common_dir.join("sha2.c"),
    ];

    let target_frodokem640shake_dir = Path::new("pqclean/crypto_kem/frodokem640shake/clean");
    let scheme_frodokem640shake_files = glob::glob(target_frodokem640shake_dir.join("*.c").to_str().unwrap()).unwrap();
    let target_frodokem976aes_dir = Path::new("pqclean/crypto_kem/frodokem976aes/clean");
    let scheme_frodokem976aes_files = glob::glob(target_frodokem976aes_dir.join("*.c").to_str().unwrap()).unwrap();
    let target_frodokem976shake_dir = Path::new("pqclean/crypto_kem/frodokem976shake/clean");
    let scheme_frodokem976shake_files = glob::glob(target_frodokem976shake_dir.join("*.c").to_str().unwrap()).unwrap();
    let target_frodokem1344aes_dir = Path::new("pqclean/crypto_kem/frodokem1344aes/clean");
    let scheme_frodokem1344aes_files = glob::glob(target_frodokem1344aes_dir.join("*.c").to_str().unwrap()).unwrap();
    let target_frodokem1344shake_dir = Path::new("pqclean/crypto_kem/frodokem1344shake/clean");
    let scheme_frodokem1344shake_files = glob::glob(target_frodokem1344shake_dir.join("*.c").to_str().unwrap()).unwrap();
    cc::Build::new()
        .include("pqclean/common")
        .flag("-std=c99")
        .files(common_files.into_iter())
        .include(target_frodokem640shake_dir)
        .files(scheme_frodokem640shake_files.into_iter().map(|p| p.unwrap().to_string_lossy().into_owned()))
        .include(target_frodokem976aes_dir)
        .files(scheme_frodokem976aes_files.into_iter().map(|p| p.unwrap().to_string_lossy().into_owned()))
        .include(target_frodokem976shake_dir)
        .files(scheme_frodokem976shake_files.into_iter().map(|p| p.unwrap().to_string_lossy().into_owned()))
        .include(target_frodokem1344aes_dir)
        .files(scheme_frodokem1344aes_files.into_iter().map(|p| p.unwrap().to_string_lossy().into_owned()))
        .include(target_frodokem1344shake_dir)
        .files(scheme_frodokem1344shake_files.into_iter().map(|p| p.unwrap().to_string_lossy().into_owned()))
        .compile("libfrodo.a");

}