Added cmake enablers for all non sampling device plugins. Fixes #1308

This commit is contained in:
f4exb 2022-06-25 11:56:45 +02:00
parent c4177efc14
commit d2951627f4
6 changed files with 282 additions and 68 deletions

View File

@ -29,6 +29,8 @@ option(HIDE_CONSOLE "Hide console when running GUI on Windows" ON)
option(BUNDLE "Enable distribution bundle" OFF)
set(ARCH_OPT "native" CACHE STRING "Specify instruction set to use. Will be passed directly as `-march` or `/arch:` argument on supported compilers. \
'native' option will figure out host machine compatibilities and set flags accordingly (even with MSVC).")
# Sampling devices enablers
option(ENABLE_AIRSPY "Enable AirSpy support" ON)
option(ENABLE_AIRSPYHF "Enable AirSpyHF support" ON)
option(ENABLE_BLADERF "Enable bladeRF support" ON)
@ -44,6 +46,82 @@ option(ENABLE_SOAPYSDR "Enable SoapySDR support" ON)
option(ENABLE_XTRX "Enable XTRX support" ON)
option(ENABLE_PACK_MIRSDRAPI "Enable inclusion of the mirsdr-api library - for personal use only" OFF)
option(ENABLE_USRP "Enable USRP support" ON)
# Channel Rx enablers
option(ENABLE_CHANNELRX, "Enable channelrx plugins" ON)
option(ENABLE_CHANNELRX_DEMODADSB "Enable channelrx demodadsb plugin" ON)
option(ENABLE_CHANNELRX_DEMODAM "Enable channelrx demodam plugin" ON)
option(ENABLE_CHANNELRX_DEMODDATV "Enable channelrx demoddatv plugin" ON)
option(ENABLE_CHANNELRX_RADIOCLOCK "Enable channelrx radioclock plugin" ON)
option(ENABLE_CHANNELRX_RADIOASTRONOMY "Enable channelrx radioastronomy plugin" ON)
option(ENABLE_CHANNELRX_DEMODRADIOSONDE "Enable channelrx demodradiosonde plugin" ON)
option(ENABLE_CHANNELRX_FREQTRACKER "Enable channelrx freqtracker plugin" ON)
option(ENABLE_CHANNELRX_DEMODATV "Enable channelrx demodatv plugin" ON)
option(ENABLE_CHANNELRX_DEMODPAGER "Enable channelrx demodpager plugin" ON)
option(ENABLE_CHANNELRX_DEMODDAB "Enable channelrx demoddab plugin" ON)
option(ENABLE_CHANNELRX_UDPSINK "Enable channelrx udpsink plugin" ON)
option(ENABLE_CHANNELRX_DEMODAIS "Enable channelrx demodais plugin" ON)
option(ENABLE_CHANNELRX_DEMODNFM "Enable channelrx demodnfm plugin" ON)
option(ENABLE_CHANNELRX_FILESINK "Enable channelrx filesink plugin" ON)
option(ENABLE_CHANNELRX_DEMODFREEDV "Enable channelrx demodfreedv plugin" ON)
option(ENABLE_CHANNELRX_DEMODCHIRPCHAT "Enable channelrx demodchirpchat plugin" ON)
option(ENABLE_CHANNELRX_REMOTESINK "Enable channelrx remotesink plugin" ON)
option(ENABLE_CHANNELRX_DEMODSSB "Enable channelrx demodssb plugin" ON)
option(ENABLE_CHANNELRX_CHANALYZER "Enable channelrx chanalyzer plugin" ON)
option(ENABLE_CHANNELRX_SIGMFFILESINK "Enable channelrx sigmffilesink plugin" ON)
option(ENABLE_CHANNELRX_DEMODBFM "Enable channelrx demodbfm plugin" ON)
option(ENABLE_CHANNELRX_DEMODWFM "Enable channelrx demodwfm plugin" ON)
option(ENABLE_CHANNELRX_NOISEFIGURE "Enable channelrx noisefigure plugin" ON)
option(ENABLE_CHANNELRX_DEMODVOR "Enable channelrx demodvor plugin" ON)
option(ENABLE_CHANNELRX_LOCALSINK "Enable channelrx localsink plugin" ON)
option(ENABLE_CHANNELRX_DEMODPACKET "Enable channelrx demodpacket plugin" ON)
option(ENABLE_CHANNELRX_DEMODAPT "Enable channelrx demodapt plugin" ON)
option(ENABLE_CHANNELRX_DEMODDSD "Enable channelrx demoddsd plugin" ON)
# Channel Tx enablers
option(ENABLE_CHANNELTX, "Enable channeltx plugins" ON)
option(ENABLE_CHANNELTX_MODNFM "Enable channeltx modnfm plugin" ON)
option(ENABLE_CHANNELTX_MODAIS "Enable channeltx modais plugin" ON)
option(ENABLE_CHANNELTX_LOCALSOURCE "Enable channeltx localsource plugin" ON)
option(ENABLE_CHANNELTX_MODDATV "Enable channeltx moddatv plugin" ON)
option(ENABLE_CHANNELTX_MODAM "Enable channeltx modam plugin" ON)
option(ENABLE_CHANNELTX_MODFREEDV "Enable channeltx modfreedv plugin" ON)
option(ENABLE_CHANNELTX_MODPACKET "Enable channeltx modpacket plugin" ON)
option(ENABLE_CHANNELTX_MODSSB "Enable channeltx modssb plugin" ON)
option(ENABLE_CHANNELTX_UDPSOURCE "Enable channeltx udpsource plugin" ON)
option(ENABLE_CHANNELTX_MODCHIRPCHAT "Enable channeltx modchirpchat plugin" ON)
option(ENABLE_CHANNELTX_MODWFM "Enable channeltx modwfm plugin" ON)
option(ENABLE_CHANNELTX_MODATV "Enable channeltx modatv plugin" ON)
option(ENABLE_CHANNELTX_MOD802.15.4 "Enable channeltx mod802.15.4 plugin" ON)
option(ENABLE_CHANNELTX_REMOTESOURCE "Enable channeltx remotesource plugin" ON)
option(ENABLE_CHANNELTX_FILESOURCE "Enable channeltx filesource plugin" ON)
# Channel MIMO enablers
option(ENABLE_CHANNELMIMO, "Enable channelmimo plugins" ON)
option(ENABLE_CHANNELMIMO_INTERFEROMETER "Enable channelmimo interferometer plugin" ON)
option(ENABLE_CHANNELMIMO_DOA2 "Enable channelmimo doa2 plugin" ON)
option(ENABLE_CHANNELMIMO_BEAMSTEERINGCWMOD "Enable channelmimo beamsteeringcwmod plugin" ON)
# Feature enablers
option(ENABLE_FEATURE, "Enable feature plugins" ON)
option(ENABLE_FEATURE_LIMERFE "Enable feature limerfe plugin" ON)
option(ENABLE_FEATURE_VORLOCALIZER "Enable feature vorlocalizer plugin" ON)
option(ENABLE_FEATURE_JOGDIALCONTROLLER "Enable feature jogdialcontroller plugin" ON)
option(ENABLE_FEATURE_MAP "Enable feature map plugin" ON)
option(ENABLE_FEATURE_SIMPLEPTT "Enable feature simpleptt plugin" ON)
option(ENABLE_FEATURE_RADIOSONDE "Enable feature radiosonde plugin" ON)
option(ENABLE_FEATURE_ANTENNATOOLS "Enable feature antennatools plugin" ON)
option(ENABLE_FEATURE_SATELLITETRACKER "Enable feature satellitetracker plugin" ON)
option(ENABLE_FEATURE_APRS "Enable feature aprs plugin" ON)
option(ENABLE_FEATURE_DEMODANALYZER "Enable feature demodanalyzer plugin" ON)
option(ENABLE_FEATURE_AMBE "Enable feature ambe plugin" ON)
option(ENABLE_FEATURE_AIS "Enable feature ais plugin" ON)
option(ENABLE_FEATURE_AFC "Enable feature afc plugin" ON)
option(ENABLE_FEATURE_STARTRACKER "Enable feature startracker plugin" ON)
option(ENABLE_FEATURE_RIGCTLSERVER "Enable feature rigctlserver plugin" ON)
option(ENABLE_FEATURE_PERTESTER "Enable feature pertester plugin" ON)
option(ENABLE_FEATURE_GS232CONTROLLER "Enable feature gs232controller plugin" ON)
# on windows always build external libraries
if(WIN32)
set(ENABLE_EXTERNAL_LIBRARIES ON CACHE BOOL "Build external libraries" FORCE)

