blob: 0c0849d10f9ffdf2f28052caf0babda0c6eadc41 [file] [log] [blame]
set(_dumpstate_CXX_FLAGS -Wall -Werror -std=c++17)
include(${trout_SRC_ROOT}/cmake/googletest.cmake)
include(${trout_SRC_ROOT}/cmake/grpc.cmake)
include(${trout_SRC_ROOT}/cmake/protobuf.cmake)
include(${trout_SRC_ROOT}/cmake/utils/grpc_cpp_generator.cmake)
find_package(LibXml2 REQUIRED)
get_filename_component(dumpstate_SRC_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE)
if (NOT trout_GENS_DIR)
set(trout_GENS_DIR ${PROJECT_BINARY_DIR}/gens)
endif()
trout_generate_grpc_cpp_from_proto(
SRCS
${dumpstate_SRC_ROOT}/proto/DumpstateServer.proto)
# ========== Protobuf generated code ==================
add_library(dumpstate_protobuf_gen
${trout_GENS_DIR}/DumpstateServer.pb.cc
${trout_GENS_DIR}/DumpstateServer.grpc.pb.cc
)
target_link_libraries(dumpstate_protobuf_gen
${trout_GRPCXX_LIBRARIES}
)
target_compile_options(dumpstate_protobuf_gen PRIVATE ${_dumpstate_CXX_FLAGS} -Wno-array-bounds)
# ========== dumpstate_grpc_server ==============
set(_dumpstate_sources
${dumpstate_SRC_ROOT}/DumpstateServer.cpp
${dumpstate_SRC_ROOT}/DumpstateGrpcServer.cpp
${dumpstate_SRC_ROOT}/ServiceDescriptor.cpp
${dumpstate_SRC_ROOT}/ServiceSupplier.cpp
${dumpstate_SRC_ROOT}/config/dumpstate_hal_configuration_V1_0.cpp
${dumpstate_SRC_ROOT}/config/XmlServiceSupplier.cpp
)
add_executable(dumpstate_grpc_server
${_dumpstate_sources}
${dumpstate_SRC_ROOT}/server_main.cpp
)
target_include_directories(dumpstate_grpc_server
PRIVATE ${trout_GENS_DIR}
${dumpstate_SRC_ROOT}
${LIBXML2_INCLUDE_DIR}
)
target_link_libraries(dumpstate_grpc_server
dumpstate_protobuf_gen
${LIBXML2_LIBRARIES}
)
target_compile_options(dumpstate_grpc_server PRIVATE ${_dumpstate_CXX_FLAGS})
add_executable(dumpstate_tests
${_dumpstate_sources}
${dumpstate_SRC_ROOT}/tests/test_main.cpp
${dumpstate_SRC_ROOT}/tests/tests.cpp
)
target_include_directories(dumpstate_tests
PRIVATE ${trout_GENS_DIR}
${dumpstate_SRC_ROOT}
${LIBXML2_INCLUDE_DIR}
)
target_link_libraries(dumpstate_tests
dumpstate_protobuf_gen
${trout_GOOGLETEST_LIBRARIES}
${LIBXML2_LIBRARIES}
)
target_compile_options(dumpstate_tests PRIVATE ${_dumpstate_CXX_FLAGS})