diff --git a/services/backup/CMakeLists.txt b/services/backup/CMakeLists.txt index 9169788b4..356836a28 100644 --- a/services/backup/CMakeLists.txt +++ b/services/backup/CMakeLists.txt @@ -1,140 +1,136 @@ PROJECT(backup CXX) cmake_minimum_required(VERSION 3.16) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) 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) 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 context filesystem regex system thread REQUIRED ) # Rust integration find_package(Corrosion REQUIRED) -if(${CMAKE_CURRENT_SOURCE_DIR} MATCHES "^\/transferred.*") - # Inside the docker build contex - set(_proto_path "grpc") - include(cmake-components/corrosion-cxx.cmake) -else() - # Inside repo - set(_proto_path "../../shared/protos") - include(../../shared/cmake/corrosion-cxx.cmake) -endif() +set(_shared_path "../../shared") +set(_proto_path "${_shared_path}/protos") +set(_shared_cmake "${_shared_path}/cmake") + +include(${_shared_cmake}/corrosion-cxx.cmake) # Shared Comm protos add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${_proto_path} ${CMAKE_CURRENT_BINARY_DIR}/protos EXCLUDE_FROM_ALL ) 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 ${SOURCE_CODE} ) add_library_rust(PATH blob_client NAMESPACE backup) set(INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src ${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 ${Boost_INCLUDE_DIR} ) target_include_directories( backup PUBLIC ${INCLUDE_DIRS} ) set( LIBS ${GRPC_LIBS} ${AWSSDK_LINK_LIBRARIES} ${Boost_LIBRARIES} glog::glog Folly::folly gRPC::grpc++ comm-blob-grpc comm-backup-grpc comm-services-common comm-server-base-reactors backup::blob_client ) target_link_libraries( backup ${LIBS} ) install( TARGETS backup RUNTIME DESTINATION bin/ ) # TEST option(BUILD_TESTING "Turn off tests" ON) if (BUILD_TESTING) file(GLOB TEST_CODE "./test/*.cpp") list(FILTER SOURCE_CODE EXCLUDE REGEX "./src/server.cpp") enable_testing() find_package(GTest CONFIG REQUIRED) include_directories( ${GTEST_INCLUDE_DIR} ./test ) add_executable( runTests ${SOURCE_CODE} ${TEST_CODE} ) target_include_directories( runTests PUBLIC ${INCLUDE_DIRS} ) target_link_libraries( runTests ${LIBS} GTest::gtest_main ) include(GoogleTest) gtest_discover_tests(runTests) endif() diff --git a/services/backup/Dockerfile b/services/backup/Dockerfile index dc68b1a0a..c25ef6121 100644 --- a/services/backup/Dockerfile +++ b/services/backup/Dockerfile @@ -1,29 +1,30 @@ FROM commapp/services-base:1.3.2 RUN apt-get update && \ apt-get install -y uuid-dev && \ rm -rf /var/lib/apt/lists/* ARG COMM_TEST_SERVICES ARG COMM_SERVICES_SANDBOX ENV COMM_TEST_SERVICES=${COMM_TEST_SERVICES} ENV COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} -WORKDIR /transferred/backup +# install rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + +WORKDIR /transferred/services/backup COPY services/lib/docker/ scripts/ -# install rust -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y RUN scripts/install_corrosion.sh -ADD shared/protos grpc -COPY shared/cmake cmake-components/ +ADD shared/protos /transferred/shared/protos/ +ADD shared/cmake /transferred/shared/cmake/ -COPY services/backup/ /transferred/backup/ -COPY services/lib/src/ /transferred/lib/src/ +COPY services/backup/ /transferred/services/backup/ +COPY services/lib/src/ /transferred/services/lib/src/ RUN scripts/build_service.sh CMD if [ "$COMM_TEST_SERVICES" -eq 1 ]; then scripts/run_tests.sh; else scripts/run_service.sh; fi diff --git a/services/backup/blob_client/build.rs b/services/backup/blob_client/build.rs index 08bb18f3d..0d5efe2cf 100644 --- a/services/backup/blob_client/build.rs +++ b/services/backup/blob_client/build.rs @@ -1,24 +1,10 @@ -use regex::Regex; -use std::env::current_dir; +const PROTO_DIR: &'static str = "../../../shared/protos"; -fn main() -> Result<(), Box> { +fn main() -> Result<(), std::io::Error> { let _build = cxx_build::bridge("src/lib.rs").flag_if_supported("-std=c++17"); println!("cargo:rerun-if-changed=src/lib.rs"); - let is_in_docker_regex = Regex::new(r"^/transferred.*").unwrap(); - let proto_path = if is_in_docker_regex.is_match( - ¤t_dir() - .unwrap() - .into_os_string() - .into_string() - .unwrap(), - ) { - "../grpc" - } else { - "../../../shared/protos" - }; - - tonic_build::compile_protos(format!("{}/blob.proto", proto_path))?; + tonic_build::compile_protos(format!("{}/blob.proto", PROTO_DIR))?; Ok(()) }