function(osqoop_datasource_plugin _target _files)
    add_definitions(-DQT_PLUGIN)
    add_library(${_target} MODULE ${_files})
    target_link_libraries(${_target} Qt5::Widgets Qt5::Core)
    install(TARGETS ${_target} DESTINATION share/osqoop/datasource)
endfunction()

include_directories (${CMAKE_SOURCE_DIR}/src)
osqoop_datasource_plugin(VariousSinus VariousSinus/VariousSinus.cpp)
osqoop_datasource_plugin(Dds Dds/Dds.cpp)
osqoop_datasource_plugin(SoundCard SoundCard/SoundCard.cpp)

if (LibUSB_FOUND OR WIN32)
    add_definitions(-DQT_PLUGIN)
    set(TseAdExt_SRCS TseAdExt/CypressEzUSBDevice.cpp TseAdExt/TseAdExt.cpp)
    if (WIN32)
        qt5_add_resources(res_SRCS TsaAdExt/FirmwareBix.qrc)
        set(TseAdExt_SRCS ${TseAdExt_SRCS} ${res_SRCS})
    else (WIN32)
        set(EXTRA_LIBS ${LibUSB_LIBRARIES})
    endif (WIN32)
    add_library(TseAdExt MODULE ${TseAdExt_SRCS})
    target_link_libraries(TseAdExt ${EXTRA_LIBS} Qt5::Core Qt5::Widgets)
    install(TARGETS TseAdExt DESTINATION share/osqoop/datasource)
endif (LibUSB_FOUND OR WIN32)