View File

@ -38,10 +38,22 @@ else()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${BUILD_PLUGINSSRV_DIR}")
endif()
add_subdirectory(channelmimo)
add_subdirectory(channelrx)
add_subdirectory(channeltx)
add_subdirectory(feature)
if (ENABLE_CHANNELMIMO)
add_subdirectory(channelmimo)
endif()
if (ENABLE_CHANNELRX)
add_subdirectory(channelrx)
endif()
if (ENABLE_CHANNELTX)
add_subdirectory(channeltx)
endif()
if (ENABLE_FEATURE)
add_subdirectory(feature)
endif()
add_subdirectory(samplemimo)
add_subdirectory(samplesource)
add_subdirectory(samplesink)

View File

@ -1,8 +1,13 @@
project(channelmimo)
add_subdirectory(beamsteeringcwmod)
add_subdirectory(doa2)
if (ENABLE_CHANNELMIMO_BEAMSTEERINGCWMOD)
add_subdirectory(beamsteeringcwmod)
endif()
if (NOT SERVER_MODE)
if (ENABLE_CHANNELMIMO_DOA2)
add_subdirectory(doa2)
endif()
if (NOT SERVER_MODE AND ENABLE_CHANNELMIMO_INTERFEROMETER)
add_subdirectory(interferometer)
endif()

