The existing CMake logic is broken-ish; or rather log4cpp is broken-ish, and
this inhibits the use of C++17 std::filesystem.
All of the static libraries created are brittle; consider changing from
STATIC to OBJECT in the future?
also adds a base implementation that most signal sources should inherit from.
The gen_signal_source is inexplicably different (probably as a test fixture,
commonality was not valued).
Only the file_signal_source has been tested; all the sources are modified in the same
way, but we all know the only proof of correctness is testing.
The block factory was simplified a bit. Handling for legacy config files was pulled out
of the flowgraph; now when the "0" instance of a component (Foo0) is created, if there is
no config for it, then the legacy version (Foo) will be tried. This is different from
passing -1 for the item number (which is still supported). Theoretically, all existing
config files should still work.
Added new building option ENABLE_OWN_CPUFEATURES, set to ON when building gnss-sdr but set to OFF when building volk_gnsssdr standalone.
The default does no change old behavior when buiding gnss-sdr without volk_gnsssdr already installed
If set to ON, it generates HTML documentation using MathJax from an external CDN when doing 'make doc'. If set to OFF, MathJax is still looked for in the system and used if found, so it can be used offline. If not found, it is not used.
Set CMAKE_CUDA_STANDARD to 14, allowing decay to 11 for CUDA 8
CUDA version reported in CMake summary
Add target property CUDA_RESOLVE_DEVICE_SYMBOLS to ON
Fixed building option when gflags is installed and it is older than v2.1.2 (_e.g._, in CentOS 7)
Fixed static linking of the matio library when downloaded and built by CMake