Create a base class for GPS, Galileo and BeiDou ephemeris, allowing to remove some duplicated code
Use BOOST_SERIALIZATION_NVP macro, less error prone than boost::serialization::make_nvp
Update .xsd files
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.
Avoid indirection caused by passing shared_ptr by reference
The block factory does not have responsability on the lifetime of their inputs
Define std::make_unique when using C++11 and make use of it
Printers are turned into unique_ptr to express ownership
Printers do not participate on the lifelime of the data, so they take const raw pointers
Modernize tests code
Replace CMAKE_CURRENT_BINARY by CMAKE_BINARY_DIR
Remove include_directories() instance
Put the GPSTk install folder in its building folder instead of in its source folder
External sources and data are now always stored in a ./thirdparty folder under the building directory.
A copy of the generated binaries will be stored under gnss-sdr/install, if the building directory is inside the source tree, or in an ./install folder under the building directory if it is outside the source tree.
Fix a bug that broke compilation if the user configured the building without extra testing in a first instance, and then switched the testing buiding options to ON in a later build.
Fix extra test building if GPSTk was already installed and Boost >= 1.71