11cmake_minimum_required (VERSION 3.13)
22project (sdrpp)
33
4+
45if (CMAKE_INSTALL_PREFIX MATCHES "^/usr" ) # default prefix
56 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
67 set (CMAKE_INSTALL_PREFIX "/usr/local" )
@@ -10,18 +11,6 @@ if(CMAKE_INSTALL_PREFIX MATCHES "^/usr") # default prefix
1011else ()
1112 # keep the prefix as user wants
1213endif ()
13- #
14- ## Configure toolchain for android
15- #if (ANDROID)
16- # set(CMAKE_SHARED_LINKER_FLAGS
17- # "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate"
18- # )
19- # set(CMAKE_C_STANDARD 11)
20- # set(CMAKE_CXX_STANDARD 14)
21- # set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++17")
22- # set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
23- # set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
24- #endif (ANDROID)
2514
2615# Backends
2716option (OPT_BACKEND_GLFW "Use the GLFW backend" ON )
@@ -31,40 +20,40 @@ option(OPT_BACKEND_ANDROID "Use the Android backend" OFF)
3120option (OPT_OVERRIDE_STD_FILESYSTEM "Use a local version of std::filesystem on systems that don't have it yet" OFF )
3221
3322# Sources
34- option (OPT_BUILD_AIRSPY_SOURCE "Build Airspy Source Module (Dependencies: libairspy)" ON )
35- option (OPT_BUILD_AIRSPYHF_SOURCE "Build Airspy HF+ Source Module (Dependencies: libairspyhf)" ON )
36- option (OPT_BUILD_AUDIO_SOURCE "Build Audio Source Module (Dependencies: rtaudio)" ON )
23+ option (OPT_BUILD_AIRSPY_SOURCE "Build Airspy Source Module (Dependencies: libairspy)" OFF )
24+ option (OPT_BUILD_AIRSPYHF_SOURCE "Build Airspy HF+ Source Module (Dependencies: libairspyhf)" OFF )
25+ option (OPT_BUILD_AUDIO_SOURCE "Build Audio Source Module (Dependencies: rtaudio)" OFF )
3726option (OPT_BUILD_BADGESDR_SOURCE "Build BadgeSDR Source Module (Dependencies: libusb)" OFF )
3827option (OPT_BUILD_BLADERF_SOURCE "Build BladeRF Source Module (Dependencies: libbladeRF)" OFF )
3928option (OPT_BUILD_FILE_SOURCE "Wav file source" ON )
4029option (OPT_BUILD_FOBOSSDR_SOURCE "Build FobosSDR Source Module (Dependencies: libfobos)" OFF )
41- option (OPT_BUILD_HACKRF_SOURCE "Build HackRF Source Module (Dependencies: libhackrf)" ON )
42- option (OPT_BUILD_HAROGIC_SOURCE "Build Harogic Source Module (Dependencies: htra_api)" OFF )
43- option (OPT_BUILD_HERMES_SOURCE "Build Hermes Source Module (no dependencies required)" ON )
30+ option (OPT_BUILD_HACKRF_SOURCE "Build HackRF Source Module (Dependencies: libhackrf)" OFF )
31+ # option(OPT_BUILD_HAROGIC_SOURCE "Build Harogic Source Module (Dependencies: htra_api)" OFF)
32+ option (OPT_BUILD_HERMES_SOURCE "Build Hermes Source Module (no dependencies required)" OFF )
4433option (OPT_BUILD_KCSDR_SOURCE "Build KCSDR Source Module (Dependencies: libkcsdr)" OFF )
4534option (OPT_BUILD_LIMESDR_SOURCE "Build LimeSDR Source Module (Dependencies: liblimesuite)" OFF )
46- option (OPT_BUILD_NETWORK_SOURCE "Build Network Source Module (no dependencies required)" ON )
35+ option (OPT_BUILD_NETWORK_SOURCE "Build Network Source Module (no dependencies required)" OFF )
4736option (OPT_BUILD_PERSEUS_SOURCE "Build Perseus Source Module (Dependencies: libperseus-sdr)" OFF )
48- option (OPT_BUILD_PLUTOSDR_SOURCE "Build PlutoSDR Source Module (Dependencies: libiio, libad9361)" ON )
37+ option (OPT_BUILD_PLUTOSDR_SOURCE "Build PlutoSDR Source Module (Dependencies: libiio, libad9361)" OFF )
4938option (OPT_BUILD_RFNM_SOURCE "Build RFNM Source Module (Dependencies: librfnm)" OFF )
50- option (OPT_BUILD_RFSPACE_SOURCE "Build RFspace Source Module (no dependencies required)" ON )
51- option (OPT_BUILD_RTL_SDR_SOURCE "Build RTL-SDR Source Module (Dependencies: librtlsdr)" ON )
52- option (OPT_BUILD_RTL_TCP_SOURCE "Build RTL-TCP Source Module (no dependencies required)" ON )
39+ option (OPT_BUILD_RFSPACE_SOURCE "Build RFspace Source Module (no dependencies required)" OFF )
40+ option (OPT_BUILD_RTL_SDR_SOURCE "Build RTL-SDR Source Module (Dependencies: librtlsdr)" OFF )
41+ option (OPT_BUILD_RTL_TCP_SOURCE "Build RTL-TCP Source Module (no dependencies required)" OFF )
5342option (OPT_BUILD_SDRPP_SERVER_SOURCE "Build SDR++ Server Source Module (no dependencies required)" ON )
5443option (OPT_BUILD_SDRPLAY_SOURCE "Build SDRplay Source Module (Dependencies: libsdrplay)" OFF )
5544option (OPT_BUILD_SOAPY_SOURCE "Build SoapySDR Source Module (Dependencies: soapysdr)" OFF )
5645option (OPT_BUILD_SPECTRAN_SOURCE "Build Spectran Source Module (Dependencies: Aaronia RTSA Suite)" OFF )
57- option (OPT_BUILD_SPECTRAN_HTTP_SOURCE "Build Spectran HTTP Source Module (no dependencies required)" ON )
58- option (OPT_BUILD_SPYSERVER_SOURCE "Build SpyServer Source Module (no dependencies required)" ON )
46+ option (OPT_BUILD_SPECTRAN_HTTP_SOURCE "Build Spectran HTTP Source Module (no dependencies required)" OFF )
47+ option (OPT_BUILD_SPYSERVER_SOURCE "Build SpyServer Source Module (no dependencies required)" OFF )
5948option (OPT_BUILD_HL2_SOURCE "Build Hermes Lite 2 Source Module" ON )
6049option (OPT_BUILD_USRP_SOURCE "Build USRP Source Module (libuhd)" OFF )
6150option (OPT_BUILD_KIWISDR_SOURCE "Build KiwiSDR (web) Source Module" ON )
6251
6352# Sinks
64- option (OPT_BUILD_ANDROID_AUDIO_SINK "Build Android Audio Sink Module (Dependencies: AAudio, only for android)" OFF )
53+ # option(OPT_BUILD_ANDROID_AUDIO_SINK "Build Android Audio Sink Module (Dependencies: AAudio, only for android)" OFF)
6554option (OPT_BUILD_AUDIO_SINK "Build Audio Sink Module (Dependencies: rtaudio)" ON )
66- option (OPT_BUILD_NETWORK_SINK "Build Audio Sink Module (no dependencies required)" ON )
67- option (OPT_BUILD_MPEG_ADTS_SINK "Build MPEG ADTS Sink Module (lame will be used)" ON )
55+ option (OPT_BUILD_NETWORK_SINK "Build Audio Sink Module (no dependencies required)" OFF )
56+ option (OPT_BUILD_MPEG_ADTS_SINK "Build MPEG ADTS Sink Module (lame will be used)" OFF )
6857option (OPT_BUILD_NEW_PORTAUDIO_SINK "Build the new PortAudio Sink Module (Dependencies: portaudio)" ON )
6958option (OPT_BUILD_PORTAUDIO_SINK "Build PortAudio Sink Module (Dependencies: portaudio)" OFF )
7059
@@ -74,24 +63,24 @@ option(OPT_BUILD_DAB_DECODER "Build the DAB/DAB+ decoder (no dependencies requir
7463option (OPT_BUILD_FALCON9_DECODER "Build the falcon9 live decoder (Dependencies: ffplay)" OFF )
7564option (OPT_BUILD_KG_SSTV_DECODER "Build the M17 decoder module (no dependencies required)" OFF )
7665option (OPT_BUILD_M17_DECODER "Build the M17 decoder module (Dependencies: codec2)" OFF )
77- option (OPT_BUILD_CH_EXTRAVHF_DECODER "Build the extra VHF decoder module" ON )
66+ option (OPT_BUILD_CH_EXTRAVHF_DECODER "Build the extra VHF decoder module" OFF )
7867option (OPT_BUILD_FT8_DECODER "Build the FT8 decoder module" ON )
7968option (OPT_BUILD_DSDCC_DECODER "Build the DSDCC decoder module" OFF )
80- option (OPT_BUILD_METEOR_DEMODULATOR "Build the meteor demodulator module (no dependencies required)" ON )
81- option (OPT_BUILD_PAGER_DECODER "Build the pager decoder module (no dependencies required)" ON )
69+ option (OPT_BUILD_METEOR_DEMODULATOR "Build the meteor demodulator module (no dependencies required)" OF )
70+ option (OPT_BUILD_PAGER_DECODER "Build the pager decoder module (no dependencies required)" OF )
8271option (OPT_BUILD_RADIO "Main audio modulation decoder (AM, FM, SSB, etc...)" ON )
8372option (OPT_BUILD_RYFI_DECODER "RyFi data link decoder" OFF )
8473option (OPT_BUILD_VOR_RECEIVER "VOR beacon receiver" OFF )
8574option (OPT_BUILD_WEATHER_SAT_DECODER "Build the HRPT decoder module (no dependencies required)" OFF )
8675
8776# Misc
88- option (OPT_BUILD_DISCORD_PRESENCE "Build the Discord Rich Presence module" ON )
77+ option (OPT_BUILD_DISCORD_PRESENCE "Build the Discord Rich Presence module" OFF )
8978option (OPT_BUILD_FREQUENCY_MANAGER "Build the Frequency Manager module" ON )
9079option (OPT_BUILD_IQ_EXPORTER "Build the IQ Exporter module" ON )
9180option (OPT_BUILD_RECORDER "Audio and baseband recorder" ON )
9281option (OPT_BUILD_RIGCTL_CLIENT "Rigctl client to make SDR++ act as a panadapter" ON )
9382option (OPT_BUILD_RIGCTL_SERVER "Rigctl backend for controlling SDR++ with software like gpredict" ON )
94- option (OPT_BUILD_TCI_SERVER "TCI backend for controlling SDR++ with sunsdr and similar software" ON )
83+ option (OPT_BUILD_TCI_SERVER "TCI backend for controlling SDR++ with sunsdr and similar software" OFF )
9584option (OPT_BUILD_SCANNER "Frequency scanner" ON )
9685option (OPT_BUILD_SCHEDULER "Build the scheduler" OFF )
9786option (OPT_BUILD_NOISE_REDUCTION_LOGMMSE "Build LOGMMSE noise reduction" ON )
@@ -151,6 +140,12 @@ endif (ANDROID)
151140# Core of SDR++
152141add_subdirectory ("core" )
153142
143+ # Tests are added conditionally
144+ if (BUILD_TESTS)
145+ enable_testing ()
146+ include (CTest)
147+ endif ()
148+
154149# Source modules
155150if (OPT_BUILD_AIRSPY_SOURCE)
156151add_subdirectory ("source_modules/airspy_source" )
@@ -302,7 +297,7 @@ add_subdirectory("sink_modules/network_sink")
302297endif (OPT_BUILD_NETWORK_SINK)
303298
304299if (OPT_BUILD_MPEG_ADTS_SINK)
305- add_subdirectory ("sink_modules/mpeg_adts_sink" )
300+ # add_subdirectory("sink_modules/mpeg_adts_sink")
306301endif (OPT_BUILD_MPEG_ADTS_SINK)
307302
308303if (NOT ANDROID)
@@ -334,7 +329,7 @@ add_subdirectory("decoder_modules/m17_decoder")
334329endif (OPT_BUILD_M17_DECODER)
335330
336331if (OPT_BUILD_CH_EXTRAVHF_DECODER)
337- add_subdirectory ("decoder_modules/ch_extravhf_decoder" )
332+ # add_subdirectory("decoder_modules/ch_extravhf_decoder")
338333endif (OPT_BUILD_CH_EXTRAVHF_DECODER)
339334
340335
@@ -466,7 +461,7 @@ if (MSVC)
466461 foreach (DLL IN LISTS CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
467462 set (REDIST_DLLS_STR COMMAND xcopy /F \"${DLL} \" \"$<TARGET_FILE_DIR:sdrpp>\" /Y ${REDIST_DLLS_STR} )
468463 endforeach ()
469-
464+
470465 # Create target
471466 add_custom_target (do_always_msvc ALL ${REDIST_DLLS_STR} )
472467 endif ()
@@ -514,3 +509,8 @@ configure_file(${CMAKE_SOURCE_DIR}/cmake_uninstall.cmake ${CMAKE_CURRENT_BINARY_
514509add_custom_target (uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /cmake_uninstall.cmake)
515510
516511# Create headers target
512+
513+ # Test options
514+ option (BUILD_TESTS "Build test suite" OFF )
515+ option (ENABLE_COVERAGE "Enable code coverage" OFF )
516+
0 commit comments