build.rs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. fn main()
  2. {
  3. cxx_build::bridge("src/main.rs")
  4. .file("src/direct.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("-DOPENFHE_VERSION=1.1.4")
  15. .flag_if_supported("-Wno-parentheses") // [-Wparentheses]
  16. //.flag_if_supported("-DMATHBACKEND=4")
  17. .flag_if_supported("-fopenmp") // [-Wunknown-pragmas]
  18. .flag_if_supported("-fPIE")
  19. .flag_if_supported("-Wno-unused-parameter") // [-Wunused-parameter]
  20. .flag_if_supported("-Wno-missing-field-initializers") // [-Wmissing-field-initializers]
  21. .compile("openfhe_rs_dev");
  22. println!("cargo::rerun-if-changed=src/main.rs");
  23. println!("cargo::rerun-if-changed=src/direct.hpp");
  24. println!("cargo::rerun-if-changed=src/direct.cc");
  25. // linking additional shared libraries
  26. println!("cargo::rustc-link-arg=-L/usr/local/lib");
  27. println!("cargo::rustc-link-arg=-lOPENFHEpke");
  28. println!("cargo::rustc-link-arg=-lOPENFHEbinfhe");
  29. println!("cargo::rustc-link-arg=-lOPENFHEcore");
  30. println!("cargo::rustc-link-arg=-L/usr/lib/gcc/x86_64-linux-gnu/11");
  31. println!("cargo::rustc-link-arg=-lgomp");
  32. // necessary to avoid using LD_LIBRARY_PATH
  33. println!("cargo::rustc-link-arg=-Wl,-rpath=/usr/local/lib");
  34. }