project(samplesink)

add_subdirectory(testsink)
add_subdirectory(fileoutput)
add_subdirectory(localoutput)
add_subdirectory(audiooutput)
add_subdirectory(aaroniartsaoutput)

if (CM256CC_FOUND AND (HAS_SSE3 OR HAS_NEON))
    add_subdirectory(remoteoutput)
else()
    message(STATUS "Not building remoteoutput (CM256CC_FOUND=${CM256CC_FOUND} HAS_SSE3=${HAS_SSE3} HAS_NEON=${HAS_NEON})")
endif()

if(ENABLE_BLADERF AND LIBBLADERF_FOUND)
    add_subdirectory(bladerf1output)
    add_subdirectory(bladerf2output)
else()
    message(STATUS "Not building bladerf1output or bladerf2output (ENABLE_BLADERF=${ENABLE_BLADERF} LIBBLADERF_FOUND=${LIBBLADERF_FOUND})")
endif()

if(ENABLE_HACKRF AND LIBHACKRF_FOUND)
    add_subdirectory(hackrfoutput)
else()
    message(STATUS "Not building hackrfoutput (ENABLE_HACKRF=${ENABLE_HACKRF} LIBHACKRF_FOUND=${LIBHACKRF_FOUND})")
endif()

if(ENABLE_LIMESUITE AND LIMESUITE_FOUND)
    add_subdirectory(limesdroutput)
else()
    message(STATUS "Not building limesdroutput (ENABLE_LIMESUITE=${ENABLE_LIMESUITE} LIMESUITE_FOUND=${LIMESUITE_FOUND})")
endif()

if(ENABLE_XTRX AND LIBXTRX_FOUND)
    add_subdirectory(xtrxoutput)
else()
    message(STATUS "Not building xtrxoutput (ENABLE_XTRX=${ENABLE_XTRX} LIBXTRX_FOUND=${LIBXTRX_FOUND})")
endif()

if(ENABLE_IIO AND LIBIIO_FOUND)
    add_subdirectory(plutosdroutput)
else()
    message(STATUS "Not building plutosdroutput (ENABLE_IIO=${ENABLE_IIO} LIBIIO_FOUND=${LIBIIO_FOUND})")
endif()

if(ENABLE_SOAPYSDR AND SOAPYSDR_FOUND)
    add_subdirectory(soapysdroutput)
else()
    message(STATUS "Not building soapysdroutput (ENABLE_SOAPYSDR=${ENABLE_SOAPYSDR} SOAPYSDR_FOUND=${SOAPYSDR_FOUND})")
endif()

if(ENABLE_USRP AND UHD_FOUND)
    add_subdirectory(usrpoutput)
else()
    message(STATUS "Not building usrpoutput (ENABLE_USRP=${ENABLE_USRP} UHD_FOUND=${UHD_FOUND})")
endif()