View File

@ -1,66 +1,122 @@
project(demod)
if (Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND)
if (ENABLE_CHANNELRX_DEMODADSB AND Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND)
add_subdirectory(demodadsb)
# add_subdirectory(demodvormc)
endif()
add_subdirectory(demodam)
add_subdirectory(demodbfm)
add_subdirectory(demodnfm)
add_subdirectory(demodssb)
add_subdirectory(udpsink)
add_subdirectory(demodwfm)
add_subdirectory(localsink)
add_subdirectory(filesink)
add_subdirectory(freqtracker)
add_subdirectory(demodchirpchat)
add_subdirectory(demodvor)
add_subdirectory(demodpacket)
add_subdirectory(demodais)
add_subdirectory(demodpager)
add_subdirectory(radioclock)
add_subdirectory(radioastronomy)
add_subdirectory(demodradiosonde)
if (ENABLE_CHANNELRX_DEMODAM)
add_subdirectory(demodam)
endif()
if(DAB_FOUND AND ZLIB_FOUND AND FAAD_FOUND)
if (ENABLE_CHANNELRX_DEMODBFM)
add_subdirectory(demodbfm)
endif()
if (ENABLE_CHANNELRX_DEMODNFM)
add_subdirectory(demodnfm)
endif()
if (ENABLE_CHANNELRX_DEMODSSB)
add_subdirectory(demodssb)
endif()
if (ENABLE_CHANNELRX_UDPSINK)
add_subdirectory(udpsink)
endif()
if (ENABLE_CHANNELRX_DEMODWFM)
add_subdirectory(demodwfm)
endif()
if (ENABLE_CHANNELRX_LOCALSINK)
add_subdirectory(localsink)
endif()
if (ENABLE_CHANNELRX_FILESINK)
add_subdirectory(filesink)
endif()
if (ENABLE_CHANNELRX_FREQTRACKER)
add_subdirectory(freqtracker)
endif()
if (ENABLE_CHANNELRX_DEMODCHIRPCHAT)
add_subdirectory(demodchirpchat)
endif()
if (ENABLE_CHANNELRX_DEMODVOR)
add_subdirectory(demodvor)
endif()
if (ENABLE_CHANNELRX_DEMODPACKET)
add_subdirectory(demodpacket)
endif()
if (ENABLE_CHANNELRX_DEMODAIS)
add_subdirectory(demodais)
endif()
if (ENABLE_CHANNELRX_DEMODPAGER)
add_subdirectory(demodpager)
endif()
if (ENABLE_CHANNELRX_RADIOCLOCK)
add_subdirectory(radioclock)
endif()
if (ENABLE_CHANNELRX_RADIOASTRONOMY)
add_subdirectory(radioastronomy)
endif()
if (ENABLE_CHANNELRX_DEMODRADIOSONDE)
add_subdirectory(demodradiosonde)
endif()
if(ENABLE_CHANNELRX_DEMODDAB AND DAB_FOUND AND ZLIB_FOUND AND FAAD_FOUND)
add_subdirectory(demoddab)
endif()
if(APT_FOUND AND SGP4_FOUND)
if(ENABLE_CHANNELRX_DEMODAPT AND APT_FOUND AND SGP4_FOUND)
add_subdirectory(demodapt)
endif()
if(LIBDSDCC_FOUND AND LIBMBE_FOUND)
if(ENABLE_CHANNELRX_DEMODDSD AND LIBDSDCC_FOUND AND LIBMBE_FOUND)
add_subdirectory(demoddsd)
endif(LIBDSDCC_FOUND AND LIBMBE_FOUND)
if (CM256CC_FOUND AND (HAS_SSE3 OR HAS_NEON))
if (ENABLE_CHANNELRX_REMOTESINK AND CM256CC_FOUND AND (HAS_SSE3 OR HAS_NEON))
add_subdirectory(remotesink)
endif()
if (CODEC2_FOUND)
if (ENABLE_CHANNELRX_DEMODFREEDV AND CODEC2_FOUND)
add_subdirectory(demodfreedv)
endif(CODEC2_FOUND)
if (LIBSIGMF_FOUND AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (ENABLE_CHANNELRX_SIGMFFILESINK AND LIBSIGMF_FOUND AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_subdirectory(sigmffilesink)
endif()
if (Boost_FOUND AND Boost_VERSION_STRING VERSION_GREATER_EQUAL "1.70.0")
if (ENABLE_CHANNELRX_NOISEFIGURE AND Boost_FOUND AND Boost_VERSION_STRING VERSION_GREATER_EQUAL "1.70.0")
add_subdirectory(noisefigure)
endif()
if(NOT SERVER_MODE)
add_subdirectory(chanalyzer)
add_subdirectory(demodatv)
if (ENABLE_CHANNELRX_CHANALYZER)
add_subdirectory(chanalyzer)
endif()
if (ENABLE_CHANNELRX_DEMODATV)
add_subdirectory(demodatv)
endif()
# need ffmpeg 3.1 that correstonds to
# libavutil 55.27.100
# libavcodec 57.48.101
# libavformat 57.40.101
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE)
if (FFMPEG_FOUND)
if (ENABLE_CHANNELRX_DEMODDATV AND FFMPEG_FOUND)
if(WIN32)
add_subdirectory(demoddatv)
else()

View File

@ -1,31 +1,64 @@
project(mod)
add_subdirectory(modais)
add_subdirectory(modam)
add_subdirectory(modchirpchat)
add_subdirectory(modnfm)
add_subdirectory(modssb)
add_subdirectory(modwfm)
add_subdirectory(modpacket)
add_subdirectory(mod802.15.4)
add_subdirectory(udpsource)
add_subdirectory(localsource)
add_subdirectory(filesource)
if (ENABLE_CHANNELTX_MODAIS)
add_subdirectory(modais)
endif()
if (CM256CC_FOUND AND (HAS_SSE3 OR HAS_NEON))
if (ENABLE_CHANNELTX_MODAM)
add_subdirectory(modam)
endif()
if (ENABLE_CHANNELTX_MODCHIRPCHAT)
add_subdirectory(modchirpchat)
endif()
if (ENABLE_CHANNELTX_MODNFM)
add_subdirectory(modnfm)
endif()
if (ENABLE_CHANNELTX_MODSSB)
add_subdirectory(modssb)
endif()
if (ENABLE_CHANNELTX_MODWFM)
add_subdirectory(modwfm)
endif()
if (ENABLE_CHANNELTX_MODPACKET)
add_subdirectory(modpacket)
endif()
if (ENABLE_CHANNELTX_MOD802.15.4)
add_subdirectory(mod802.15.4)
endif()
if (ENABLE_CHANNELTX_UDPSOURCE)
add_subdirectory(udpsource)
endif()
if (ENABLE_CHANNELTX_LOCALSOURCE)
add_subdirectory(localsource)
endif()
if (ENABLE_CHANNELTX_FILESOURCE)
add_subdirectory(filesource)
endif()
if (ENABLE_CHANNELTX_REMOTESOURCE AND CM256CC_FOUND AND (HAS_SSE3 OR HAS_NEON))
add_subdirectory(remotesource)
endif()
if (OpenCV_FOUND)
if (ENABLE_CHANNELTX_MODATV AND OpenCV_FOUND)
add_subdirectory(modatv)
endif()
# Copied from channelrx/CMakeLists.txt - why not in top-level?
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE)
if (FFMPEG_FOUND)
if (ENABLE_CHANNELTX_MODDATV AND FFMPEG_FOUND)
add_subdirectory(moddatv)
endif()
if (CODEC2_FOUND)
if (ENABLE_CHANNELTX_MODFREEDV AND CODEC2_FOUND)
add_subdirectory(modfreedv)
endif(CODEC2_FOUND)

