openfhe 0.1.1

Rust package of the OpenFHE Fully Homomorphic Encryption Library.
fn main()
{
    cxx_build::bridge("src/lib.rs")
        .file("src/bindings.cc")
        .include("/usr/local/include/openfhe")
        .include("/usr/local/include/openfhe/third-party/include")
        .include("/usr/local/include/openfhe/core")
        .include("/usr/local/include/openfhe/pke")
        .include("/usr/local/include/openfhe/binfhe")
        .flag_if_supported("-std=c++17")
        .flag_if_supported("-Wall")
        .flag_if_supported("-Werror")
        .flag_if_supported("-O3")
        //.flag_if_supported("-DOPENFHE_VERSION=1.1.4")
        .flag_if_supported("-Wno-parentheses") // [-Wparentheses]
        //.flag_if_supported("-DMATHBACKEND=4")
        .flag_if_supported("-fopenmp") // [-Wunknown-pragmas]
        .flag_if_supported("-fPIE")
        .flag_if_supported("-Wno-unused-parameter") // [-Wunused-parameter]
        .flag_if_supported("-Wno-missing-field-initializers") // [-Wmissing-field-initializers]
        .flag_if_supported("-Wno-unused-function") // [-Wunused-function]
        .compile("openfhe");

    println!("cargo::rerun-if-changed=src/lib.rs");
    println!("cargo::rerun-if-changed=src/bindings.hpp");
    println!("cargo::rerun-if-changed=src/bindings.cc");

    // linking additional shared libraries
    println!("cargo::rustc-link-arg=-L/usr/local/lib");
    println!("cargo::rustc-link-arg=-lOPENFHEpke");
    println!("cargo::rustc-link-arg=-lOPENFHEbinfhe");
    println!("cargo::rustc-link-arg=-lOPENFHEcore");

    println!("cargo::rustc-link-arg=-L/usr/lib/gcc/x86_64-linux-gnu/11");
    println!("cargo::rustc-link-arg=-lgomp");
    
    // necessary to avoid using LD_LIBRARY_PATH
    println!("cargo::rustc-link-arg=-Wl,-rpath=/usr/local/lib");
}