cmake_minimum_required(VERSION 3.5)

find_package(Boost 1.53.0
    COMPONENTS
        program_options
        unit_test_framework
    REQUIRED)

find_package(nlohmann_json 3.7.3 REQUIRED)

add_executable(cdnskey-processor-db-loader
    db_loader/cfg/options.cc
    db_loader/main.cc
    db_loader/import.cc)

target_include_directories(cdnskey-processor-db-loader
    PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}
        ${CMAKE_CURRENT_BINARY_DIR}/..)

target_compile_features(cdnskey-processor-db-loader PRIVATE cxx_decltype_auto)

set_target_properties(cdnskey-processor-db-loader PROPERTIES
    CXX_STANDARD 14
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS NO
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")

target_compile_options(cdnskey-processor-db-loader
    PRIVATE
        $<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -ggdb -grecord-gcc-switches>)

target_link_libraries(cdnskey-processor-db-loader
    PRIVATE
        Boost::program_options
        CdnskeyProcessorStorage::library
        LibLog::library
        LibPg::library
        nlohmann_json::nlohmann_json)

add_executable(rabbit-client
    rabbit-client.cc)
    
target_include_directories(rabbit-client
    PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}
        ${CMAKE_CURRENT_BINARY_DIR}/..
        ${EVENT_CORE_INCLUDE_DIRS})
    
target_compile_features(rabbit-client PRIVATE cxx_decltype_auto)

set_target_properties(rabbit-client PROPERTIES
    CXX_STANDARD 14
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS NO
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")

target_compile_options(rabbit-client
    PRIVATE
        $<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -ggdb -grecord-gcc-switches>
        ${EVENT_CORE_CFLAGS_OTHER})

target_link_libraries(rabbit-client
    PRIVATE
        amqpcpp
        pthread
        ${EVENT_CORE_LINK_LIBRARIES})
    