View File

@ -1,45 +1,75 @@
project(feature)
if (Qt5SerialPort_FOUND)
if (ENABLE_FEATURE_GS232CONTROLLER AND Qt5SerialPort_FOUND)
add_subdirectory(gs232controller)
endif()
if (Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND AND Qt5Location_FOUND AND Qt5WebEngine_FOUND)
if (ENABLE_FEATURE_MAP AND Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND AND Qt5Location_FOUND AND Qt5WebEngine_FOUND)
add_subdirectory(map)
endif()
if (Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND)
if (ENABLE_FEATURE_VORLOCALIZER AND Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND)
add_subdirectory(vorlocalizer)
endif()
add_subdirectory(afc)
add_subdirectory(ais)
add_subdirectory(antennatools)
add_subdirectory(aprs)
add_subdirectory(demodanalyzer)
add_subdirectory(pertester)
add_subdirectory(rigctlserver)
add_subdirectory(simpleptt)
if (ENABLE_FEATURE_AFC)
add_subdirectory(afc)
endif()
if (ENABLE_FEATURE_AIS)
add_subdirectory(ais)
endif()
if (ENABLE_FEATURE_ANTENNATOOLS)
add_subdirectory(antennatools)
endif()
if (ENABLE_FEATURE_APRS)
add_subdirectory(aprs)
endif()
if (ENABLE_FEATURE_DEMODANALYZER)
add_subdirectory(demodanalyzer)
endif()
if (ENABLE_FEATURE_PERTESTER)
add_subdirectory(pertester)
endif()
if (ENABLE_FEATURE_RIGCTLSERVER)
add_subdirectory(rigctlserver)
endif()
if (ENABLE_FEATURE_SIMPLEPTT)
add_subdirectory(simpleptt)
endif()
if (NOT SERVER_MODE)
if (SGP4_FOUND AND Qt5Positioning_FOUND AND Qt5Charts_FOUND AND Qt5TextToSpeech_FOUND)
if (ENABLE_FEATURE_SATELLITETRACKER AND SGP4_FOUND AND Qt5Positioning_FOUND AND Qt5Charts_FOUND AND Qt5TextToSpeech_FOUND)
add_subdirectory(satellitetracker)
endif()
add_subdirectory(jogdialcontroller)
if (ENABLE_FEATURE_JOGDIALCONTROLLER)
add_subdirectory(jogdialcontroller)
endif()
else()
if (SGP4_FOUND AND Qt5Positioning_FOUND AND Qt5Charts_FOUND)
if (ENABLE_FEATURE_SATELLITETRACKER AND SGP4_FOUND AND Qt5Positioning_FOUND AND Qt5Charts_FOUND)
add_subdirectory(satellitetracker)
endif()
endif()
if (Qt5Charts_FOUND)
add_subdirectory(radiosonde)
add_subdirectory(startracker)
if (ENABLE_FEATURE_RADIOSONDE)
add_subdirectory(radiosonde)
endif()
if (ENABLE_FEATURE_STARTRACKER)
add_subdirectory(startracker)
endif()
endif()
if (ENABLE_LIMESUITE AND LIMESUITE_FOUND)
if (ENABLE_FEATURE_LIMERFE AND ENABLE_LIMESUITE AND LIMESUITE_FOUND)
add_subdirectory(limerfe)
endif()
if (LIBSERIALDV_FOUND)
if (ENABLE_FEATURE_AMBE AND LIBSERIALDV_FOUND)
add_subdirectory(ambe)
endif()