mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-11-04 09:13:05 +00:00 
			
		
		
		
	Merge branch 'report' into next
Now CMake generates a configuration report. SOme other minor fixes
This commit is contained in:
		
							
								
								
									
										657
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										657
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -542,7 +542,7 @@ In a terminal, type:
 | 
			
		||||
~~~~~~
 | 
			
		||||
$ sudo port selfupdate
 | 
			
		||||
$ sudo port upgrade outdated
 | 
			
		||||
$ sudo port install doxygen +latex
 | 
			
		||||
$ sudo port install doxygen +docs
 | 
			
		||||
$ sudo port install gnuradio
 | 
			
		||||
$ sudo port install armadillo
 | 
			
		||||
$ sudo port install gnutls
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,9 @@ macro(LIST_CONTAINS var value)
 | 
			
		||||
  endforeach()
 | 
			
		||||
endmacro()
 | 
			
		||||
 | 
			
		||||
# Trick for feature_summary
 | 
			
		||||
set(GNURADIO_FOUND TRUE)
 | 
			
		||||
 | 
			
		||||
function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
 | 
			
		||||
    list_contains(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS})
 | 
			
		||||
    if(NOT REQUIRED_MODULE)
 | 
			
		||||
@@ -140,6 +143,7 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
 | 
			
		||||
    # generate an error if the module is missing
 | 
			
		||||
    if(NOT GNURADIO_${EXTVAR}_FOUND)
 | 
			
		||||
        message(STATUS "Required GNU Radio Component: ${EXTVAR} missing!")
 | 
			
		||||
        set(GNURADIO_FOUND FALSE) # Trick for feature_summary
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
    mark_as_advanced(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS)
 | 
			
		||||
@@ -200,3 +204,6 @@ if(NOT PC_GNURADIO_RUNTIME_VERSION)
 | 
			
		||||
        set(PC_GNURADIO_RUNTIME_VERSION "3.8.0+")
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Trick for feature_summary
 | 
			
		||||
set(GNURADIO_FOUND TRUE)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								cmake/Modules/FindGOOGLETEST.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								cmake/Modules/FindGOOGLETEST.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
# Copyright (C) 2011-2019 (see AUTHORS file for a list of contributors)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of GNSS-SDR.
 | 
			
		||||
#
 | 
			
		||||
# GNSS-SDR is free software: you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# GNSS-SDR is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
# GNU General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU General Public License
 | 
			
		||||
# along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# - Try to find Googletest source code
 | 
			
		||||
#
 | 
			
		||||
# The following environment variable is optionally searched for:
 | 
			
		||||
# GTEST_DIR: Base directory where Googletest source code is found.
 | 
			
		||||
#
 | 
			
		||||
# The following are set after configuration is done:
 | 
			
		||||
# GOOGLETEST_FOUND
 | 
			
		||||
# LIBGTEST_DEV_DIR
 | 
			
		||||
