mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next
This commit is contained in:
		| @@ -690,6 +690,17 @@ if(CMAKE_VERSION VERSION_LESS 3.5) | |||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 when using Clang in macOS | ||||||
|  | if(${Boost_VERSION} VERSION_LESS 107000) | ||||||
|  |     # Check if we have std::string_view | ||||||
|  |     include(CheckCXXSourceCompiles) | ||||||
|  |     check_cxx_source_compiles(" | ||||||
|  |         #include <string_view> | ||||||
|  |         int main() | ||||||
|  |         { std::string_view sv; }" | ||||||
|  |         has_string_view | ||||||
|  |     ) | ||||||
|  | endif() | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
|   | |||||||
| @@ -35,6 +35,22 @@ find_path(IIO_INCLUDE_DIRS | |||||||
|           $ENV{GRIIO_ROOT}/include |           $ENV{GRIIO_ROOT}/include | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | if(IIO_INCLUDE_DIRS) | ||||||
|  |     set(GR_IIO_INCLUDE_HAS_GNURADIO TRUE) | ||||||
|  | else() | ||||||
|  |     find_path(IIO_INCLUDE_DIRS | ||||||
|  |         NAMES iio/api.h | ||||||
|  |         HINTS $ENV{IIO_DIR}/include | ||||||
|  |               ${PC_IIO_INCLUDEDIR} | ||||||
|  |         PATHS ${CMAKE_INSTALL_PREFIX}/include | ||||||
|  |               /usr/local/include | ||||||
|  |               /usr/include | ||||||
|  |               ${GRIIO_ROOT}/include | ||||||
|  |               $ENV{GRIIO_ROOT}/include | ||||||
|  |     ) | ||||||
|  |     set(GR_IIO_INCLUDE_HAS_GNURADIO FALSE) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| find_library(IIO_LIBRARIES | find_library(IIO_LIBRARIES | ||||||
|     NAMES gnuradio-iio |     NAMES gnuradio-iio | ||||||
|     HINTS $ENV{IIO_DIR}/lib |     HINTS $ENV{IIO_DIR}/lib | ||||||
| @@ -86,4 +102,4 @@ if(GRIIO_FOUND AND NOT TARGET Gnuradio::iio) | |||||||
|     ) |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| mark_as_advanced(IIO_LIBRARIES IIO_INCLUDE_DIRS) | mark_as_advanced(IIO_LIBRARIES IIO_INCLUDE_DIRS GR_IIO_INCLUDE_HAS_GNURADIO) | ||||||
|   | |||||||
| @@ -76,6 +76,12 @@ find_library( | |||||||
|           $ENV{LIBIIO_ROOT}/lib64 |           $ENV{LIBIIO_ROOT}/lib64 | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | if(LIBIIO_LIBRARIES AND APPLE) | ||||||
|  |     if(LIBIIO_LIBRARIES MATCHES "framework") | ||||||
|  |         set(LIBIIO_LIBRARIES ${LIBIIO_LIBRARIES}/iio) | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  |  | ||||||
| include(FindPackageHandleStandardArgs) | include(FindPackageHandleStandardArgs) | ||||||
| find_package_handle_standard_args(LIBIIO DEFAULT_MSG LIBIIO_LIBRARIES LIBIIO_INCLUDE_DIRS) | find_package_handle_standard_args(LIBIIO DEFAULT_MSG LIBIIO_LIBRARIES LIBIIO_INCLUDE_DIRS) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -94,12 +94,20 @@ if(Boost_VERSION VERSION_GREATER "106599") | |||||||
|     ) |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 | ||||||
| if(OS_IS_MACOSX) | if(OS_IS_MACOSX) | ||||||
|     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |     if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000)) | ||||||
|         target_compile_definitions(pvt_libs |         if(${has_string_view}) | ||||||
|             PUBLIC |             target_compile_definitions(pvt_libs | ||||||
|                 -DBOOST_ASIO_HAS_STD_STRING_VIEW |                 PUBLIC | ||||||
|         ) |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=1 | ||||||
|  |             ) | ||||||
|  |         else() | ||||||
|  |             target_compile_definitions(pvt_libs | ||||||
|  |                 PUBLIC | ||||||
|  |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=0 | ||||||
|  |             ) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -20,3 +20,32 @@ get_filename_component(VOLK_GNSSSDR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) | |||||||
| if(NOT TARGET VolkGnsssdr::volkgnsssdr) | if(NOT TARGET VolkGnsssdr::volkgnsssdr) | ||||||
|   include("${VOLK_GNSSSDR_CMAKE_DIR}/VolkGnsssdrTargets.cmake") |   include("${VOLK_GNSSSDR_CMAKE_DIR}/VolkGnsssdrTargets.cmake") | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # set VOLKGNSSSDR_FOUND to be set globally, for whether a compatible Volk GNSS-SDR | ||||||
|  | # was found -- could be a correct enough version or any version depending | ||||||
|  | # on how find_package was called. | ||||||
|  | if(NOT TARGET Volkgnsssdr::volkgnsssdr) | ||||||
|  |   set(VOLKGNSSSDR_FOUND FALSE) | ||||||
|  | else() | ||||||
|  |   set(VOLKGNSSSDR_FOUND TRUE) | ||||||
|  | endif() | ||||||
|  |  | ||||||
|  | # cache whether a compatible VolkGnsssdr was found for | ||||||
|  | # use anywhere in the calling project | ||||||
|  | set(VOLKGNSSSDR_FOUND ${VOLKGNSSSDR_FOUND} CACHE BOOL "Whether a compatible Volk GNSS-SDR was found" FORCE) | ||||||
|  |  | ||||||
|  | if(VOLKGNSSSDR_FOUND) | ||||||
|  |   # use the new target library, regardless of whether new or old style | ||||||
|  |   # we still need to set a variable with the library name so that there | ||||||
|  |   # is a variable to reference in the using-project's cmake scripts! | ||||||
|  |   set(VOLK_GNSSSDR_LIBRARIES Volkgnsssdr::volkgnsssdr CACHE STRING "Volk GNSS-SDR Library" FORCE) | ||||||
|  |  | ||||||
|  |   # INTERFACE_INCLUDE_DIRECTORIES should always be set | ||||||
|  |   get_target_property(VOLK_GNSSSDR_INCLUDE_DIRS Volkgnsssdr::volkgnsssdr INTERFACE_INCLUDE_DIRECTORIES) | ||||||
|  |   set(VOLK_GNSSSDR_INCLUDE_DIRS ${VOLK_GNSSSDR_INCLUDE_DIRS} CACHE STRING "Volk GNSS-SDR Include Directories" FORCE) | ||||||
|  |  | ||||||
|  |   # for backward compatibility with old-CMake non-target project finding | ||||||
|  |   include(FindPackageHandleStandardArgs) | ||||||
|  |   find_package_handle_standard_args(VOLKGNSSSDR DEFAULT_MSG VOLK_GNSSSDR_LIBRARIES VOLK_GNSSSDR_INCLUDE_DIRS) | ||||||
|  |   mark_as_advanced(VOLK_GNSSSDR_LIBRARIES VOLK_GNSSSDR_INCLUDE_DIRS) | ||||||
|  | endif() | ||||||
|   | |||||||
| @@ -32,24 +32,18 @@ | |||||||
| #include <vector>                              // for vector | #include <vector>                              // for vector | ||||||
|  |  | ||||||
|  |  | ||||||
| float uniform() | template <typename T> | ||||||
|  | void random_values(T *buf, unsigned int n, std::default_random_engine &e1) | ||||||
| { | { | ||||||
|     std::random_device r; |     std::uniform_real_distribution<T> uniform_dist(T(-1), T(1)); | ||||||
|     std::default_random_engine e1(r()); |     for (unsigned int i = 0; i < n; i++) | ||||||
|     std::uniform_real_distribution<float> uniform_dist(-1, 1); |         buf[i] = uniform_dist(e1); | ||||||
|     return uniform_dist(e1);  // uniformly (-1, 1) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| template <class t> |  | ||||||
| void random_floats(t *buf, unsigned n) |  | ||||||
| { |  | ||||||
|     for (unsigned i = 0; i < n; i++) |  | ||||||
|         buf[i] = uniform(); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n) | void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n) | ||||||
| { | { | ||||||
|     std::random_device r; |     std::random_device r; | ||||||
|  |     std::default_random_engine e1(r()); | ||||||
|     std::default_random_engine e2(r()); |     std::default_random_engine e2(r()); | ||||||
|  |  | ||||||
|     if (type.is_complex) n *= 2; |     if (type.is_complex) n *= 2; | ||||||
| @@ -57,9 +51,9 @@ void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n) | |||||||
|     if (type.is_float) |     if (type.is_float) | ||||||
|         { |         { | ||||||
|             if (type.size == 8) |             if (type.size == 8) | ||||||
|                 random_floats<double>((double *)data, n); |                 random_values<double>((double *)data, n, e1); | ||||||
|             else |             else | ||||||
|                 random_floats<float>((float *)data, n); |                 random_values<float>((float *)data, n, e1); | ||||||
|         } |         } | ||||||
|     else |     else | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -124,9 +124,6 @@ public: | |||||||
|  ************************************************/ |  ************************************************/ | ||||||
| volk_gnsssdr_type_t volk_gnsssdr_type_from_string(std::string); | volk_gnsssdr_type_t volk_gnsssdr_type_from_string(std::string); | ||||||
|  |  | ||||||
| float uniform(void); |  | ||||||
| void random_floats(float *buf, unsigned n); |  | ||||||
|  |  | ||||||
| bool run_volk_gnsssdr_tests( | bool run_volk_gnsssdr_tests( | ||||||
|     volk_gnsssdr_func_desc_t, |     volk_gnsssdr_func_desc_t, | ||||||
|     void (*)(), |     void (*)(), | ||||||
|   | |||||||
| @@ -238,6 +238,14 @@ target_compile_definitions(signal_source_adapters | |||||||
|     PRIVATE -DGNSSSDR_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}" |     PRIVATE -DGNSSSDR_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) | ||||||
|  |     if(GR_IIO_INCLUDE_HAS_GNURADIO) | ||||||
|  |         target_compile_definitions(signal_source_adapters | ||||||
|  |             PUBLIC -DGRIIO_INCLUDE_HAS_GNURADIO=1 | ||||||
|  |         ) | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  |  | ||||||
| if(ENABLE_CLANG_TIDY) | if(ENABLE_CLANG_TIDY) | ||||||
|     if(CLANG_TIDY_EXE) |     if(CLANG_TIDY_EXE) | ||||||
|         set_target_properties(signal_source_adapters |         set_target_properties(signal_source_adapters | ||||||
|   | |||||||
| @@ -36,7 +36,11 @@ | |||||||
| #include "gnss_block_interface.h" | #include "gnss_block_interface.h" | ||||||
| #include <boost/shared_ptr.hpp> | #include <boost/shared_ptr.hpp> | ||||||
| #include <gnuradio/blocks/file_sink.h> | #include <gnuradio/blocks/file_sink.h> | ||||||
|  | #if GRIIO_INCLUDE_HAS_GNURADIO | ||||||
| #include <gnuradio/iio/fmcomms2_source.h> | #include <gnuradio/iio/fmcomms2_source.h> | ||||||
|  | #else | ||||||
|  | #include <iio/fmcomms2_source.h> | ||||||
|  | #endif | ||||||
| #include <gnuradio/msg_queue.h> | #include <gnuradio/msg_queue.h> | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -35,7 +35,11 @@ | |||||||
| #include "gnss_block_interface.h" | #include "gnss_block_interface.h" | ||||||
| #include <boost/shared_ptr.hpp> | #include <boost/shared_ptr.hpp> | ||||||
| #include <gnuradio/blocks/file_sink.h> | #include <gnuradio/blocks/file_sink.h> | ||||||
|  | #if GRIIO_INCLUDE_HAS_GNURADIO | ||||||
| #include <gnuradio/iio/pluto_source.h> | #include <gnuradio/iio/pluto_source.h> | ||||||
|  | #else | ||||||
|  | #include <iio/pluto_source.h> | ||||||
|  | #endif | ||||||
| #include <gnuradio/msg_queue.h> | #include <gnuradio/msg_queue.h> | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -76,12 +76,20 @@ if(ENABLE_RAW_UDP AND PCAP_FOUND) | |||||||
|     ) |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 | ||||||
| if(OS_IS_MACOSX) | if(OS_IS_MACOSX) | ||||||
|     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |     if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000)) | ||||||
|         target_compile_definitions(signal_source_gr_blocks |         if(${has_string_view}) | ||||||
|             PUBLIC |             target_compile_definitions(signal_source_gr_blocks | ||||||
|                 -DBOOST_ASIO_HAS_STD_STRING_VIEW |                 PUBLIC | ||||||
|         ) |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=1 | ||||||
|  |             ) | ||||||
|  |         else() | ||||||
|  |             target_compile_definitions(signal_source_gr_blocks | ||||||
|  |                 PUBLIC | ||||||
|  |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=0 | ||||||
|  |             ) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -100,12 +100,20 @@ if(Boost_VERSION VERSION_GREATER "106599") | |||||||
|     ) |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 | ||||||
| if(OS_IS_MACOSX) | if(OS_IS_MACOSX) | ||||||
|     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |     if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000)) | ||||||
|         target_compile_definitions(tracking_libs |         if(${has_string_view}) | ||||||
|             PUBLIC |             target_compile_definitions(tracking_libs | ||||||
|                 -DBOOST_ASIO_HAS_STD_STRING_VIEW |                 PUBLIC | ||||||
|         ) |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=1 | ||||||
|  |             ) | ||||||
|  |         else() | ||||||
|  |             target_compile_definitions(tracking_libs | ||||||
|  |                 PUBLIC | ||||||
|  |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=0 | ||||||
|  |             ) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -68,15 +68,24 @@ if(Boost_VERSION VERSION_GREATER "106599") | |||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 | ||||||
| if(OS_IS_MACOSX) | if(OS_IS_MACOSX) | ||||||
|     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |     if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000)) | ||||||
|         target_compile_definitions(core_monitor |         if(${has_string_view}) | ||||||
|             PUBLIC |             target_compile_definitions(core_monitor | ||||||
|                 -DBOOST_ASIO_HAS_STD_STRING_VIEW |                 PUBLIC | ||||||
|         ) |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=1 | ||||||
|  |             ) | ||||||
|  |         else() | ||||||
|  |             target_compile_definitions(core_monitor | ||||||
|  |                 PUBLIC | ||||||
|  |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=0 | ||||||
|  |             ) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  |  | ||||||
| if(ENABLE_CLANG_TIDY) | if(ENABLE_CLANG_TIDY) | ||||||
|     if(CLANG_TIDY_EXE) |     if(CLANG_TIDY_EXE) | ||||||
|         set_target_properties(core_monitor |         set_target_properties(core_monitor | ||||||
|   | |||||||
| @@ -162,12 +162,20 @@ target_link_libraries(core_receiver | |||||||
|         pvt_adapters |         pvt_adapters | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | # Fix for Boost Asio < 1.70 | ||||||
| if(OS_IS_MACOSX) | if(OS_IS_MACOSX) | ||||||
|     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |     if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000)) | ||||||
|         target_compile_definitions(core_receiver |         if(${has_string_view}) | ||||||
|             PUBLIC |             target_compile_definitions(core_receiver | ||||||
|                 -DBOOST_ASIO_HAS_STD_STRING_VIEW |                 PUBLIC | ||||||
|         ) |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=1 | ||||||
|  |             ) | ||||||
|  |         else() | ||||||
|  |             target_compile_definitions(core_receiver | ||||||
|  |                 PUBLIC | ||||||
|  |                     -DBOOST_ASIO_HAS_STD_STRING_VIEW=0 | ||||||
|  |             ) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez