Forked from
asapo / asapo
867 commits behind the upstream repository.
-
George Sedov authoredGeorge Sedov authored
CMakeLists.txt 6.77 KiB
set(TARGET_NAME receiver)
set(RECEIVER_CORE_FILES
src/connection.cpp
src/data_cache.cpp
src/receiver.cpp
src/request.cpp
src/receiver_config.cpp
src/receiver_logger.cpp
src/statistics/receiver_statistics.cpp
src/statistics/statistics.cpp
src/statistics/statistics_sender_influx_db.cpp
src/statistics/statistics_sender_fluentd.cpp
src/request_handler/requests_dispatcher.cpp
src/request_handler/request_handler_file_process.cpp
src/request_handler/request_handler_db_write.cpp
src/request_handler/request_handler_receive_data.cpp
src/request_handler/request_handler_authorize.cpp
src/request_handler/request_handler_initial_authorization.cpp
src/request_handler/request_handler_secondary_authorization.cpp
src/request_handler/authorization_client.cpp
src/request_handler/request_handler_db_meta_write.cpp
src/request_handler/request_handler_db_stream_info.cpp
src/request_handler/request_handler_db_last_stream.cpp
src/request_handler/request_handler_receive_metadata.cpp
src/request_handler/request_handler_db_check_request.cpp
src/request_handler/request_handler_db_delete_stream.cpp
src/request_handler/request_handler_db_get_meta.cpp
src/request_handler/request_handler_kafka_notify.cpp
src/request_handler/request_factory.cpp
src/request_handler/request_handler_db.cpp
src/request_handler/file_processors/write_file_processor.cpp
src/request_handler/file_processors/file_processor.cpp
src/request_handler/file_processors/receive_file_processor.cpp
src/metrics/receiver_prometheus_metrics.cpp
src/metrics/receiver_mongoose_server.cpp
)
set(RDS_FILES
src/receiver_data_server/net_server/fabric_rds_request.cpp
src/receiver_data_server/receiver_data_server.cpp
src/receiver_data_server/receiver_data_server_request.cpp
src/receiver_data_server/receiver_data_server_logger.cpp
src/receiver_data_server/net_server/rds_tcp_server.cpp
src/receiver_data_server/net_server/rds_fabric_server.cpp
src/receiver_data_server/request_handler/receiver_data_server_request_handler_factory.cpp
src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp
)
set(SOURCE_FILES
${RECEIVER_CORE_FILES}
${RDS_FILES}
)
################################
# Library
################################
GET_PROPERTY(ASAPO_COMMON_FABRIC_LIBRARIES GLOBAL PROPERTY ASAPO_COMMON_FABRIC_LIBRARIES)
add_library(${TARGET_NAME} STATIC ${SOURCE_FILES} $<TARGET_OBJECTS:system_io> $<TARGET_OBJECTS:curl_http_client>
$<TARGET_OBJECTS:json_parser> $<TARGET_OBJECTS:logger> $<TARGET_OBJECTS:request_pool> $<TARGET_OBJECTS:rdkafka_client>)
set_target_properties(${TARGET_NAME} PROPERTIES LINKER_LANGUAGE CXX)
target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR})
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${LIBFABRIC_INCLUDE_DIR})
target_link_libraries(${TARGET_NAME} CURL::libcurl rdkafka++ ${CMAKE_THREAD_LIBS_INIT} database
asapo-fabric ${ASAPO_COMMON_FABRIC_LIBRARIES})
add_executable(${TARGET_NAME}-bin src/main.cpp)
set_target_properties(${TARGET_NAME}-bin PROPERTIES OUTPUT_NAME ${TARGET_NAME})
target_link_libraries(${TARGET_NAME}-bin ${TARGET_NAME})
set_target_properties(${TARGET_NAME}-bin PROPERTIES RUNTIME_OUTPUT_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}$<$<CONFIG:Debug>:>
)
configure_file(docker/Dockerfile . COPYONLY)
configure_file(docker/install_libfabric.sh . COPYONLY)
################################
# Testing
################################
set_property(TARGET ${TARGET_NAME} PROPERTY ENABLE_EXPORTS true)
#
set(TEST_SOURCE_FILES
unittests/test_receiver.cpp
unittests/test_connection.cpp
unittests/statistics/test_statistics.cpp
unittests/statistics/test_receiver_statistics.cpp
unittests/test_config.cpp
unittests/test_request.cpp
unittests/request_handler/test_request_factory.cpp
unittests/request_handler/test_request_handler_file_process.cpp
unittests/request_handler/test_request_handler_db_writer.cpp
unittests/request_handler/test_request_handler_db_check_request.cpp
unittests/request_handler/test_request_handler_db_meta_writer.cpp
unittests/request_handler/test_request_handler_db_stream_info.cpp
unittests/request_handler/test_request_handler_db_last_stream.cpp
unittests/request_handler/test_request_handler_db.cpp
unittests/request_handler/test_authorization_client.cpp
unittests/request_handler/test_request_handler_initial_authorization.cpp
unittests/request_handler/test_request_handler_secondary_authorization.cpp
unittests/request_handler/test_request_handler_receive_data.cpp
unittests/request_handler/test_request_handler_receive_metadata.cpp
unittests/request_handler/test_request_handler_delete_stream.cpp
unittests/request_handler/test_request_handler_db_get_meta.cpp
unittests/request_handler/test_request_handler_kafka_notify.cpp
unittests/statistics/test_statistics_sender_influx_db.cpp
unittests/statistics/test_statistics_sender_fluentd.cpp
unittests/mock_receiver_config.cpp
unittests/request_handler/test_requests_dispatcher.cpp
unittests/test_datacache.cpp
unittests/request_handler/file_processors/test_write_file_processor.cpp
unittests/request_handler/file_processors/test_file_processor.cpp
unittests/request_handler/file_processors/test_receive_file_processor.cpp
)
#
set(TEST_LIBRARIES "${TARGET_NAME};system_io")
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}"
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/*.h
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/net_server/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/net_server/*.h
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/request_handler/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/receiver_data_server/request_handler/*.h
)
set(TEST_SOURCE_FILES_RDS
unittests/receiver_data_server/test_receiver_data_server.cpp
unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
unittests/receiver_data_server/net_server/test_rds_tcp_server.cpp
unittests/receiver_data_server/request_handler/test_request_handler_factory.cpp
unittests/receiver_data_server/request_handler/test_request_handler.cpp
)
gtest(${TARGET_NAME}_RDS "${TEST_SOURCE_FILES_RDS}" "${TEST_LIBRARIES}" nocov)