build.rs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. fn main()
  2. {
  3. cxx_build::bridge("src/lib.rs")
  4. .file("src/bindings.cc")
  5. .include("/usr/local/include/openfhe")
  6. .include("/usr/local/include/openfhe/third-party/include")
  7. .include("/usr/local/include/openfhe/core")
  8. .include("/usr/local/include/openfhe/pke")
  9. .include("/usr/local/include/openfhe/binfhe")
  10. .flag_if_supported("-std=c++17")
  11. .flag_if_supported("-Wall")
  12. .flag_if_supported("-Werror")
  13. .flag_if_supported("-O3")
  14. .flag_if_supported("-fopenmp") // [-Wunknown-pragmas]
  15. .flag_if_supported("-Wno-parentheses") // [-Wparentheses]
  16. .flag_if_supported("-Wno-unused-parameter") // [-Wunused-parameter]
  17. .flag_if_supported("-Wno-missing-field-initializers") // [-Wmissing-field-initializers]
  18. .flag_if_supported("-Wno-unused-function") // [-Wunused-function]
  19. .compile("openfhe");
  20. println!("cargo::rerun-if-changed=src/lib.rs");
  21. println!("cargo::rerun-if-changed=src/bindings.hpp");
  22. println!("cargo::rerun-if-changed=src/bindings.cc");
  23. // linking openFHE
  24. println!("cargo::rustc-link-arg=-L/usr/local/lib");
  25. println!("cargo::rustc-link-arg=-lOPENFHEpke");
  26. println!("cargo::rustc-link-arg=-lOPENFHEbinfhe");
  27. println!("cargo::rustc-link-arg=-lOPENFHEcore");
  28. // linking OpenMP
  29. println!("cargo::rustc-link-arg=-fopenmp");
  30. // necessary to avoid LD_LIBRARY_PATH
  31. println!("cargo::rustc-link-arg=-Wl,-rpath=/usr/local/lib");
  32. }