diff --git a/services/tunnelbroker/CMakeLists.txt b/services/tunnelbroker/CMakeLists.txt --- a/services/tunnelbroker/CMakeLists.txt +++ b/services/tunnelbroker/CMakeLists.txt @@ -16,6 +16,7 @@ message(STATUS "Using protobuf ${Protobuf_VERSION}") set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf) +set(_REFLECTION gRPC::grpc++_reflection) set(_PROTOBUF_PROTOC $) # gRPC building parameters @@ -59,8 +60,31 @@ add_subdirectory(./lib/glog) +# 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}" +) + file(GLOB SOURCE_CODE "./src/*.cpp" "./src/**/*.cpp") -file(GLOB GENERATED_CODE "./_generated/*.cc") +set(GENERATED_CODE ${proto_srcs} ${proto_hdrs} ${grpc_srcs} ${grpc_hdrs}) file(GLOB DOUBLE_CONVERSION_SOURCES "./lib/double-conversion/double-conversion/*.cc") add_definitions( @@ -78,7 +102,7 @@ ./src/Service ./src/Tools ./src/Amqp - ./_generated + ${GENERATED_BASE_DIR} ./lib/folly ./lib/double-conversion ${Boost_INCLUDE_DIR} @@ -89,7 +113,7 @@ set( SOURCE_CODE - + # folly ./lib/folly/folly/detail/Futex.cpp ./lib/folly/folly/synchronization/ParkingLot.cpp @@ -138,7 +162,7 @@ ${_GRPC_GRPCPP} ${_PROTOBUF_LIBPROTOBUF} - gRPC::grpc++_reflection + ${_REFLECTION} ${AWSSDK_LINK_LIBRARIES} ${AMQPCPP_LIBRARIES} ${CRYPTOPP_LIBRARIES} @@ -184,7 +208,7 @@ ) target_link_libraries( runTests - + ${LIBS} gtest gtest_main diff --git a/services/tunnelbroker/Dockerfile b/services/tunnelbroker/Dockerfile --- a/services/tunnelbroker/Dockerfile +++ b/services/tunnelbroker/Dockerfile @@ -5,6 +5,9 @@ RUN apk update RUN apk add curl-dev openssl-dev zlib-dev +ARG MAKE_JOBS=4 +ENV MAKEFLAGS="-j${MAKE_JOBS}" + RUN mkdir /transferred/scripts WORKDIR /transferred/scripts diff --git a/services/tunnelbroker/build.sh b/services/tunnelbroker/build.sh deleted file mode 100755 --- a/services/tunnelbroker/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -set -e - -NPROC=0 - -NPROC=$(nproc 2> /dev/null || echo 1) -if [[ $NPROC -eq 1 ]] -then - NPROC=$(sysctl -n hw.physicalcpu 2> /dev/null || echo 1) -fi - -echo "building the server (nproc=$NPROC)..." - -pushd cmake/build -cmake ../.. -make -j $NPROC - -popd - -echo "success - server built" diff --git a/services/tunnelbroker/docker/build_server.sh b/services/tunnelbroker/docker/build_server.sh --- a/services/tunnelbroker/docker/build_server.sh +++ b/services/tunnelbroker/docker/build_server.sh @@ -13,11 +13,11 @@ ln -s /usr/lib/double-conversion popd # lib -rm -rf _generated -mkdir _generated - rm -rf cmake/build mkdir -p cmake/build -./generate.sh -./build.sh +echo "building the server (MAKEFLAGS=$MAKEFLAGS)..." +pushd cmake/build +cmake ../.. +make +popd # cmake/build diff --git a/services/tunnelbroker/generate.sh b/services/tunnelbroker/generate.sh deleted file mode 100755 --- a/services/tunnelbroker/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -echo "generating files from protos..." - -protoc -I=./protos --cpp_out=_generated --grpc_out=_generated --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` ./protos/tunnelbroker.proto - -echo "success - code generated from protos" 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 <_generated/tunnelbroker.grpc.pb.h> +#include <_generated/tunnelbroker.pb.h> #include