diff --git a/services/tunnelbroker/CMakeLists.txt b/services/tunnelbroker/CMakeLists.txt --- a/services/tunnelbroker/CMakeLists.txt +++ b/services/tunnelbroker/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT(tunnelbroker C CXX) +PROJECT(tunnelbroker-service C CXX) cmake_minimum_required(VERSION 3.16) @@ -11,13 +11,11 @@ set(CMAKE_CXX_STANDARD 17) find_package(PkgConfig REQUIRED) - find_package(double-conversion REQUIRED) find_package(Folly REQUIRED) find_package(protobuf REQUIRED) find_package(gRPC REQUIRED) - -# Find AMQP-CPP installation +find_package(glog) find_package(amqpcpp CONFIG REQUIRED) # Find Cryptopp installation @@ -31,7 +29,7 @@ set(proto-path "grpc") else() # Inside repo - set(proto-path "../../native/cpp/") + set(proto-path "../../native/cpp/CommonCpp/grpc") endif() # Shared Comm protos @@ -53,46 +51,19 @@ set(RUST_HEADERS_INCLUDE_DIR "rust-notifications/extern") set(RUST_LIBS "rust-notifications") -find_package(glog) +file(GLOB_RECURSE SOURCE_CODE "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") +file(GLOB COMMON_CODE "${CMAKE_CURRENT_SOURCE_DIR}/../lib/src/*.cpp") -# Generated sources -get_filename_component(proto "protos/tunnelbroker.proto" ABSOLUTE) -get_filename_component(proto_path "${proto}" PATH) - -set(GENERATED_BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/gen") -set(GENERATED_CODE_DIR "${GENERATED_BASE_DIR}/_generated") -file(MAKE_DIRECTORY ${GENERATED_CODE_DIR}) - -set(_proto_srcs "${GENERATED_CODE_DIR}/tunnelbroker.pb.cc") -set(_proto_hdrs "${GENERATED_CODE_DIR}/tunnelbroker.pb.h") -set(_grpc_srcs "${GENERATED_CODE_DIR}/tunnelbroker.grpc.pb.cc") -set(_grpc_hdrs "${GENERATED_CODE_DIR}/tunnelbroker.grpc.pb.h") -add_custom_command( - OUTPUT "${_proto_srcs}" "${_proto_hdrs}" "${_grpc_srcs}" "${_grpc_hdrs}" - COMMAND ${_PROTOBUF_PROTOC} - ARGS --grpc_out "${GENERATED_CODE_DIR}" - --cpp_out "${GENERATED_CODE_DIR}" - -I "${proto_path}" - --plugin=protoc-gen-grpc="${_GRPC_CPP_PLUGIN_EXECUTABLE}" - "${proto}" - DEPENDS "${proto}" - COMMENT "Generate protobuf files" -) +set(INCLUDE_DIRS + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/src/Database + ${CMAKE_CURRENT_SOURCE_DIR}/src/DeliveryBroker + ${CMAKE_CURRENT_SOURCE_DIR}/src/Service + ${CMAKE_CURRENT_SOURCE_DIR}/src/Tools + ${CMAKE_CURRENT_SOURCE_DIR}/src/Amqp -file(GLOB_RECURSE SOURCE_CODE "./src/*.cpp") -set(GENERATED_CODE ${_proto_srcs} ${_proto_hdrs} ${_grpc_srcs} ${_grpc_hdrs}) -file(GLOB DOUBLE_CONVERSION_SOURCES - "./lib/double-conversion/double-conversion/*.cc" -) + ${CMAKE_CURRENT_SOURCE_DIR}/../lib/src -include_directories( - ./src - ./src/Database - ./src/DeliveryBroker - ./src/Service - ./src/Tools - ./src/Amqp - ${GENERATED_BASE_DIR} ${Boost_INCLUDE_DIR} ${CRYPTOPP_INCLUDE_DIRS} ${LIBUV_INCLUDE_DIRS} @@ -105,6 +76,7 @@ ${DOUBLE_CONVERSION_SOURCES} ${GENERATED_CODE} ${SOURCE_CODE} + ${COMMON_CODE} ) set( @@ -122,11 +94,13 @@ glog::glog double-conversion::double-conversion Folly::folly + + comm-tunnelbroker-grpc ) # SERVER add_executable( - tunnelbroker + tunnelbroker-service ${FOLLY_SOURCES} ${GENERATED_CODE} @@ -134,13 +108,19 @@ ) target_link_libraries( - tunnelbroker + tunnelbroker-service ${LIBS} ) +target_include_directories( + tunnelbroker-service + PUBLIC + ${INCLUDE_DIRS} +) + install( - TARGETS tunnelbroker + TARGETS tunnelbroker-service RUNTIME DESTINATION bin/ ) @@ -168,6 +148,12 @@ gtest_main ) + target_include_directories( + runTests + PUBLIC + ${INCLUDE_DIRS} + ) + add_test( NAME runTests COMMAND runTests diff --git a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h b/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h deleted file mode 100644 --- a/services/tunnelbroker/src/Database/DatabaseEntitiesTools.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "DeviceSessionItem.h" -#include "Item.h" -#include "MessageItem.h" -#include "PublicKeyItem.h" -#include "SessionSignItem.h" - -#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/tunnelbroker/src/Database/DatabaseManager.h b/services/tunnelbroker/src/Database/DatabaseManager.h --- a/services/tunnelbroker/src/Database/DatabaseManager.h +++ b/services/tunnelbroker/src/Database/DatabaseManager.h @@ -4,6 +4,10 @@ #include "Constants.h" #include "DatabaseEntitiesTools.h" #include "DatabaseManagerBase.h" +#include "DeviceSessionItem.h" +#include "MessageItem.h" +#include "PublicKeyItem.h" +#include "SessionSignItem.h" #include "Tools.h" #include diff --git a/services/tunnelbroker/src/Service/TunnelbrokerServiceImpl.h b/services/tunnelbroker/src/Service/TunnelbrokerServiceImpl.h --- a/services/tunnelbroker/src/Service/TunnelbrokerServiceImpl.h +++ b/services/tunnelbroker/src/Service/TunnelbrokerServiceImpl.h @@ -1,7 +1,7 @@ #pragma once -#include <_generated/tunnelbroker.grpc.pb.h> -#include <_generated/tunnelbroker.pb.h> +#include +#include #include