From 7e289848e4d973abb8976bf8f69fb0ede54c6478 Mon Sep 17 00:00:00 2001 From: Bhatu <prbhatu@microsoft.com> Date: Mon, 11 Jan 2021 02:30:15 +0530 Subject: [PATCH] Always checkout Eigen3 and SEAL while building SCI Locally check them out in extern/ directory so that programs can be linked against SCI without manually putting them in the networks directory and modifying the CMake file. See CompileTFGraph.py for seeing how to build and link programs directly. --- SCI/src/LinearHE/CMakeLists.txt | 55 +++++++++++++++------------------ 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/SCI/src/LinearHE/CMakeLists.txt b/SCI/src/LinearHE/CMakeLists.txt index cf1f91f..775b7c1 100644 --- a/SCI/src/LinearHE/CMakeLists.txt +++ b/SCI/src/LinearHE/CMakeLists.txt @@ -1,15 +1,13 @@ find_package(OpenMP REQUIRED) # set(CMAKE_FIND_DEBUG_MODE 1) -find_package(SEAL 3.3.2 EXACT QUIET) -if (NOT SEAL_FOUND) - message(STATUS "SEAL 3.3.2 was not found: clone and install SEAL locally") - if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/SEAL/native/src/CMakeLists.txt") - find_package(Git REQUIRED) - message(STATUS "initialize Git submodule: extern/SEAL") - execute_process(COMMAND git submodule update --init --recursive extern/SEAL - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - endif () +message(STATUS "SEAL 3.3.2 was not found: clone and install SEAL locally") +if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/SEAL/native/src/CMakeLists.txt") + find_package(Git REQUIRED) + message(STATUS "initialize Git submodule: extern/SEAL") + execute_process(COMMAND git submodule update --init --recursive extern/SEAL + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") +endif () if(APPLE) execute_process(COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/build . -DCMAKE_C_COMPILER=${MAC_GCC} -DCMAKE_CXX_COMPILER=${MAC_GPP} @@ -18,29 +16,26 @@ else () execute_process(COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/build . WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/SEAL/native/src") endif() - execute_process(COMMAND ${CMAKE_COMMAND} --build . --target install - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/SEAL/native/src") - find_package(SEAL 3.3.2 EXACT REQUIRED PATHS "${PROJECT_SOURCE_DIR}/build/") -endif () +execute_process(COMMAND ${CMAKE_COMMAND} --build . --target install + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/SEAL/native/src") +find_package(SEAL 3.3.2 EXACT REQUIRED PATHS "${PROJECT_SOURCE_DIR}/build/") -find_package(Eigen3 3.3 NO_MODULE QUIET) -if (NOT Eigen3_FOUND) - message(STATUS "Eigen 3.3 was not found: clone and install Eigen3 locally") - if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/eigen/CMakeLists.txt") - find_package(Git REQUIRED) - message(STATUS "initialize Git submodule: extern/eigen") - execute_process(COMMAND git submodule update --init --recursive extern/eigen - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - endif () - execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory build - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/") - execute_process(COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/build .. - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/build") - execute_process(COMMAND ${CMAKE_COMMAND} --build .. --target install - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/build") - message(STATUS "${PROJECT_SOURCE_DIR}") - find_package(Eigen3 3.3 REQUIRED NO_MODULE PATHS "${PROJECT_SOURCE_DIR}/build/") +message(STATUS "Eigen 3.3 was not found: clone and install Eigen3 locally") +if (NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/eigen/CMakeLists.txt") + find_package(Git REQUIRED) + message(STATUS "initialize Git submodule: extern/eigen") + execute_process(COMMAND git submodule update --init --recursive extern/eigen + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") endif () +execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory build + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/") +execute_process(COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/build .. + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/build") +execute_process(COMMAND ${CMAKE_COMMAND} --build .. --target install + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/extern/eigen/build") +message(STATUS "${PROJECT_SOURCE_DIR}") +find_package(Eigen3 3.3 REQUIRED NO_MODULE PATHS "${PROJECT_SOURCE_DIR}/build/") + add_library(SCI-LinearHE conv-field.cpp -- GitLab