# GTEST_INCLUDE_DIRS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
find_path(LIBGTEST_DEV_DIR
 | 
			
		||||
    NAMES src/gtest-all.cc
 | 
			
		||||
    PATHS
 | 
			
		||||
        ${GTEST_DIR}
 | 
			
		||||
        ${GTEST_DIR}/googletest
 | 
			
		||||
        /usr/src/googletest/googletest
 | 
			
		||||
        /usr/src/gtest
 | 
			
		||||
        /usr/include/gtest
 | 
			
		||||
        /opt/local/src/gtest-1.7.0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
find_path(GTEST_INCLUDE_DIRS
 | 
			
		||||
    NAMES gtest/gtest.h
 | 
			
		||||
    PATHS
 | 
			
		||||
        ${GTEST_DIR}/googletest/include
 | 
			
		||||
        /usr/include
 | 
			
		||||
        /opt/local/src/gtest-1.7.0/include
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
include(FindPackageHandleStandardArgs)
 | 
			
		||||
find_package_handle_standard_args(GOOGLETEST DEFAULT_MSG LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS)
 | 
			
		||||
mark_as_advanced(LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS)
 | 
			
		||||
@@ -82,7 +82,6 @@ if(CMAKE_VERSION VERSION_LESS 3.12)
 | 
			
		||||
        gnsssdr_python_check_module("mako >= ${GNSSSDR_MAKO_MIN_VERSION}" mako "mako.__version__ >= '${GNSSSDR_MAKO_MIN_VERSION}'" MAKO_FOUND)
 | 
			
		||||
        gnsssdr_python_check_module("six - python 2 and 3 compatibility library" six "True" SIX_FOUND)
 | 
			
		||||
    endif()
 | 
			
		||||
    find_package(PythonLibs ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} EXACT)
 | 
			
		||||
else()
 | 
			
		||||
    find_package(Python3 COMPONENTS Interpreter)
 | 
			
		||||
    if(Python3_FOUND)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,19 +8,22 @@
 | 
			
		||||
### Improvements in Efficiency
 | 
			
		||||
 | 
			
		||||
- Improved preamble detection implementation in the decoding of navigation messages (acceleration by x1.6 on average).
 | 
			
		||||
- Applied clang-tidy checks and fixes related to performance.
 | 
			
		||||
- Applied clang-tidy checks and fixes related to performance: performance-faster-string-find, performance-inefficient-algorithm, performance-move-const-arg, performance-type-promotion-in-math-fn, performance-unnecessary-copy-initialization, performance-unnecessary-value-param, readability-string-compare.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Improvements in Interoperability:
 | 
			
		||||
 | 
			
		||||
- Added the BeiDou B1I receiver chain.
 | 
			
		||||
- Fix bug in GLONASS dual frequency receiver.
 | 
			
		||||
- Added a custom UDP/IP output for PVT data streaming.
 | 
			
		||||
- Improved Monitor block with UDP/IP output for internal receiver's data streaming.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Improvements in Maintainability:
 | 
			
		||||
 | 
			
		||||
- Usage of clang-tidy integrated into CMake scripts. New option -DENABLE_CLANG_TIDY=ON executes clang-tidy along with compilation. Requires clang compiler.
 | 
			
		||||
- Applied clang-tidy checks and fixes related to readability.
 | 
			
		||||
- Applied clang-tidy checks and fixes related to readability: readability-container-size-empty, readability-identifier-naming, readability-inconsistent-declaration-parameter-name, readability-named-parameter, readability-non-const-parameter, readability-string-compare.
 | 
			
		||||
- Improved includes selection following suggestions by include-what-you-use (see https://include-what-you-use.org/), allowing faster compiles, fewer recompiles and making refactoring easier.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Improvements in Portability:
 | 
			
		||||
@@ -31,13 +34,14 @@
 | 
			
		||||
 | 
			
		||||
### Improvements in Reliability
 | 
			
		||||
 | 
			
		||||
- Applied clang-tidy checks and fixes related to High Integrity C++.
 | 
			
		||||
- Applied clang-tidy checks and fixes related to High Integrity C++: performance-move-const-arg, modernize-use-auto, modernize-use-equals-default, modernize-use-equals-delete, modernize-use-noexcept, modernize-use-nullptr, cert-dcl21-cpp, misc-new-delete-overloads, cert-dcl58-cpp, cert-err52-cpp, cert-err60-cpp.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Improvements in Usability
 | 
			
		||||
 | 
			
		||||
- The receiver now admits FPGA off-loading, allowing for real time operation at high sampling rates and higher number of signals and channels.
 | 
			
		||||
- Fixed program termination (avoiding hangs and segfaults in some platforms/configurations).
 | 
			
		||||
- CMake now generates a summary of enabled/disabled features. This info is also stored in a file called features.log in the building directory.
 | 
			
		||||
- Improved information provided to the user in case of failure.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ const double GLONASS_F_M_A = 0.35e9;                           //!< Gravitationa
 | 
			
		||||
const double GLONASS_SEMI_MAJOR_AXIS = 6378136;                //!< Semi-major axis of Earth [m]
 | 
			
		||||
const double GLONASS_FLATTENING = 1 / 29825784;                //!< Flattening parameter
 | 
			
		||||
const double GLONASS_GRAVITY = 97803284;                       //!< Equatorial acceleration of gravity [mGal]
 | 
			
		||||
const double GLONASS_GRAVITY_CORRECTION = 0.87;                //!< Correction to acceleration of gravity at sea-level due to Atmosphere[мGal]
 | 
			
		||||
const double GLONASS_GRAVITY_CORRECTION = 0.87;                //!< Correction to acceleration of gravity at sea-level due to Atmosphere[uGal]
 | 
			
		||||
const double GLONASS_J2 = 1082625.75e-9;                       //!< Second zonal harmonic of the geopotential
 | 
			
		||||
const double GLONASS_J4 = -2370.89e-9;                         //!< Fourth zonal harmonic of the geopotential
 | 
			
		||||
const double GLONASS_J6 = 6.08e-9;                             //!< Sixth zonal harmonic of the geopotential
 | 
			
		||||
@@ -74,7 +74,7 @@ const double GLONASS_MOON_SEMI_MAJOR_AXIS = 3.84385243e5;     //!< Semi-major ax
 | 
			
		||||
const double GLONASS_MOON_ECCENTRICITY = 0.054900489;         //!< Eccentricity of lunar orbit
 | 
			
		||||
const double GLONASS_MOON_INCLINATION = 0.000089803977407e3;  //!< Inclination of lunar orbit to ecliptic plane (5 deg 08 min 43.4 sec) [rad]
 | 
			
		||||
 | 
			
		||||
const double GLONASS_SUN_OMEGA = 0.004908229466869e3;  //!< TODO What is this operation in the seconds with T?(281 deg 13 min 15.0 + 6189.03*Т sec) [rad]
 | 
			
		||||
const double GLONASS_SUN_OMEGA = 0.004908229466869e3;  //!< TODO What is this operation in the seconds with T?(281 deg 13 min 15.0 + 6189.03 x T sec) [rad]
 | 
			
		||||
const double GLONASS_SUN_Q0 = 0.006256583774423e3;     //!< (358 deg 28 min 33.04 sec) [rad]
 | 
			
		||||
const double GLONASS_SUN_Q1 = 0e3;                     //!< TODO Why is the value greater than 60?(129596579.10 sec) [rad]
 | 
			
		||||
const double GLONASS_SUN_GM = 0.1325263e12;            //!< Solar gravitational constant [km^3/s^2]
 | 
			
		||||
 
 | 
			
		||||
@@ -184,6 +184,12 @@ find_package(Gnuplot)
 | 
			
		||||
if(GNUPLOT_FOUND)
 | 
			
		||||
    add_definitions(-DGNUPLOT_EXECUTABLE="${GNUPLOT_EXECUTABLE}")
 | 
			
		||||
endif()
 | 
			
		||||
set_package_properties(Gnuplot PROPERTIES
 | 
			
		||||
    URL "http://www.gnuplot.info"
 | 
			
		||||
    DESCRIPTION "A portable command-line driven graphing utility"
 | 
			
		||||
    PURPOSE "Used to generate plots in some tests."
 | 
			
		||||
    TYPE OPTIONAL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_UNIT_TESTING_MINIMAL)
 | 
			
		||||
    add_definitions(-DUNIT_TESTING_MINIMAL=1)
 | 
			
		||||
@@ -194,6 +200,15 @@ endif()
 | 
			
		||||
# Optional generator
 | 
			
		||||
################################################################################
 | 
			
		||||
option(ENABLE_GNSS_SIM_INSTALL "Enable the installation of gnss_sim on the fly" ON)
 | 
			
		||||
add_feature_info(ENABLE_GNSS_SIM_INSTALL ENABLE_GNSS_SIM_INSTALL "Enables downloading and building of gnss-sim.")
 | 
			
		||||
 | 
			
		||||
find_package(GPSTK)
 | 
			
		||||
set_package_properties(GPSTK PROPERTIES
 | 
			
		||||
    URL "http://www.gpstk.org"
 | 
			
		||||
    DESCRIPTION "Library and suite of applications for satellite navigation"
 | 
			
		||||
    PURPOSE "Used in some Extra Tests."
 | 
			
		||||
    TYPE OPTIONAL
 | 
			
		||||
)
 | 
			
		||||
if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA)
 | 
			
		||||
    if(ENABLE_FPGA)
 | 
			
		||||
      set(CROSS_INSTALL_DIR "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
 | 
			
		||||
@@ -239,7 +254,6 @@ if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA)
 | 
			
		||||
    ################################################################################
 | 
			
		||||
    # Local installation of GPSTk http://www.gpstk.org/
 | 
			
		||||
    ################################################################################
 | 
			
		||||
    find_package(GPSTK)
 | 
			
		||||
    if(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK)
 | 
			
		||||
      message(STATUS " GPSTk v${GNSSSDR_GPSTK_LOCAL_VERSION} will be automatically downloaded and built when doing 'make'.")
 | 
			
		||||
      if("${TOOLCHAIN_ARG}" STREQUAL "")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user