CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. cmake_minimum_required (VERSION 3.5.1)
  2. project(openfhe)
  3. set(CMAKE_CXX_STANDARD 17)
  4. option( BUILD_STATIC "Set to ON to include static versions of the library" OFF)
  5. find_package(OpenFHE)
  6. find_package(pybind11 REQUIRED)
  7. set( CMAKE_CXX_FLAGS ${OpenFHE_CXX_FLAGS} )
  8. set( OpenFHE_Py_SOURCES src)
  9. set( OpenFHE_Py_INCLUDES include)
  10. include_directories( ${OPENMP_INCLUDES} )
  11. include_directories( ${OpenFHE_INCLUDE} )
  12. include_directories( ${OpenFHE_INCLUDE}/third-party/include )
  13. include_directories( ${OpenFHE_INCLUDE}/core )
  14. include_directories( ${OpenFHE_INCLUDE}/pke )
  15. include_directories( ${OpenFHE_INCLUDE}/binfhe )
  16. # include_directories( ${OpenFHE_Py_SOURCES} )
  17. include_directories( ${OpenFHE_Py_INCLUDES}/pke )
  18. include_directories( ${OpenFHE_Py_INCLUDES}/binfhe )
  19. include_directories( ${OpenFHE_Py_INCLUDES} )
  20. ### add directories for other OpenFHE modules as needed for your project
  21. link_directories( ${OpenFHE_LIBDIR} )
  22. link_directories( ${OPENMP_LIBRARIES} )
  23. if(BUILD_STATIC)
  24. set( CMAKE_EXE_LINKER_FLAGS "${OpenFHE_EXE_LINKER_FLAGS} -static")
  25. link_libraries( ${OpenFHE_STATIC_LIBRARIES} )
  26. else()
  27. set( CMAKE_EXE_LINKER_FLAGS ${OpenFHE_EXE_LINKER_FLAGS} )
  28. link_libraries( ${OpenFHE_SHARED_LIBRARIES} )
  29. endif()
  30. ### ADD YOUR EXECUTABLE(s) HERE
  31. ### add_executable( EXECUTABLE-NAME SOURCES )
  32. ###
  33. ### EXAMPLE:
  34. ### add_executable( test demo-simple-example.cpp )
  35. ### Pybind Modules
  36. pybind11_add_module(openfhe
  37. src/bindings.cpp
  38. src/binfhe_bindings.cpp
  39. src/binfhe/binfhecontext_wrapper.cpp
  40. src/pke/serialization.cpp
  41. src/pke/cryptocontext_wrapper.cpp
  42. )
  43. ### Python installation
  44. find_package(Python REQUIRED COMPONENTS Interpreter Development)
  45. execute_process(
  46. COMMAND "${Python_EXECUTABLE}" -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
  47. OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
  48. OUTPUT_STRIP_TRAILING_WHITESPACE
  49. )
  50. message(STATUS "Python site packages directory: ${PYTHON_SITE_PACKAGES}")
  51. install(TARGETS openfhe LIBRARY DESTINATION ${PYTHON_SITE_PACKAGES})