find_package(Boost 1.53.0
    COMPONENTS
        filesystem
        program_options
        unit_test_framework
    REQUIRED)

add_library(zone-client-cfg STATIC
    src/cfg.cc)

add_library(ZoneClientCfg::library ALIAS zone-client-cfg)

target_link_libraries(zone-client-cfg
PUBLIC
    Boost::program_options
PRIVATE
    LibLog::library)

add_library(dnshosting-client STATIC
    dnshosting/grpc/get_records_by_domains.cc
    dnshosting/grpc/unwrapper.cc)

add_library(DnshostingClient::library ALIAS dnshosting-client)

target_link_libraries(dnshosting-client
PUBLIC
    LibStrong::library
PRIVATE
    FredDnshostingServicesIface::library
    LibLog::library)

add_executable(fred-zone-generator
    src/generate_zone.cc
    src/get_zone_data.cc
    src/get_zones_to_generate.cc
    src/hook_exec.cc
    src/main.cc
    src/unwrap_get_zone_data.cc
    src/unwrap_get_zone_list.cc)

set_common_properties_on_targets(
    dnshosting-client
    zone-client-cfg
    fred-zone-generator)

target_link_libraries(fred-zone-generator PRIVATE
    Boost::filesystem
    DnshostingClient::library
    FredZoneServicesIface::library
    LibLog::library
    ZoneClientCfg::library
    ZoneLib::library)

install(TARGETS fred-zone-generator
    DESTINATION ${CMAKE_INSTALL_SBINDIR})

add_executable(unit-test-client
    test/main.cc
    test/test_txt_record.cc)

target_compile_features(unit-test-client PRIVATE cxx_decltype_auto)

#Set target properties
target_include_directories(unit-test-client
PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/..)

target_link_libraries(unit-test-client PRIVATE
    DnshostingClient::library
    Boost::unit_test_framework)
