set(PACKAGE data_converters-ngpipes-cfradials)

message(STATUS ${PACKAGE})

include(FindProtobuf)
find_package(Protobuf REQUIRED)
find_package(gRPC REQUIRED)
find_package(vaisala-wr-common-dto REQUIRED)
find_package(vaisala-wr-input-dto REQUIRED)
find_package(vaisala-fire-data-manager REQUIRED)
find_package(spdlog REQUIRED)

set(PIPE_NAMES cfrnc2iris pb2cfrnc cfrnc2pb)
set(PIPE_NAMES_INPUT_DTO cfrnc2pb_input_dto)
set(SCRIPTS cfrnc2iris_focus.sh cfrnc_leosphere_fix.sh cfrnc_input_watchdog.sh)
set(SCRIPTS_INPUT_DTO cfrnc2iris_focus.sh cfrnc_leosphere_fix.sh cfrnc2pb_input_dto.sh cfrnc_input_watchdog.sh)
set(CONF_FILES cfrnc2iris.conf pb2cfrnc.conf cfrnc2pb.conf)
set(CONF_FILES_INPUT_DTO cfrnc2pb_input_dto.conf)
set(SERVICE_FILE cfrnc-input-watchdog.service)

include_directories(
                ${CMAKE_SOURCE_DIR}/ngpipes
                ${CMAKE_SOURCE_DIR}/ngpipes/data_manager_lib
                ${IRIS_INCLUDE}/data-manager
                ${IRIS_INCLUDE}/common-dto)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

link_libraries(wrdata sws-iris rscan-iris dl netcdf_c++4 netcdf boost_regex boost_date_time
        siglog boost_program_options boost_system boost_filesystem m user-iris himath-iris dsp-iris antenna-iris config-iris exthdr-iris misc-iris spdlog::spdlog)

add_executable(cfrad_read cfrad_read.cpp cfr2file.cpp cfr2sweep.cpp cfr2file.hpp cfr2sweep.hpp cfr2field.hpp ptime_strings.hpp cfr1data.hpp cfr1data.cpp)
add_executable(cfrnc2iris cfrnc2iris.cpp cfr2file.cpp cfr2sweep.cpp cfr2file.hpp cfr2sweep.hpp cfr2field.hpp volume_desc.hpp volume_state.hpp ptime_strings.hpp cfr1data.hpp cfr1data.cpp)

add_executable(pb2cfrnc pb2cfrnc.cpp)
target_link_libraries(pb2cfrnc vaisala-wr-common-dto::common-dto m z lz4 ${Boost_LIBRARIES} ${PROTOBUF_LIBRARIES})

add_executable(cfrnc2pb_input_dto cfrnc2pb_input_dto.cpp cfr2file.cpp cfr2sweep.cpp cfr2file.hpp cfr2sweep.hpp cfr2field.hpp volume_desc.hpp volume_state.hpp ptime_strings.hpp cfr1data.hpp cfr1data.cpp)
target_link_libraries(cfrnc2pb_input_dto vaisala-wr-input-dto::input-dto siglog ${Boost_LIBRARIES} m z lz4 ${PROTOBUF_LIBRARIES})

add_executable(cfrnc2pb cfrnc2pb.cpp cfr2file.cpp cfr2sweep.cpp cfr2file.hpp cfr2sweep.hpp cfr2field.hpp ptime_strings.hpp volume_desc.hpp volume_state.hpp cfr1data.hpp cfr1data.cpp )
target_link_libraries(cfrnc2pb vaisala-wr-common-dto::common-dto m z lz4 ${Boost_LIBRARIES} ${PROTOBUF_LIBRARIES} siglog)

add_executable(cfrnc2dm cfrnc2pb.cpp cfr2file.cpp cfr2sweep.cpp cfr2file.hpp cfr2sweep.hpp cfr2field.hpp ptime_strings.hpp volume_desc.hpp volume_state.hpp cfr1data.hpp cfr1data.cpp)
set_target_properties(cfrnc2dm PROPERTIES COMPILE_FLAGS "-DINTERFACE_TO_DM")
target_link_libraries(cfrnc2dm vaisala-wr-common-dto::common-dto data-manager data-manager-iris m z lz4
        ${Boost_LIBRARIES} ${PROTOBUF_LIBRARIES} siglog)

install(TARGETS ${PIPE_NAMES} DESTINATION ${IRIS_PIPES} COMPONENT netcdf)
install(PROGRAMS ${SCRIPTS} DESTINATION ${IRIS_PIPES} COMPONENT netcdf)
install(FILES ${CONF_FILES} DESTINATION ${IRIS_CONFIG_TMPL} COMPONENT netcdf)
install(FILES ${SERVICE_FILE} DESTINATION ${IRIS_SYSCONFDIR} COMPONENT netcdf)

install(TARGETS ${PIPE_NAMES_INPUT_DTO} DESTINATION ${IRIS_PIPES} COMPONENT netcdf-input-dto)
install(PROGRAMS ${SCRIPTS_INPUT_DTO} DESTINATION ${IRIS_PIPES} COMPONENT netcdf-input-dto)
install(FILES ${CONF_FILES_INPUT_DTO} DESTINATION ${IRIS_CONFIG_TMPL} COMPONENT netcdf-input-dto)
install(FILES ${SERVICE_FILE} DESTINATION ${IRIS_SYSCONFDIR} COMPONENT netcdf-input-dto)