diff --git a/services/backup/CMakeLists.txt b/services/backup/CMakeLists.txt --- a/services/backup/CMakeLists.txt +++ b/services/backup/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT(backup C CXX) +PROJECT(backup CXX) cmake_minimum_required(VERSION 3.16) @@ -9,55 +9,69 @@ endif(COMMAND cmake_policy) set(CMAKE_CXX_STANDARD 17) +# For C++17 on MacOS, we must set minimum target to 10.14+ +set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14) set(BUILD_TESTING OFF CACHE BOOL "Turn off tests" FORCE) set(WITH_GTEST "Use Google Test" OFF) -# FIND LIBS -include(./cmake-components/grpc.cmake) -include(./cmake-components/folly.cmake) -add_subdirectory(./lib/glog) +find_package(glog REQUIRED) +find_package(protobuf REQUIRED) +find_package(gRPC REQUIRED) +find_package(Folly REQUIRED) find_package(AWSSDK REQUIRED COMPONENTS core dynamodb) -find_package(Boost 1.40 COMPONENTS program_options REQUIRED) - -# FIND FILES -file(GLOB DOUBLE_CONVERSION_SOURCES - "./lib/double-conversion/double-conversion/*.cc" +find_package(Boost 1.40 + COMPONENTS program_options context filesystem regex system thread + REQUIRED ) -file(GLOB GENERATED_CODE "./_generated/*.cc") +if(${CMAKE_CURRENT_SOURCE_DIR} MATCHES "^\/transferred.*") + # Inside the docker build contex + set(_proto_path "grpc") +else() + # Inside repo + set(_proto_path "../../native/cpp/CommonCpp/grpc") +endif() -file(GLOB_RECURSE SOURCE_CODE "./src/*.cpp") +# Shared Comm protos +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${_proto_path} + ${CMAKE_CURRENT_BINARY_DIR}/protos + EXCLUDE_FROM_ALL +) -include_directories( - ./src - ./src/client-base-reactors - ./src/server-base-reactors - ./src/grpc-client - ./src/DatabaseEntities - ./src/Reactors - ./src/Reactors/server - ./src/Reactors/server/base-reactors - ./src/Reactors/client - ./src/Reactors/client/blob - ./src/Reactors/client/base-reactors - ./_generated - ${FOLLY_INCLUDES} - ./lib/double-conversion - ${Boost_INCLUDE_DIR} +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../lib/src + ${CMAKE_CURRENT_BINARY_DIR}/lib/src + EXCLUDE_FROM_ALL ) +file(GLOB_RECURSE SOURCE_CODE "./src/*.cpp") + # SERVER add_executable( backup ${GENERATED_CODE} - ${DOUBLE_CONVERSION_SOURCES} ${FOLLY_SOURCES} ${SOURCE_CODE} ) +target_include_directories( + backup + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/src/grpc-client + ${CMAKE_CURRENT_SOURCE_DIR}/src/DatabaseEntities + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors/server + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors/server/base-reactors + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors/client + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors/client/blob + ${CMAKE_CURRENT_SOURCE_DIR}/src/Reactors/client/base-reactors + + ${Boost_INCLUDE_DIR} +) + set( LIBS @@ -65,6 +79,14 @@ ${AWSSDK_LINK_LIBRARIES} ${Boost_LIBRARIES} glog::glog + Folly::folly + gRPC::grpc++ + + comm-blob-grpc + comm-backup-grpc + comm-services-common + comm-client-base-reactors + comm-server-base-reactors ) target_link_libraries( @@ -94,7 +116,6 @@ runTests ${GENERATED_CODE} - ${DOUBLE_CONVERSION_SOURCES} ${FOLLY_SOURCES} ${SOURCE_CODE} ${TEST_CODE} diff --git a/services/backup/Dockerfile b/services/backup/Dockerfile --- a/services/backup/Dockerfile +++ b/services/backup/Dockerfile @@ -1,4 +1,4 @@ -FROM commapp/services-base:1.2 +FROM commapp/services-base:1.3 RUN apt-get update && \ apt-get install -y uuid-dev && \ @@ -12,12 +12,16 @@ WORKDIR /transferred -COPY native/cpp/CommonCpp/grpc/protos/backup.proto native/cpp/CommonCpp/grpc/protos/blob.proto protos/ -COPY services/lib/cmake-components cmake-components +COPY services/backup/ backup/ +COPY services/lib/src/ lib/src/ + +WORKDIR /transferred/backup + +COPY native/cpp/CommonCpp/grpc grpc/ COPY services/lib/docker/ scripts/ -COPY services/backup/ . -COPY services/lib/src/* src/ RUN scripts/build_service.sh +WORKDIR /transferred + CMD if [ "$COMM_TEST_SERVICES" -eq 1 ]; then scripts/run_tests.sh; else scripts/run_service.sh; fi diff --git a/services/backup/src/BackupServiceImpl.h b/services/backup/src/BackupServiceImpl.h --- a/services/backup/src/BackupServiceImpl.h +++ b/services/backup/src/BackupServiceImpl.h @@ -1,7 +1,7 @@ #pragma once -#include "../_generated/backup.grpc.pb.h" -#include "../_generated/backup.pb.h" +#include +#include #include diff --git a/services/backup/src/DatabaseEntities/DatabaseEntitiesTools.h b/services/backup/src/DatabaseEntities/DatabaseEntitiesTools.h deleted file mode 100644 --- a/services/backup/src/DatabaseEntities/DatabaseEntitiesTools.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "Item.h" - -#include "BackupItem.h" -#include "LogItem.h" - -#include -#include - -namespace comm { -namespace network { -namespace database { - -template std::shared_ptr createItemByType() { - static_assert(std::is_base_of::value, "T must inherit from Item"); - return std::make_shared(); -} - -} // namespace database -} // namespace network -} // namespace comm diff --git a/services/backup/src/DatabaseManager.h b/services/backup/src/DatabaseManager.h --- a/services/backup/src/DatabaseManager.h +++ b/services/backup/src/DatabaseManager.h @@ -1,8 +1,10 @@ #pragma once +#include "BackupItem.h" #include "DatabaseEntitiesTools.h" #include "DatabaseManagerBase.h" #include "DynamoDBTools.h" +#include "LogItem.h" #include #include diff --git a/services/backup/src/Reactors/client/blob/BlobGetClientReactor.h b/services/backup/src/Reactors/client/blob/BlobGetClientReactor.h --- a/services/backup/src/Reactors/client/blob/BlobGetClientReactor.h +++ b/services/backup/src/Reactors/client/blob/BlobGetClientReactor.h @@ -1,9 +1,9 @@ #pragma once -#include "../_generated/blob.grpc.pb.h" -#include "../_generated/blob.pb.h" +#include +#include -#include "ClientReadReactorBase.h" +#include #include #include diff --git a/services/backup/src/Reactors/server/PullBackupReactor.h b/services/backup/src/Reactors/server/PullBackupReactor.h --- a/services/backup/src/Reactors/server/PullBackupReactor.h +++ b/services/backup/src/Reactors/server/PullBackupReactor.h @@ -1,11 +1,13 @@ #pragma once +#include "BackupItem.h" #include "BlobGetClientReactor.h" #include "DatabaseEntitiesTools.h" +#include "LogItem.h" #include "ServiceBlobClient.h" -#include "../_generated/backup.grpc.pb.h" -#include "../_generated/backup.pb.h" +#include +#include #include "ServerWriteReactorBase.h" diff --git a/services/backup/src/grpc-client/ServiceBlobClient.h b/services/backup/src/grpc-client/ServiceBlobClient.h --- a/services/backup/src/grpc-client/ServiceBlobClient.h +++ b/services/backup/src/grpc-client/ServiceBlobClient.h @@ -3,8 +3,8 @@ #include "BlobGetClientReactor.h" #include "BlobPutClientReactor.h" -#include "../_generated/blob.grpc.pb.h" -#include "../_generated/blob.pb.h" +#include +#include #include