Skip to content
Snippets Groups Projects
Forked from asapo / asapo
867 commits behind the upstream repository.
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)