From c0c4544650ca02477acc9e856b3534d20e23f48c Mon Sep 17 00:00:00 2001
From: Vladslav P
Date: Fri, 28 Oct 2022 03:47:19 +0300
Subject: [PATCH 01/75] acquisition: populate gnss_synchro.fs with acquisition
sample rate
This makes it possible to use GNSS-SDR-Monitor to monitor acquisition
process too.
Set AcquisitionMonitor.udp_port to the same value as Monitor.udp_port to
see acquisition results.
The acquisitions will be shown with a red telemetry mark and no tracking
data.
Signed-off-by: Vladslav P
---
.../acquisition/gnuradio_blocks/pcps_acquisition.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
index a8ac0428e4..91753592c6 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
@@ -686,12 +686,14 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_delay_samples -= static_cast(d_acq_parameters.resampler_latency_samples); // account the resampler filter latency
d_gnss_synchro->Acq_doppler_hz = static_cast(doppler);
d_gnss_synchro->Acq_samplestamp_samples = rint(static_cast(samp_count) * d_acq_parameters.resampler_ratio);
+ d_gnss_synchro->fs = d_acq_parameters.resampled_fs;
}
else
{
d_gnss_synchro->Acq_delay_samples = static_cast(std::fmod(static_cast(indext), d_acq_parameters.samples_per_code));
d_gnss_synchro->Acq_doppler_hz = static_cast(doppler);
d_gnss_synchro->Acq_samplestamp_samples = samp_count;
+ d_gnss_synchro->fs = d_acq_parameters.fs_in;
}
}
else
@@ -745,6 +747,7 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_doppler_hz = static_cast(doppler);
d_gnss_synchro->Acq_samplestamp_samples = rint(static_cast(samp_count) * d_acq_parameters.resampler_ratio);
d_gnss_synchro->Acq_doppler_step = d_acq_parameters.doppler_step2;
+ d_gnss_synchro->fs = d_acq_parameters.resampled_fs;
}
else
{
@@ -752,6 +755,7 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_doppler_hz = static_cast(doppler);
d_gnss_synchro->Acq_samplestamp_samples = samp_count;
d_gnss_synchro->Acq_doppler_step = d_acq_parameters.doppler_step2;
+ d_gnss_synchro->fs = d_acq_parameters.fs_in;
}
}
From eb23504d0b71e916b6df413c103156360baca0e8 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sun, 18 Feb 2024 21:11:41 +0100
Subject: [PATCH 02/75] Bump local version of glog to 0.7.0
---
CMakeLists.txt | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 99e567462f..9ad58d6739 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -337,7 +337,7 @@ set(GNSSSDR_PYTHON3_MIN_VERSION "3.4")
################################################################################
set(GNSSSDR_ARMADILLO_LOCAL_VERSION "12.6.x")
set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.2")
-set(GNSSSDR_GLOG_LOCAL_VERSION "0.6.0")
+set(GNSSSDR_GLOG_LOCAL_VERSION "0.7.0")
set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.26")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "25.0")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.14")
@@ -348,6 +348,9 @@ set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.8.3")
set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7")
# Downgrade versions if requirements are not met
+if(CMAKE_VERSION VERSION_LESS "3.22")
+ set(GNSSSDR_GLOG_LOCAL_VERSION "0.6.0")
+endif()
if(CMAKE_VERSION VERSION_LESS "3.16")
set(GNSSSDR_GLOG_LOCAL_VERSION "0.5.0")
endif()
@@ -1729,6 +1732,9 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
if(GNSSSDR_GLOG_LOCAL_VERSION VERSION_GREATER 0.5.0)
set(GLOG_GTEST -DWITH_GTEST=FALSE)
endif()
+ if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
+ set(GNSSSDR_GLOG_LOCAL_GFLAGS -DCMAKE_REQUIRED_INCLUDES=${GFlags_INCLUDE_DIRS})
+ endif()
ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
DEPENDS ${TARGET_GFLAGS}
PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
@@ -1743,6 +1749,7 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
-DBUILD_SHARED_LIBS=OFF
${GLOG_GTEST}
-DBUILD_TESTING=OFF
+ "${GNSSSDR_GLOG_LOCAL_GFLAGS}"
BUILD_COMMAND "${GLOG_MAKE_PROGRAM} ${PARALLEL_BUILD}"
BUILD_BYPRODUCTS ${GLOG_BUILD_BYPRODUCTS}
UPDATE_COMMAND ""
@@ -1800,6 +1807,9 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
endif()
endif()
endif()
+ if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
+ target_precompile_headers(Glog::glog INTERFACE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/glog/export.h)
+ endif()
if(LIBUNWIND_FOUND)
target_link_libraries(Glog::glog INTERFACE Libunwind::libunwind)
From f446bf3238b194bac8ad9a4aef0ef00b7000059a Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 19 Feb 2024 17:54:18 +0100
Subject: [PATCH 03/75] Add missing include
Fix compilation against glog-0.7.0
---
src/algorithms/signal_source/libs/fpga_buffer_monitor.cc | 1 +
src/algorithms/signal_source/libs/fpga_dynamic_bit_selection.cc | 1 +
src/algorithms/signal_source/libs/fpga_switch.cc | 1 +
3 files changed, 3 insertions(+)
diff --git a/src/algorithms/signal_source/libs/fpga_buffer_monitor.cc b/src/algorithms/signal_source/libs/fpga_buffer_monitor.cc
index 136409f126..4495794417 100644
--- a/src/algorithms/signal_source/libs/fpga_buffer_monitor.cc
+++ b/src/algorithms/signal_source/libs/fpga_buffer_monitor.cc
@@ -31,6 +31,7 @@
#include // for string, ofstream
#include // for cout
#include // for mmap
+#include // for close
#include // for move
diff --git a/src/algorithms/signal_source/libs/fpga_dynamic_bit_selection.cc b/src/algorithms/signal_source/libs/fpga_dynamic_bit_selection.cc
index 933d8b77f6..8cec947efb 100644
--- a/src/algorithms/signal_source/libs/fpga_dynamic_bit_selection.cc
+++ b/src/algorithms/signal_source/libs/fpga_dynamic_bit_selection.cc
@@ -25,6 +25,7 @@
#include // for open, O_RDWR, O_SYNC
#include // for cout
#include // for mmap
+#include // for close
Fpga_dynamic_bit_selection::Fpga_dynamic_bit_selection(bool enable_rx1_band, bool enable_rx2_band)
: d_map_base_freq_band_1(nullptr),
diff --git a/src/algorithms/signal_source/libs/fpga_switch.cc b/src/algorithms/signal_source/libs/fpga_switch.cc
index 4bcbe4dc92..b56f63bf5c 100644
--- a/src/algorithms/signal_source/libs/fpga_switch.cc
+++ b/src/algorithms/signal_source/libs/fpga_switch.cc
@@ -25,6 +25,7 @@
#include // for open, O_RDWR, O_SYNC
#include // for cout
#include // for mmap
+#include // for close
Fpga_Switch::Fpga_Switch(const std::string &device_name)
{
From 58c066bd9eae311ae6d0ac9f8e1878b665e7caea Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Wed, 21 Feb 2024 17:39:43 +0100
Subject: [PATCH 04/75] Find dependencies in the loongarch64 architecture
---
CMakeLists.txt | 1 +
cmake/Modules/FindCPUFEATURES.cmake | 1 +
cmake/Modules/FindGFLAGS.cmake | 1 +
cmake/Modules/FindGFORTRAN.cmake | 1 +
cmake/Modules/FindGLOG.cmake | 1 +
cmake/Modules/FindGNURADIO.cmake | 1 +
cmake/Modules/FindGRIIO.cmake | 1 +
cmake/Modules/FindGRLIMESDR.cmake | 1 +
cmake/Modules/FindGROSMOSDR.cmake | 1 +
cmake/Modules/FindLIBAD9361.cmake | 1 +
cmake/Modules/FindLIBIIO.cmake | 1 +
docs/CHANGELOG.md | 12 +++++++++++-
12 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ad58d6739..245d429eb1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2160,6 +2160,7 @@ find_library(GNUTLS_OPENSSL_LIBRARY
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindCPUFEATURES.cmake b/cmake/Modules/FindCPUFEATURES.cmake
index 6f25e91d23..7c25e69c27 100644
--- a/cmake/Modules/FindCPUFEATURES.cmake
+++ b/cmake/Modules/FindCPUFEATURES.cmake
@@ -34,6 +34,7 @@ find_library(CPUFEATURES_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGFLAGS.cmake b/cmake/Modules/FindGFLAGS.cmake
index 2649380c99..08a5056b8f 100644
--- a/cmake/Modules/FindGFLAGS.cmake
+++ b/cmake/Modules/FindGFLAGS.cmake
@@ -78,6 +78,7 @@ else()
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake
index a6eb38a536..89530518d2 100644
--- a/cmake/Modules/FindGFORTRAN.cmake
+++ b/cmake/Modules/FindGFORTRAN.cmake
@@ -89,6 +89,7 @@ find_library(GFORTRAN NAMES gfortran
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/usr/local/lib/i386
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index e483dfbe9e..4805b3eaf6 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -71,6 +71,7 @@ macro(_FIND_GLOG_LIBRARIES _var)
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGNURADIO.cmake b/cmake/Modules/FindGNURADIO.cmake
index 5ce37cba69..9855ddc296 100644
--- a/cmake/Modules/FindGNURADIO.cmake
+++ b/cmake/Modules/FindGNURADIO.cmake
@@ -131,6 +131,7 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGRIIO.cmake b/cmake/Modules/FindGRIIO.cmake
index e08290252f..1abd5caf42 100644
--- a/cmake/Modules/FindGRIIO.cmake
+++ b/cmake/Modules/FindGRIIO.cmake
@@ -96,6 +96,7 @@ find_library(IIO_LIBRARIES
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGRLIMESDR.cmake b/cmake/Modules/FindGRLIMESDR.cmake
index cfd546feb8..2fb60cb3fb 100644
--- a/cmake/Modules/FindGRLIMESDR.cmake
+++ b/cmake/Modules/FindGRLIMESDR.cmake
@@ -96,6 +96,7 @@ find_library(GRLIMESDR_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindGROSMOSDR.cmake b/cmake/Modules/FindGROSMOSDR.cmake
index cfaef14947..22ee7d51e8 100644
--- a/cmake/Modules/FindGROSMOSDR.cmake
+++ b/cmake/Modules/FindGROSMOSDR.cmake
@@ -96,6 +96,7 @@ find_library(GROSMOSDR_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindLIBAD9361.cmake b/cmake/Modules/FindLIBAD9361.cmake
index 80df49673c..e1ff8e4a3b 100644
--- a/cmake/Modules/FindLIBAD9361.cmake
+++ b/cmake/Modules/FindLIBAD9361.cmake
@@ -75,6 +75,7 @@ find_library(LIBAD9361_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindLIBIIO.cmake b/cmake/Modules/FindLIBIIO.cmake
index 31f152b6f3..44f4d367eb 100644
--- a/cmake/Modules/FindLIBIIO.cmake
+++ b/cmake/Modules/FindLIBIIO.cmake
@@ -77,6 +77,7 @@ find_library(
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 0a1b7fee4d..7fb402e3a1 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -14,10 +14,20 @@ All notable changes to GNSS-SDR will be documented in this file.
## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
-### Improvements in Usability
+### Improvements in Portability:
+
+- Fix building against google-glog 0.7.0
+- Find dependencies in the loongarch64 architecture.
+
+### Improvements in Usability:
- Tidy up the `conf/` folder.
+See the definitions of concepts and metrics at
+https://gnss-sdr.org/design-forces/
+
+
+
## [GNSS-SDR v0.0.19.1](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.19.1) - 2024-01-26
[](https://doi.org/10.5281/zenodo.10579595)
From fbca34a4b41bfeefed02e2796efcd3e3648dce07 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Wed, 21 Feb 2024 17:49:24 +0100
Subject: [PATCH 05/75] Fix typo in changelog
---
docs/CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 7fb402e3a1..c453414f67 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -112,7 +112,7 @@ https://gnss-sdr.org/design-forces/
overkilling nine (the ninth decimal place worths up to 110 microns).
Similarly, height in meters is now reported with two decimal places instead of
three, and velocity in m/s also with two decimal places instead of three.
-- Fixed the rate at which KLM, GPX, GeoJSON, and NMEA annotations are made. The
+- Fixed the rate at which KML, GPX, GeoJSON, and NMEA annotations are made. The
rate is now set by `PVT.output_rate_ms` (`500` ms by default), and can be
particularized by `PVT.kml_rate_ms`, `PVT.gpx_rate_ms`, `PVT.geojson_rate_ms`,
and `PVT.nmea_rate_ms`. Those values should be multiples of
From 8e5d636132f111c8e2927ff4375ca7e2c40f0f5d Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 23 Feb 2024 12:52:32 +0100
Subject: [PATCH 06/75] Bump local version of googletest to v1.14.0
---
CMakeLists.txt | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 245d429eb1..bda1423c2f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -341,7 +341,7 @@ set(GNSSSDR_GLOG_LOCAL_VERSION "0.7.0")
set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.26")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "25.0")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.14")
-set(GNSSSDR_GTEST_LOCAL_VERSION "1.13.0")
+set(GNSSSDR_GTEST_LOCAL_VERSION "1.14.0")
set(GNSSSDR_GNSS_SIM_LOCAL_VERSION "master")
set(GNSSSDR_GNSSTK_LOCAL_VERSION "14.0.0")
set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.8.3")
@@ -375,6 +375,10 @@ if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
+if(CMAKE_VERSION VERSION_LESS "3.13")
+ set(GNSSSDR_GTEST_LOCAL_VERSION "1.12.1")
+endif()
+
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) OR
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) OR
CMAKE_VERSION VERSION_LESS 3.5)
From 0a66cca3819458bb462b3fd3edb80bf025041387 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sun, 25 Feb 2024 08:20:56 +0100
Subject: [PATCH 07/75] Fix for glog 0.7.0
---
cmake/Modules/FindGLOG.cmake | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index 4805b3eaf6..bef1f7b6aa 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -179,3 +179,8 @@ if(GLOG_FOUND AND NOT TARGET Glog::glog)
INTERFACE_LINK_LIBRARIES "${GLOG_LIBRARIES}"
)
endif()
+
+# Fix for glog 0.7.0
+if(EXISTS ${GLOG_INCLUDE_DIRS}/export.h)
+ target_precompile_headers(Glog::glog INTERFACE ${GLOG_INCLUDE_DIRS}/export.h)
+endif()
\ No newline at end of file
From a10a465d304298b1b73dfb57d5745932077b704d Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sun, 25 Feb 2024 10:08:43 +0100
Subject: [PATCH 08/75] Be more strict in googletest requirements
---
CMakeLists.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bda1423c2f..5c1eeddc73 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -375,7 +375,9 @@ if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
-if(CMAKE_VERSION VERSION_LESS "3.13")
+if(CMAKE_VERSION VERSION_LESS "3.13" OR
+ (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.1) OR
+ (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0))
set(GNSSSDR_GTEST_LOCAL_VERSION "1.12.1")
endif()
From 661a8aec0b7174e749f905660242f462d42efad4 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sun, 25 Feb 2024 10:32:34 +0100
Subject: [PATCH 09/75] Fix googletest tag
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5c1eeddc73..8aa6c51906 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -378,7 +378,7 @@ endif()
if(CMAKE_VERSION VERSION_LESS "3.13" OR
(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.1) OR
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0))
- set(GNSSSDR_GTEST_LOCAL_VERSION "1.12.1")
+ set(GNSSSDR_GTEST_LOCAL_VERSION "1.13.0")
endif()
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) OR
From 2988e2ac4a69e3d3c7906e091da6a3f1e39d5f1d Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 26 Feb 2024 14:44:20 +0100
Subject: [PATCH 10/75] Fix CI for macos-based jobs
---
.github/workflows/main.yml | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 183a871efb..eeecbaf389 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -54,8 +54,7 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install ninja hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf
- pip3 install mako
+ gflags glog gnuradio log4cpp openssl pugixml protobuf python-mako
- name: configure
run: cd build && cmake -GNinja ..
- name: build
@@ -83,8 +82,7 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf
- pip3 install mako
+ gflags glog gnuradio log4cpp openssl pugixml protobuf python-mako
- name: configure
run: cd build && cmake -GXcode ..
- name: build
@@ -131,8 +129,7 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install llvm pkg-config hdf5 armadillo lapack gflags glog gnuradio libmatio \
- log4cpp openssl pugixml protobuf
- pip3 install mako
+ log4cpp openssl pugixml protobuf python-mako
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
ln -s $(brew --prefix llvm)/bin/run-clang-tidy /usr/local/bin
From ccbbd7b2e41f1ce5a58860ad1d6249924eb64b0f Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 26 Feb 2024 15:05:01 +0100
Subject: [PATCH 11/75] Fix clang-tidy job
---
.github/workflows/main.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index eeecbaf389..56e631df82 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-# SPDX-FileCopyrightText: 2020-2022 Carles Fernandez-Prades
+# SPDX-FileCopyrightText: 2020-2024 Carles Fernandez-Prades
name: Simple CI
on:
@@ -134,7 +134,7 @@ jobs:
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
ln -s $(brew --prefix llvm)/bin/run-clang-tidy /usr/local/bin
- name: Prepare run
- run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.13.0 core_monitor core_libs pvt_libs
+ run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.14.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
run: cd build && run-clang-tidy -fix
- name: check
From 5a7087f3a75667882cb00dc361fb2d6f97de4e84 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 27 Feb 2024 08:08:53 +0100
Subject: [PATCH 12/75] Fix clang-tidy CI job
---
CMakeLists.txt | 3 +++
cmake/Modules/FindGLOG.cmake | 3 +++
2 files changed, 6 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8aa6c51906..02724fe038 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1815,6 +1815,9 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
endif()
if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
target_precompile_headers(Glog::glog INTERFACE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/glog/export.h)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_CXX_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -x c++-header -include ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/glog/export.h)
+ endif()
endif()
if(LIBUNWIND_FOUND)
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index bef1f7b6aa..3bec26aa94 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -183,4 +183,7 @@ endif()
# Fix for glog 0.7.0
if(EXISTS ${GLOG_INCLUDE_DIRS}/export.h)
target_precompile_headers(Glog::glog INTERFACE ${GLOG_INCLUDE_DIRS}/export.h)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_CXX_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -x c++-header -include ${GLOG_INCLUDE_DIRS}/export.h)
+ endif()
endif()
\ No newline at end of file
From cb42c595541a605faeae206c4e5a77e044d25324 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 27 Feb 2024 08:27:22 +0100
Subject: [PATCH 13/75] Fix homebrew instructions in README.md file
---
README.md | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/README.md b/README.md
index 7e9fd62d93..e745bf3361 100644
--- a/README.md
+++ b/README.md
@@ -867,20 +867,12 @@ $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/inst
The script explains what it will do, and then it pauses before doing it. There
are more installation options [here](https://docs.brew.sh/Installation.html).
-Install pip3:
-
-```
-$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
-$ sudo python3 get-pip.py
-```
-
Install the required dependencies:
```
$ brew update && brew upgrade
$ brew install armadillo cmake hdf5 gflags glog gnuradio libmatio log4cpp \
- openssl pkg-config protobuf pugixml
-$ pip3 install mako
+ openssl pkg-config protobuf pugixml pyhon-mako
$ brew install --cask mactex # when completed, restart Terminal
$ brew install graphviz doxygen
```
From 7a58a3e39b924c282e133521da1876c74169de9f Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 27 Feb 2024 13:45:38 +0100
Subject: [PATCH 14/75] Better way to consume google-glog
---
CMakeLists.txt | 7 +++----
cmake/Modules/FindGLOG.cmake | 5 +----
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 02724fe038..889c6e09cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1814,10 +1814,9 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
endif()
endif()
if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
- target_precompile_headers(Glog::glog INTERFACE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/glog/export.h)
- if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_CXX_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -x c++-header -include ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/glog/export.h)
- endif()
+ set_target_properties(Glog::glog PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT;GLOG_USE_GFLAGS"
+ INTERFACE_COMPILE_FEATURES "cxx_std_14")
endif()
if(LIBUNWIND_FOUND)
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index 3bec26aa94..6c506643e0 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -182,8 +182,5 @@ endif()
# Fix for glog 0.7.0
if(EXISTS ${GLOG_INCLUDE_DIRS}/export.h)
- target_precompile_headers(Glog::glog INTERFACE ${GLOG_INCLUDE_DIRS}/export.h)
- if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_CXX_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -x c++-header -include ${GLOG_INCLUDE_DIRS}/export.h)
- endif()
+ set_target_properties(Glog::glog PROPERTIES INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT")
endif()
\ No newline at end of file
From 31f8e65c6d833baba6a4565705cdd71a0403b154 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 27 Feb 2024 15:52:49 +0100
Subject: [PATCH 15/75] CI: update uraimo/run-on-arch-action
---
.github/workflows/gnss-sdr_archs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/gnss-sdr_archs.yml b/.github/workflows/gnss-sdr_archs.yml
index 6ba71fb648..ca95951878 100644
--- a/.github/workflows/gnss-sdr_archs.yml
+++ b/.github/workflows/gnss-sdr_archs.yml
@@ -41,7 +41,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- - uses: uraimo/run-on-arch-action@v2.6.0
+ - uses: uraimo/run-on-arch-action@v2.7.1
name: Test in non-x86 container
continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: test
From 15264a69e89b0f6de2ea3be9188a8a83d07810b8 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 27 Feb 2024 16:48:14 +0100
Subject: [PATCH 16/75] CI: update actions
---
.github/workflows/citation.yml | 2 +-
.github/workflows/volk_gnsssdr_archs.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/citation.yml b/.github/workflows/citation.yml
index 9de637fed4..db667992c9 100644
--- a/.github/workflows/citation.yml
+++ b/.github/workflows/citation.yml
@@ -24,7 +24,7 @@ jobs:
uses: dieghernan/cff-validator@main
# Upload artifact in case of failure
- name: Update artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
if: failure()
with:
name: citation-cff-errors
diff --git a/.github/workflows/volk_gnsssdr_archs.yml b/.github/workflows/volk_gnsssdr_archs.yml
index 0e34896476..734cda533f 100644
--- a/.github/workflows/volk_gnsssdr_archs.yml
+++ b/.github/workflows/volk_gnsssdr_archs.yml
@@ -45,7 +45,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- - uses: uraimo/run-on-arch-action@v2.6.0
+ - uses: uraimo/run-on-arch-action@v2.7.2
name: Build in non-x86 container
# continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: build
From ca00d7ad1fa7ab1841a8cfb87fc7d2d025cdbdd8 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Wed, 28 Feb 2024 07:57:05 +0100
Subject: [PATCH 17/75] CI: update action
---
.github/workflows/volk_gnsssdr_archs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/volk_gnsssdr_archs.yml b/.github/workflows/volk_gnsssdr_archs.yml
index 734cda533f..6f4e314543 100644
--- a/.github/workflows/volk_gnsssdr_archs.yml
+++ b/.github/workflows/volk_gnsssdr_archs.yml
@@ -45,7 +45,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- - uses: uraimo/run-on-arch-action@v2.7.2
+ - uses: uraimo/run-on-arch-action@v2.7.1
name: Build in non-x86 container
# continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: build
From 2d9bb1b79c71d2493f58c5734b5280bdd0def6fa Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sun, 3 Mar 2024 13:55:09 +0100
Subject: [PATCH 18/75] Improve architecture reporting
---
CMakeLists.txt | 4 ++--
cmake/Modules/DetectLinuxDistro.cmake | 10 +++++++---
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 889c6e09cc..13cbeb617a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3485,7 +3485,7 @@ message(STATUS "* SUMMARY REPORT *")
message(STATUS "***************************************")
message(STATUS "")
if(CMAKE_CROSSCOMPILING)
- message(STATUS "Cross-compiling on ${LINUX_DISTRIBUTION} ${LINUX_VER} (${CMAKE_HOST_SYSTEM_PROCESSOR}) for ${CMAKE_SYSTEM_PROCESSOR} ${ARCHITECTURE_STRING}")
+ message(STATUS "Cross-compiling on ${LINUX_DISTRIBUTION} ${LINUX_VER} (${CMAKE_HOST_SYSTEM_PROCESSOR}) for ${CMAKE_SYSTEM_PROCESSOR}")
else()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU")
message(STATUS "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}")
@@ -3508,7 +3508,7 @@ file(APPEND ${GNSSSDR_BINARY_DIR}/features.log "********************************
file(APPEND ${GNSSSDR_BINARY_DIR}/features.log "GNSS-SDR version: ${VERSION}\n")
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU")
if(CMAKE_CROSSCOMPILING)
- file(APPEND ${GNSSSDR_BINARY_DIR}/features.log "Cross-compiling on ${LINUX_DISTRIBUTION} ${LINUX_VER} (${CMAKE_HOST_SYSTEM_PROCESSOR}) for ${CMAKE_SYSTEM_PROCESSOR} ${ARCHITECTURE_STRING}\n")
+ file(APPEND ${GNSSSDR_BINARY_DIR}/features.log "Cross-compiling on ${LINUX_DISTRIBUTION} ${LINUX_VER} (${CMAKE_HOST_SYSTEM_PROCESSOR}) for ${CMAKE_SYSTEM_PROCESSOR}\n")
else()
file(APPEND ${GNSSSDR_BINARY_DIR}/features.log "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}\n")
endif()
diff --git a/cmake/Modules/DetectLinuxDistro.cmake b/cmake/Modules/DetectLinuxDistro.cmake
index 3fa556ba43..014b2a8d33 100644
--- a/cmake/Modules/DetectLinuxDistro.cmake
+++ b/cmake/Modules/DetectLinuxDistro.cmake
@@ -4,10 +4,14 @@
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
-if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(ARCHITECTURE_STRING "(64 bits)")
+if(CMAKE_VERSION VERSION_LESS 3.19)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(ARCHITECTURE_STRING "(64 bits)")
+ else()
+ set(ARCHITECTURE_STRING "(32 bits)")
+ endif()
else()
- set(ARCHITECTURE_STRING "(32 bits)")
+ set(ARCHITECTURE_STRING "(${CMAKE_HOST_SYSTEM_PROCESSOR})")
endif()
if(EXISTS "/etc/lsb-release")
From b879549748ff13e4fe6f724ac81d2fb10ef25615 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 5 Mar 2024 12:56:34 +0100
Subject: [PATCH 19/75] Update local Armadillo version to 12.8.x and
instructions in README.md file
---
CMakeLists.txt | 2 +-
README.md | 34 +++++++++++++++++-----------------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13cbeb617a..7c3bf7d388 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -335,7 +335,7 @@ set(GNSSSDR_PYTHON3_MIN_VERSION "3.4")
################################################################################
# Versions to download and build (but not to install system-wide) if not found
################################################################################
-set(GNSSSDR_ARMADILLO_LOCAL_VERSION "12.6.x")
+set(GNSSSDR_ARMADILLO_LOCAL_VERSION "12.8.x")
set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.2")
set(GNSSSDR_GLOG_LOCAL_VERSION "0.7.0")
set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.26")
diff --git a/README.md b/README.md
index e745bf3361..edac6e4af9 100644
--- a/README.md
+++ b/README.md
@@ -403,9 +403,9 @@ $ sudo apt-get install libblas-dev liblapack-dev # For Debian/Ubuntu/Linux
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo zypper install lapack-devel blas-devel # For OpenSUSE
$ sudo pacman -S blas lapack # For Arch Linux
-$ wget https://sourceforge.net/projects/arma/files/armadillo-12.0.1.tar.xz
-$ tar xvfz armadillo-12.0.1.tar.xz
-$ cd armadillo-12.0.1
+$ wget https://sourceforge.net/projects/arma/files/armadillo-12.8.1.tar.xz
+$ tar xvfz armadillo-12.8.1.tar.xz
+$ cd armadillo-12.8.1
$ cmake .
$ make
$ sudo make install
@@ -433,9 +433,9 @@ $ sudo ldconfig
#### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging
```
-$ wget https://github.com/google/glog/archive/v0.6.0.tar.gz
-$ tar xvfz v0.6.0.tar.gz
-$ cd glog-0.6.0
+$ wget https://github.com/google/glog/archive/v0.7.0.tar.gz
+$ tar xvfz v0.7.0.tar.gz
+$ cd glog-0.7.0
$ mkdir build && cd build
$ cmake ..
$ make
@@ -460,9 +460,9 @@ GNSS-SDR can also work well with
#### Install [Matio](https://github.com/tbeu/matio "Matio's Homepage"), MATLAB MAT file I/O library
```
-$ wget https://github.com/tbeu/matio/releases/download/v1.5.23/matio-1.5.23.tar.gz
-$ tar xvfz matio-1.5.23.tar.gz
-$ cd matio-1.5.23
+$ wget https://github.com/tbeu/matio/releases/download/v1.5.26/matio-1.5.26.tar.gz
+$ tar xvfz matio-1.5.26.tar.gz
+$ cd matio-1.5.26
$ ./configure
$ make
$ sudo make install
@@ -489,9 +489,9 @@ For more options, please check the
#### Install [Pugixml](https://pugixml.org/ "Pugixml's Homepage"), a light-weight C++ XML processing library
```
-$ wget https://github.com/zeux/pugixml/releases/download/v1.13/pugixml-1.13.tar.gz
-$ tar xvfz pugixml-1.13.tar.gz
-$ cd pugixml-1.13
+$ wget https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz
+$ tar xvfz pugixml-1.14.tar.gz
+$ cd pugixml-1.14
$ mkdir build && cd build
$ cmake ..
$ make
@@ -502,8 +502,8 @@ $ sudo ldconfig
#### Download [GoogleTest](https://github.com/google/googletest "Googletest Homepage")
```
-$ wget https://github.com/google/googletest/archive/refs/tags/v1.13.0.zip
-$ unzip v1.13.0.zip
+$ wget https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
+$ unzip v1.14.0.zip
```
Please **DO NOT build or install** Google Test. Every user needs to compile
@@ -527,10 +527,10 @@ downloaded resides. Just type in your terminal (or add it to your
`$HOME/.bashrc` file for a permanent solution) the following line:
```
-export GTEST_DIR=/home/username/googletest-1.13.0
+export GTEST_DIR=/home/username/googletest-1.14.0
```
-changing `/home/username/googletest-1.13.0` by the actual path where you
+changing `/home/username/googletest-1.14.0` by the actual path where you
unpacked Google Test. If the CMake script does not find that folder, or the
environment variable is not defined, or the source code is not installed by a
package, then it will download a fresh copy of the Google Test source code and
@@ -872,7 +872,7 @@ Install the required dependencies:
```
$ brew update && brew upgrade
$ brew install armadillo cmake hdf5 gflags glog gnuradio libmatio log4cpp \
- openssl pkg-config protobuf pugixml pyhon-mako
+ openssl pkg-config protobuf pugixml python-mako
$ brew install --cask mactex # when completed, restart Terminal
$ brew install graphviz doxygen
```
From f03608ac827b0b3eac471bbc6af9c47131ad2573 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 29 Mar 2024 14:39:32 +0100
Subject: [PATCH 20/75] Update links
---
CMakeLists.txt | 6 +++---
README.md | 31 +++++++++++++++------------
cmake/Modules/FindLOG4CPP.cmake | 2 +-
cmake/Modules/FindPCAP.cmake | 2 +-
docs/CHANGELOG.md | 5 ++---
docs/doxygen/other/main_page.dox | 6 +++---
docs/doxygen/other/reference_docs.dox | 14 ++++++------
docs/protobuf/README.md | 5 ++---
src/utils/nav-listener/README.md | 2 +-
src/utils/rinex-tools/README.md | 2 +-
10 files changed, 38 insertions(+), 37 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c3bf7d388..324e118fb5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1927,7 +1927,7 @@ endif()
################################################################################
-# Armadillo - http://arma.sourceforge.net/
+# Armadillo - https://arma.sourceforge.net/
################################################################################
if(ENABLE_OWN_ARMADILLO)
unset(Armadillo::armadillo CACHE)
@@ -1939,7 +1939,7 @@ else()
endif()
set_package_properties(Armadillo PROPERTIES
- URL "http://arma.sourceforge.net/"
+ URL "https://arma.sourceforge.net/"
PURPOSE "Used for matrix computations."
TYPE REQUIRED
)
@@ -2538,7 +2538,7 @@ endif()
################################################################################
find_package(Protobuf)
set_package_properties(Protobuf PROPERTIES
- URL "https://developers.google.com/protocol-buffers/"
+ URL "https://protobuf.dev/"
PURPOSE "Used to serialize output data in a way that can be read by other applications."
TYPE REQUIRED
)
diff --git a/README.md b/README.md
index edac6e4af9..bba7566a32 100644
--- a/README.md
+++ b/README.md
@@ -396,7 +396,7 @@ or manually as explained below, and then please follow instructions on how to
### Manual installation of other required dependencies
-#### Install [Armadillo](http://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library
+#### Install [Armadillo](https://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library
```
$ sudo apt-get install libblas-dev liblapack-dev # For Debian/Ubuntu/LinuxMint
@@ -469,7 +469,7 @@ $ sudo make install
$ sudo ldconfig
```
-#### Install [Protocol Buffers](https://developers.google.com/protocol-buffers/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data
+#### Install [Protocol Buffers](https://protobuf.dev/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data
GNSS-SDR requires Protocol Buffers v3.0.0 or later. If the packages that come
with your distribution are older than that (_e.g._, Ubuntu 16.04 Xenial came
@@ -886,7 +886,7 @@ $ brew install lapack
### Other package managers
GNU Radio and other dependencies can also be installed using other package
-managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink").
+managers than Macports, such as [Fink](https://www.finkproject.org/ "Fink").
Since the version of Python that ships with OS X is great for learning but it is
not good for development, you could have another Python executable in a
non-standard location. If that is the case, you need to inform GNSS-SDR's
@@ -976,7 +976,7 @@ do so.
- **GNSS-SDR in embedded platforms**: we provide a Software Development Kit
- (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for
+ (SDK) based on [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) for
cross-compiling GNSS-SDR in your desktop computer and for producing
executables that can run in embedded platforms, such as Xilinx's Zynq and
ZynqMP architectures, Raspberry Pi, and many others. Please check
@@ -1991,11 +1991,11 @@ PVT.rtcm_MT1077_rate_ms=1000
Notation (JSON) supported by numerous mapping and GIS software packages,
including [OpenLayers](https://openlayers.org),
[Leaflet](https://leafletjs.com), [MapServer](https://mapserver.org/),
- [GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com),
- [GDAL](https://gdal.org/), and [CartoDB](https://cartodb.com). It is also
- possible to use GeoJSON with [PostGIS](https://postgis.net/) and
- [Mapnik](https://mapnik.org/), both of which handle the format via the GDAL
- OGR conversion library. The
+ [GeoServer](https://geoserver.org/),
+ [GeoDjango](https://www.djangoproject.com), [GDAL](https://gdal.org/), and
+ [CartoDB](https://cartodb.com). It is also possible to use GeoJSON with
+ [PostGIS](https://postgis.net/) and [Mapnik](https://mapnik.org/), both of
+ which handle the format via the GDAL OGR conversion library. The
[Google Maps Javascript API](https://developers.google.com/maps/documentation/javascript/)
v3 directly supports the
[integration of GeoJSON data layers](https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple),
@@ -2008,8 +2008,9 @@ PVT.rtcm_MT1077_rate_ms=1000
(OGC KML), and it is maintained by the Open Geospatial Consortium, Inc. (OGC).
KML files can be displayed in geobrowsers such as
[Google Earth](https://www.google.com/earth/),
- [Marble](https://marble.kde.org), [osgEarth](http://osgearth.org), or used
- with the [NASA World Wind SDK for Java](https://worldwind.arc.nasa.gov/java/).
+ [Marble](https://marble.kde.org),
+ [osgEarth](https://github.com/gwaldron/osgearth), or used with the
+ [NASA World Wind SDK for Java](https://worldwind.arc.nasa.gov/java/).
- **GPX** (the GPS Exchange Format) is a lightweight XML data format for the
interchange of GPS data (waypoints, routes, and tracks) between applications
@@ -2044,9 +2045,11 @@ PVT.rtcm_MT1077_rate_ms=1000
(usually with other data unknown to the original receiver, such as better
models of the atmospheric conditions at time of measurement). RINEX files can
be used by software packages such as
- [GNSSTK](https://github.com/SGL-UT/gnsstk), [RTKLIB](http://www.rtklib.com/),
- and [gLAB](https://gage.upc.edu/gLAB/). GNSS-SDR by default generates RINEX
- version [3.02](ftp://igs.org/pub/data/format/rinex302.pdf). If
+ [GNSSTK](https://github.com/SGL-UT/gnsstk), [RTKLIB](https://www.rtklib.com/),
+ and
+ [gLAB](https://gage.upc.edu/en/learning-materials/software-tools/glab-tool-suite).
+ GNSS-SDR by default generates RINEX version
+ [3.02](ftp://igs.org/pub/data/format/rinex302.pdf). If
[2.11](ftp://igs.org/pub/data/format/rinex211.txt) is needed, it can be
requested through the `rinex_version` parameter in the configuration file:
diff --git a/cmake/Modules/FindLOG4CPP.cmake b/cmake/Modules/FindLOG4CPP.cmake
index 73876d1dad..95a14cf621 100644
--- a/cmake/Modules/FindLOG4CPP.cmake
+++ b/cmake/Modules/FindLOG4CPP.cmake
@@ -121,7 +121,7 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LOG4CPP DEFAULT_MSG LOG4CPP_INCLUDE_DIRS LOG4CPP_LIBRARIES)
set_package_properties(LOG4CPP PROPERTIES
- URL "http://log4cpp.sourceforge.net/"
+ URL "https://log4cpp.sourceforge.net/"
)
if(LOG4CPP_FOUND AND PC_LOG4CPP_VERSION)
diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake
index b72b5f5d14..ae4b049f6b 100644
--- a/cmake/Modules/FindPCAP.cmake
+++ b/cmake/Modules/FindPCAP.cmake
@@ -6,7 +6,7 @@
# - Find pcap
# Find the PCAP includes and library
-# http://www.tcpdump.org/
+# https://www.tcpdump.org/
#
# The environment variable PCAPDIR allows to specify where to find
# libpcap in non standard location.
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index c453414f67..3d797d4334 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -328,7 +328,7 @@ https://gnss-sdr.org/design-forces/
- Fixed building against GNU Radio v3.10.X.Y, which does not support the C++20
standard.
- Fixed building against GNU Radio v3.10.X.Y, which replaced
- [log4cpp](http://log4cpp.sourceforge.net/) by the
+ [log4cpp](https://log4cpp.sourceforge.net/) by the
[spdlog](https://github.com/gabime/spdlog) and
[fmt](https://github.com/fmtlib/fmt) libraries.
- Updated `cpu_features` library for improved processor detection.
@@ -475,8 +475,7 @@ https://gnss-sdr.org/design-forces/
inconsistencies in the configuration file.
- Fix segmentation fault if the RINEX output was disabled.
- Added a feature that optionally enables the remote monitoring of GPS and
- Galileo ephemeris using UDP and
- [Protocol Buffers](https://developers.google.com/protocol-buffers).
+ Galileo ephemeris using UDP and [Protocol Buffers](https://protobuf.dev/).
- Now building the software passing the `-DENABLE_FPGA=ON` to CMake does not
make the receiver unusable when running on non-FPGA-enabled platforms. On
FPGA-enabled platforms, now it is possible to run non-FPGA-enabled
diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox
index 0968c3eb91..5545c2baed 100644
--- a/docs/doxygen/other/main_page.dox
+++ b/docs/doxygen/other/main_page.dox
@@ -77,19 +77,19 @@ As outputs, it provides:
In principle, GNSS-SDR can be built in any Unix-like system. In practice, it depends on being able to install all the required dependencies. See the building guide page for details about the project's
dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries:
-\li Armadillo, a C++ linear algebra library,
+\li Armadillo, a C++ linear algebra library,
\li Boost, a set of free peer-reviewed portable C++ source libraries,
\li Gflags, a library that implements commandline flags processing,
\li Glog, a library that implements application-level logging,
\li Googletest, Google's framework for writing C++ tests,
\li Mako, a template library written in Python,
\li Matio, a MATLAB MAT File I/O Library,
-\li Protocol Buffers, a language-neutral, platform-neutral extensible mechanism for serializing structured data,
+\li Protocol Buffers, a language-neutral, platform-neutral extensible mechanism for serializing structured data,
\li PugiXML, a light-weight, simple and fast XML parser for C++ with XPath support,
\li Volk, a Vector-Optimized Library of Kernels which provides an abstraction of optimized math routines targeting several SIMD processors,
and, optionally,
-\li GNU Radio modules for hardware interface (gr-uhd, gr-osmosdr, gr-iio),
+\li GNU Radio modules for hardware interface (gr-uhd, gr-osmosdr, gr-iio),
\li Benchmark, a library to benchmark code snippets,
\li Gperftools, which provides fast, multi-threaded malloc() and performance analysis tools.
diff --git a/docs/doxygen/other/reference_docs.dox b/docs/doxygen/other/reference_docs.dox
index 00af2e1a22..5871776d5b 100644
--- a/docs/doxygen/other/reference_docs.dox
+++ b/docs/doxygen/other/reference_docs.dox
@@ -153,7 +153,7 @@ automatically selected by the CMake script):
You can get it from ISO, IEC
- or ANSI. The closest free working document available is
ISO, IEC
- or ANSI. The closest free working document available is
N4659.
C++14: A former ISO C++ standard was officially known as ISO International Standard ISO/IEC 14882:2014 – Programming languages – C++.
You can get it from ISO or ANSI. The closest free working document available is
N4296.
C++11: An older ISO C++ standard was ISO/IEC 14882:2011.
You can get it from ISO. The closest free working document available is N3337.
@@ -207,7 +207,7 @@ User plane protocols:
\li Open Mobile Alliance (OMA), Secure User Plane Location Architecture Version 2 (SUPL 2.0), April 2012.
LTE Release 9 introduced extension hooks in LPP messages, so that the bodies external to 3GPP could extend the LPP feature set. OMA LPP extensions (LPPe), supported in SUPL 3.0, build on top of the 3GPP LPP reusing its procedures and data types.
-Check the OMA Specifications webpage for updated information about LPP Extensions (LPPe) Specification.
+Check the OMA Specifications webpage for updated information about LPP Extensions (LPPe) Specification.
\li The OMA Mobile Location Protocol (MLP) V3.5
is an application-level protocol for getting the position of mobile stations
diff --git a/docs/protobuf/README.md b/docs/protobuf/README.md
index a555ae44ce..438a9d66d8 100644
--- a/docs/protobuf/README.md
+++ b/docs/protobuf/README.md
@@ -11,9 +11,8 @@ SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades
Files in this folder describe structured data formats that are generated by
-GNSS-SDR. They use
-[Protocol Buffers](https://developers.google.com/protocol-buffers/)'
-[proto3](https://developers.google.com/protocol-buffers/docs/proto3) syntax.
+GNSS-SDR. They use [Protocol Buffers](https://protobuf.dev/)'
+[proto3](https://protobuf.dev/programming-guides/proto3/) syntax.
From those files, the protocol buffer compiler creates classes that implement
automatic encoding and parsing of the protocol buffer data with an efficient
diff --git a/src/utils/nav-listener/README.md b/src/utils/nav-listener/README.md
index 147e9717f5..76b2aedaf0 100644
--- a/src/utils/nav-listener/README.md
+++ b/src/utils/nav-listener/README.md
@@ -17,7 +17,7 @@ as a example on how to retrieve data using the `nav_message.proto` file.
# Build the software
This software requires [Boost](https://www.boost.org/) and
-[Protocol Buffers](https://developers.google.com/protocol-buffers).
+[Protocol Buffers](https://protobuf.dev/).
In a terminal, type:
diff --git a/src/utils/rinex-tools/README.md b/src/utils/rinex-tools/README.md
index 58a1bd259a..453ccd7a9c 100644
--- a/src/utils/rinex-tools/README.md
+++ b/src/utils/rinex-tools/README.md
@@ -17,7 +17,7 @@ observation files.
Requirements:
-- [Armadillo](http://arma.sourceforge.net/): A C++ library for linear algebra
+- [Armadillo](https://arma.sourceforge.net/): A C++ library for linear algebra
and scientific computing. This program requires version 9.800 or higher. If
your installed Armadillo version is older, see below.
- [Gflags](https://github.com/gflags/gflags): A C++ library that implements
From 4d934017c6f9b0e9f9d07f5992d0ddc0d958ddd4 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 29 Mar 2024 22:57:49 +0100
Subject: [PATCH 21/75] CI: Fix macos-based jobs
---
.github/workflows/main.yml | 27 +++++++++++++++++++++------
README.md | 3 ++-
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 56e631df82..ad507ba20a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -40,6 +40,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
- name: install dependencies
run: |
brew update
@@ -53,8 +56,10 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
+ brew link --overwrite python@3.12
brew install ninja hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf python-mako
+ gflags glog gnuradio log4cpp openssl pugixml protobuf
+ pip3 install mako
- name: configure
run: cd build && cmake -GNinja ..
- name: build
@@ -68,6 +73,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
- name: install dependencies
run: |
brew update
@@ -81,8 +89,10 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
+ brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf python-mako
+ gflags glog gnuradio log4cpp openssl pugixml protobuf
+ pip3 install mako
- name: configure
run: cd build && cmake -GXcode ..
- name: build
@@ -115,6 +125,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
- name: install dependencies
run: |
brew update
@@ -128,15 +141,17 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
- brew install llvm pkg-config hdf5 armadillo lapack gflags glog gnuradio libmatio \
- log4cpp openssl pugixml protobuf python-mako
+ brew link --overwrite python@3.12
+ brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
+ gflags glog gnuradio log4cpp openssl pugixml protobuf llvm
+ pip3 install mako
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
- ln -s $(brew --prefix llvm)/bin/run-clang-tidy /usr/local/bin
+ ln -s $(brew --prefix llvm)/bin/run-clang-tidy.py /usr/local/bin
- name: Prepare run
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.14.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
- run: cd build && run-clang-tidy -fix
+ run: cd build && /usr/local/opt/llvm/bin/run-clang-tidy -fix
- name: check
run: |
git diff > clang_tidy.patch
diff --git a/README.md b/README.md
index bba7566a32..02bc80df77 100644
--- a/README.md
+++ b/README.md
@@ -872,9 +872,10 @@ Install the required dependencies:
```
$ brew update && brew upgrade
$ brew install armadillo cmake hdf5 gflags glog gnuradio libmatio log4cpp \
- openssl pkg-config protobuf pugixml python-mako
+ openssl pkg-config protobuf pugixml
$ brew install --cask mactex # when completed, restart Terminal
$ brew install graphviz doxygen
+¢ pip3 install mako
```
For macOS versions older than Sonoma, you will also need LAPACK:
From d0b170547470da859fe08b86682cd27c6d7d1170 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sat, 30 Mar 2024 00:10:55 +0100
Subject: [PATCH 22/75] Bump local version of Protocol Buffers to 26.1 and
GNSSTk to 14.3.0
---
CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 324e118fb5..a20109162b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -339,11 +339,11 @@ set(GNSSSDR_ARMADILLO_LOCAL_VERSION "12.8.x")
set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.2")
set(GNSSSDR_GLOG_LOCAL_VERSION "0.7.0")
set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.26")
-set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "25.0")
+set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "26.1")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.14")
set(GNSSSDR_GTEST_LOCAL_VERSION "1.14.0")
set(GNSSSDR_GNSS_SIM_LOCAL_VERSION "master")
-set(GNSSSDR_GNSSTK_LOCAL_VERSION "14.0.0")
+set(GNSSSDR_GNSSTK_LOCAL_VERSION "14.3.0")
set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.8.3")
set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7")
From 3f014b4a64ee45a8ff18f2c18d6b961294ce0526 Mon Sep 17 00:00:00 2001
From: Marc Majoral
Date: Thu, 4 Apr 2024 19:13:55 +0200
Subject: [PATCH 23/75] Fixed a deadlock issue in the FPGA-based tracking loops
---
.../tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc
index 070f0d46fc..0d450d4699 100644
--- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc
+++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc
@@ -1530,11 +1530,12 @@ int dll_pll_veml_tracking_fpga::general_work(int noutput_items __attribute__((un
{
boost::mutex::scoped_lock lock(d_mutex);
d_worker_is_done = false;
+ l.unlock();
while (!d_worker_is_done)
{
d_m_condition.wait(lock);
}
-
+ l.lock();
// Signal alignment (skip samples until the incoming signal is aligned with local replica)
int64_t acq_trk_diff_samples;
double acq_trk_diff_seconds;
From 7e7994552927ed3a89e3f81d8de64de11191974d Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 5 Apr 2024 13:37:45 +0200
Subject: [PATCH 24/75] Update Flexiband_Signal_Source to admit modern GNU
Radio versions
---
cmake/Modules/FindTELEORBIT.cmake | 1 +
.../signal_source/adapters/flexiband_signal_source.cc | 2 +-
.../signal_source/adapters/flexiband_signal_source.h | 6 +++---
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/cmake/Modules/FindTELEORBIT.cmake b/cmake/Modules/FindTELEORBIT.cmake
index b0d5e6c208..db888984ae 100644
--- a/cmake/Modules/FindTELEORBIT.cmake
+++ b/cmake/Modules/FindTELEORBIT.cmake
@@ -38,6 +38,7 @@ set(TELEORBIT_ROOT_USER_DEFINED
find_path(TELEORBIT_INCLUDE_DIRS
NAMES teleorbit/api.h
HINTS ${PC_TELEORBIT_INCLUDEDIR}
+ PATH_SUFFIXES gnuradio
PATHS ${TELEORBIT_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc
index 03065374ea..66683bf7f3 100644
--- a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc
+++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc
@@ -34,7 +34,7 @@ FlexibandSignalSource::FlexibandSignalSource(const ConfigurationInterface* confi
Concurrent_Queue* queue __attribute__((unused)))
: SignalSourceBase(configuration, role, "Flexiband_Signal_Source"s), in_stream_(in_stream), out_stream_(out_stream)
{
- const std::string default_item_type("byte");
+ const std::string default_item_type("gr_complex");
item_type_ = configuration->property(role + ".item_type", default_item_type);
const std::string default_firmware_file("flexiband_I-1b.bit");
diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.h b/src/algorithms/signal_source/adapters/flexiband_signal_source.h
index 7366d7ce9e..47160a32af 100644
--- a/src/algorithms/signal_source/adapters/flexiband_signal_source.h
+++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.h
@@ -66,10 +66,10 @@ class FlexibandSignalSource : public SignalSourceBase
gr::basic_block_sptr get_right_block(int RF_channel) override;
private:
- boost::shared_ptr flexiband_source_;
+ gnss_shared_ptr flexiband_source_;
- std::vector> char_to_float;
- std::vector> float_to_complex_;
+ std::vector> char_to_float;
+ std::vector> float_to_complex_;
std::vector null_sinks_;
std::string item_type_;
From 6fc04b34f2956aca6bcba16b1b574244482c2e1c Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 12 Apr 2024 18:15:33 +0200
Subject: [PATCH 25/75] Fix duplicate warning from Xcode
---
cmake/Modules/XcodeDeleteDuplicates.cmake | 23 +++++++++++++++++++
.../volk_gnsssdr/apps/CMakeLists.txt | 5 ++++
.../cmake/Modules/XcodeDeleteDuplicates.cmake | 23 +++++++++++++++++++
.../volk_gnsssdr/lib/CMakeLists.txt | 9 ++++++++
src/main/CMakeLists.txt | 3 +++
src/tests/CMakeLists.txt | 21 +++++++++++++++++
src/utils/front-end-cal/CMakeLists.txt | 3 +++
7 files changed, 87 insertions(+)
create mode 100644 cmake/Modules/XcodeDeleteDuplicates.cmake
create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
diff --git a/cmake/Modules/XcodeDeleteDuplicates.cmake b/cmake/Modules/XcodeDeleteDuplicates.cmake
new file mode 100644
index 0000000000..129059c07b
--- /dev/null
+++ b/cmake/Modules/XcodeDeleteDuplicates.cmake
@@ -0,0 +1,23 @@
+# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
+# This file is part of GNSS-SDR.
+#
+# SPDX-FileCopyrightText: 2011-2024 C. Fernandez-Prades cfernandez(at)cttc.es
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(DEFINED __INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE)
+ return()
+endif()
+set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
+
+function(xcode_delete_duplicates target)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
+ # A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
+ # `-warn_duplicate_libraries` is now enabled by default which may result
+ # in several 'duplicate libraries warning'.
+ # - https://gitlab.kitware.com/cmake/cmake/-/issues/25297 and
+ # - https://indiestack.com/2023/10/xcode-15-duplicate-library-linker-warnings/
+ target_link_options(${target} PUBLIC "LINKER:-no_warn_duplicate_libraries")
+ endif()
+ endif()
+endfunction()
\ No newline at end of file
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
index e4bfcf4d76..acfece40a9 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
@@ -77,6 +77,9 @@ if(UNIX)
)
endif()
+include(XcodeDeleteDuplicates)
+xcode_delete_duplicates(volk_gnsssdr_profile)
+
if(ENABLE_STRIP)
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
set_target_properties(volk_gnsssdr_profile
@@ -106,6 +109,8 @@ if(UNIX)
)
endif()
+xcode_delete_duplicates(volk_gnsssdr-config-info)
+
if(ENABLE_STRIP)
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
set_target_properties(volk_gnsssdr-config-info
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
new file mode 100644
index 0000000000..129059c07b
--- /dev/null
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
@@ -0,0 +1,23 @@
+# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
+# This file is part of GNSS-SDR.
+#
+# SPDX-FileCopyrightText: 2011-2024 C. Fernandez-Prades cfernandez(at)cttc.es
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(DEFINED __INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE)
+ return()
+endif()
+set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
+
+function(xcode_delete_duplicates target)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
+ # A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
+ # `-warn_duplicate_libraries` is now enabled by default which may result
+ # in several 'duplicate libraries warning'.
+ # - https://gitlab.kitware.com/cmake/cmake/-/issues/25297 and
+ # - https://indiestack.com/2023/10/xcode-15-duplicate-library-linker-warnings/
+ target_link_options(${target} PUBLIC "LINKER:-no_warn_duplicate_libraries")
+ endif()
+ endif()
+endfunction()
\ No newline at end of file
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
index 2562bd90c2..e9a641c593 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
@@ -4,6 +4,7 @@
# SPDX-FileCopyrightText: 2010-2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
+include(XcodeDeleteDuplicates)
########################################################################
# header file detection
@@ -595,6 +596,9 @@ if(NOT (ENABLE_STATIC_LIBS AND (CMAKE_GENERATOR STREQUAL Xcode)))
else()
target_link_libraries(volk_gnsssdr PUBLIC ${volk_gnsssdr_libraries})
endif()
+
+ xcode_delete_duplicates(volk_gnsssdr)
+
target_include_directories(volk_gnsssdr
PUBLIC $
PUBLIC $
@@ -676,6 +680,8 @@ if(ENABLE_STATIC_LIBS)
)
set_target_properties(volk_gnsssdr_static PROPERTIES OUTPUT_NAME volk_gnsssdr)
+ xcode_delete_duplicates(volk_gnsssdr_static)
+
install(TARGETS volk_gnsssdr_static
EXPORT VOLK_GNSSSDR-export
ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_devel"
@@ -702,6 +708,9 @@ if(ENABLE_TESTING)
TARGET_DEPS volk_gnsssdr
)
endif()
+
+ xcode_delete_duplicates(volk_gnsssdr_test_all)
+
foreach(kernel ${h_files})
get_filename_component(kernel ${kernel} NAME)
string(REPLACE ".h" "" kernel ${kernel})
diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt
index 2895d5973f..c1d5fc11a0 100644
--- a/src/main/CMakeLists.txt
+++ b/src/main/CMakeLists.txt
@@ -65,6 +65,9 @@ if(ENABLE_STRIP)
set_target_properties(gnss-sdr PROPERTIES LINK_FLAGS "-s")
endif()
+include(XcodeDeleteDuplicates)
+xcode_delete_duplicates(gnss-sdr)
+
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
set_target_properties(gnss-sdr
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 5863284bad..0193d572c0 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -8,6 +8,8 @@
add_subdirectory(unit-tests/signal-processing-blocks/libs)
add_subdirectory(system-tests/libs)
+include(XcodeDeleteDuplicates)
+
################################################################################
# Google Test - https://github.com/google/googletest
################################################################################
@@ -645,6 +647,7 @@ if(ENABLE_UNIT_TESTING)
target_compile_definitions(run_tests PRIVATE -DGNSSTK_OLDER_THAN_9=1)
endif()
endif()
+ xcode_delete_duplicates(run_tests)
if(ENABLE_STRIP)
set_target_properties(run_tests PROPERTIES LINK_FLAGS "-s")
endif()
@@ -823,6 +826,9 @@ function(add_system_test executable)
${LOCAL_INSTALL_BASE_DIR}/install/$
)
endif()
+
+ xcode_delete_duplicates(${executable})
+
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
set_target_properties(${executable}
@@ -937,6 +943,9 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
PRIVATE
${GNSSSDR_SOURCE_DIR}/src/algorithms/libs
)
+
+ xcode_delete_duplicates(flowgraph_test)
+
add_test(flowgraph_test flowgraph_test)
set_property(TEST flowgraph_test PROPERTY TIMEOUT 30)
@@ -992,6 +1001,8 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
target_compile_definitions(gnss_block_test PRIVATE -DENABLE_FPGA=1)
endif()
+ xcode_delete_duplicates(gnss_block_test)
+
add_test(gnss_block_test gnss_block_test)
set_property(TEST gnss_block_test PROPERTY TIMEOUT 60)
@@ -1029,6 +1040,8 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
algorithms_libs
)
+ xcode_delete_duplicates(gnuradio_block_test)
+
add_test(gnuradio_block_test gnuradio_block_test)
set_property(TEST gnuradio_block_test PROPERTY TIMEOUT 30)
@@ -1063,6 +1076,8 @@ target_include_directories(matio_test
${GNSSSDR_SOURCE_DIR}/src/tests/common-files
)
+xcode_delete_duplicates(matio_test)
+
add_test(matio_test matio_test)
set_property(TEST matio_test PROPERTY TIMEOUT 30)
@@ -1112,6 +1127,8 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
)
endif()
+ xcode_delete_duplicates(acq_test)
+
add_test(acq_test acq_test)
if(USE_GENERIC_LAMBDAS)
@@ -1208,6 +1225,8 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
)
endif()
+ xcode_delete_duplicates(trk_test)
+
add_test(trk_test trk_test)
set_property(TEST trk_test PROPERTY TIMEOUT 30)
@@ -1239,6 +1258,8 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
core_receiver
)
+ xcode_delete_duplicates(control_thread_test)
+
add_test(control_thread_test control_thread_test)
set_property(TEST control_thread_test PROPERTY TIMEOUT 30)
diff --git a/src/utils/front-end-cal/CMakeLists.txt b/src/utils/front-end-cal/CMakeLists.txt
index 14e55ca99e..b27a943511 100644
--- a/src/utils/front-end-cal/CMakeLists.txt
+++ b/src/utils/front-end-cal/CMakeLists.txt
@@ -102,6 +102,9 @@ if(PMT_USES_BOOST_ANY)
)
endif()
+include(XcodeDeleteDuplicates)
+xcode_delete_duplicates(front-end-cal)
+
if(ENABLE_STRIP)
set_target_properties(front-end-cal PROPERTIES LINK_FLAGS "-s")
endif()
From fc695cb6f6f3538f9a2684d2dda767f33707e803 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Fri, 12 Apr 2024 19:51:37 +0200
Subject: [PATCH 26/75] CI: make cmakelint happy
---
cmake/Modules/XcodeDeleteDuplicates.cmake | 2 +-
.../volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmake/Modules/XcodeDeleteDuplicates.cmake b/cmake/Modules/XcodeDeleteDuplicates.cmake
index 129059c07b..0f8656f369 100644
--- a/cmake/Modules/XcodeDeleteDuplicates.cmake
+++ b/cmake/Modules/XcodeDeleteDuplicates.cmake
@@ -10,7 +10,7 @@ endif()
set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
function(xcode_delete_duplicates target)
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
# A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
# `-warn_duplicate_libraries` is now enabled by default which may result
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
index 129059c07b..0f8656f369 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
@@ -10,7 +10,7 @@ endif()
set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
function(xcode_delete_duplicates target)
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
# A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
# `-warn_duplicate_libraries` is now enabled by default which may result
From fd5174e7ecce6f57073a0cd6cefa2e80958ac582 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sat, 13 Apr 2024 09:03:46 +0200
Subject: [PATCH 27/75] Remove duplicate libraries warning emitted by Xcode 15
---
...ake => XcodeRemoveWarningDuplicates.cmake} | 6 +++---
.../volk_gnsssdr/apps/CMakeLists.txt | 6 +++---
...ake => XcodeRemoveWarningDuplicates.cmake} | 6 +++---
.../volk_gnsssdr/lib/CMakeLists.txt | 8 ++++----
src/main/CMakeLists.txt | 4 ++--
src/tests/CMakeLists.txt | 20 +++++++++----------
src/utils/front-end-cal/CMakeLists.txt | 4 ++--
src/utils/rinex-tools/CMakeLists.txt | 3 +++
8 files changed, 30 insertions(+), 27 deletions(-)
rename cmake/Modules/{XcodeDeleteDuplicates.cmake => XcodeRemoveWarningDuplicates.cmake} (84%)
rename src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/{XcodeDeleteDuplicates.cmake => XcodeRemoveWarningDuplicates.cmake} (84%)
diff --git a/cmake/Modules/XcodeDeleteDuplicates.cmake b/cmake/Modules/XcodeRemoveWarningDuplicates.cmake
similarity index 84%
rename from cmake/Modules/XcodeDeleteDuplicates.cmake
rename to cmake/Modules/XcodeRemoveWarningDuplicates.cmake
index 0f8656f369..f4e150fcc9 100644
--- a/cmake/Modules/XcodeDeleteDuplicates.cmake
+++ b/cmake/Modules/XcodeRemoveWarningDuplicates.cmake
@@ -4,12 +4,12 @@
# SPDX-FileCopyrightText: 2011-2024 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
-if(DEFINED __INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE)
+if(DEFINED __INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE)
return()
endif()
-set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
+set(__INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE TRUE)
-function(xcode_delete_duplicates target)
+function(xcode_remove_warning_duplicates target)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
# A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
index acfece40a9..e821363c69 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt
@@ -77,8 +77,8 @@ if(UNIX)
)
endif()
-include(XcodeDeleteDuplicates)
-xcode_delete_duplicates(volk_gnsssdr_profile)
+include(XcodeRemoveWarningDuplicates)
+xcode_remove_warning_duplicates(volk_gnsssdr_profile)
if(ENABLE_STRIP)
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
@@ -109,7 +109,7 @@ if(UNIX)
)
endif()
-xcode_delete_duplicates(volk_gnsssdr-config-info)
+xcode_remove_warning_duplicates(volk_gnsssdr-config-info)
if(ENABLE_STRIP)
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeRemoveWarningDuplicates.cmake
similarity index 84%
rename from src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
rename to src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeRemoveWarningDuplicates.cmake
index 0f8656f369..f4e150fcc9 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeDeleteDuplicates.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/XcodeRemoveWarningDuplicates.cmake
@@ -4,12 +4,12 @@
# SPDX-FileCopyrightText: 2011-2024 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
-if(DEFINED __INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE)
+if(DEFINED __INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE)
return()
endif()
-set(__INCLUDED_XCODE_DELETE_DUPLICATES_CMAKE TRUE)
+set(__INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE TRUE)
-function(xcode_delete_duplicates target)
+function(xcode_remove_warning_duplicates target)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
# A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
index e9a641c593..6296881d0c 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt
@@ -4,7 +4,7 @@
# SPDX-FileCopyrightText: 2010-2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
-include(XcodeDeleteDuplicates)
+include(XcodeRemoveWarningDuplicates)
########################################################################
# header file detection
@@ -597,7 +597,7 @@ if(NOT (ENABLE_STATIC_LIBS AND (CMAKE_GENERATOR STREQUAL Xcode)))
target_link_libraries(volk_gnsssdr PUBLIC ${volk_gnsssdr_libraries})
endif()
- xcode_delete_duplicates(volk_gnsssdr)
+ xcode_remove_warning_duplicates(volk_gnsssdr)
target_include_directories(volk_gnsssdr
PUBLIC $
@@ -680,7 +680,7 @@ if(ENABLE_STATIC_LIBS)
)
set_target_properties(volk_gnsssdr_static PROPERTIES OUTPUT_NAME volk_gnsssdr)
- xcode_delete_duplicates(volk_gnsssdr_static)
+ xcode_remove_warning_duplicates(volk_gnsssdr_static)
install(TARGETS volk_gnsssdr_static
EXPORT VOLK_GNSSSDR-export
@@ -709,7 +709,7 @@ if(ENABLE_TESTING)
)
endif()
- xcode_delete_duplicates(volk_gnsssdr_test_all)
+ xcode_remove_warning_duplicates(volk_gnsssdr_test_all)
foreach(kernel ${h_files})
get_filename_component(kernel ${kernel} NAME)
diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt
index c1d5fc11a0..9f7ead3c74 100644
--- a/src/main/CMakeLists.txt
+++ b/src/main/CMakeLists.txt
@@ -65,8 +65,8 @@ if(ENABLE_STRIP)
set_target_properties(gnss-sdr PROPERTIES LINK_FLAGS "-s")
endif()
-include(XcodeDeleteDuplicates)
-xcode_delete_duplicates(gnss-sdr)
+include(XcodeRemoveWarningDuplicates)
+xcode_remove_warning_duplicates(gnss-sdr)
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 0193d572c0..bd0a8e92c9 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -8,7 +8,7 @@
add_subdirectory(unit-tests/signal-processing-blocks/libs)
add_subdirectory(system-tests/libs)
-include(XcodeDeleteDuplicates)
+include(XcodeRemoveWarningDuplicates)
################################################################################
# Google Test - https://github.com/google/googletest
@@ -647,7 +647,7 @@ if(ENABLE_UNIT_TESTING)
target_compile_definitions(run_tests PRIVATE -DGNSSTK_OLDER_THAN_9=1)
endif()
endif()
- xcode_delete_duplicates(run_tests)
+ xcode_remove_warning_duplicates(run_tests)
if(ENABLE_STRIP)
set_target_properties(run_tests PROPERTIES LINK_FLAGS "-s")
endif()
@@ -827,7 +827,7 @@ function(add_system_test executable)
)
endif()
- xcode_delete_duplicates(${executable})
+ xcode_remove_warning_duplicates(${executable})
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
@@ -944,7 +944,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
${GNSSSDR_SOURCE_DIR}/src/algorithms/libs
)
- xcode_delete_duplicates(flowgraph_test)
+ xcode_remove_warning_duplicates(flowgraph_test)
add_test(flowgraph_test flowgraph_test)
@@ -1001,7 +1001,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
target_compile_definitions(gnss_block_test PRIVATE -DENABLE_FPGA=1)
endif()
- xcode_delete_duplicates(gnss_block_test)
+ xcode_remove_warning_duplicates(gnss_block_test)
add_test(gnss_block_test gnss_block_test)
@@ -1040,7 +1040,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
algorithms_libs
)
- xcode_delete_duplicates(gnuradio_block_test)
+ xcode_remove_warning_duplicates(gnuradio_block_test)
add_test(gnuradio_block_test gnuradio_block_test)
@@ -1076,7 +1076,7 @@ target_include_directories(matio_test
${GNSSSDR_SOURCE_DIR}/src/tests/common-files
)
-xcode_delete_duplicates(matio_test)
+xcode_remove_warning_duplicates(matio_test)
add_test(matio_test matio_test)
@@ -1127,7 +1127,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
)
endif()
- xcode_delete_duplicates(acq_test)
+ xcode_remove_warning_duplicates(acq_test)
add_test(acq_test acq_test)
@@ -1225,7 +1225,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
)
endif()
- xcode_delete_duplicates(trk_test)
+ xcode_remove_warning_duplicates(trk_test)
add_test(trk_test trk_test)
@@ -1258,7 +1258,7 @@ if(NOT ENABLE_PACKAGING AND NOT ENABLE_FPGA)
core_receiver
)
- xcode_delete_duplicates(control_thread_test)
+ xcode_remove_warning_duplicates(control_thread_test)
add_test(control_thread_test control_thread_test)
diff --git a/src/utils/front-end-cal/CMakeLists.txt b/src/utils/front-end-cal/CMakeLists.txt
index b27a943511..f8abe59a51 100644
--- a/src/utils/front-end-cal/CMakeLists.txt
+++ b/src/utils/front-end-cal/CMakeLists.txt
@@ -102,8 +102,8 @@ if(PMT_USES_BOOST_ANY)
)
endif()
-include(XcodeDeleteDuplicates)
-xcode_delete_duplicates(front-end-cal)
+include(XcodeRemoveWarningDuplicates)
+xcode_remove_warning_duplicates(front-end-cal)
if(ENABLE_STRIP)
set_target_properties(front-end-cal PROPERTIES LINK_FLAGS "-s")
diff --git a/src/utils/rinex-tools/CMakeLists.txt b/src/utils/rinex-tools/CMakeLists.txt
index 94906c04c6..107d4be375 100644
--- a/src/utils/rinex-tools/CMakeLists.txt
+++ b/src/utils/rinex-tools/CMakeLists.txt
@@ -110,6 +110,9 @@ if("${ARMADILLO_VERSION_STRING}" VERSION_GREATER "9.800" OR (NOT ARMADILLO_FOUND
set_target_properties(obsdiff PROPERTIES LINK_FLAGS "-s")
endif()
+ include(XcodeRemoveWarningDuplicates)
+ xcode_remove_warning_duplicates(obsdiff)
+
add_custom_command(TARGET obsdiff POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $
${LOCAL_INSTALL_BASE_DIR}/install/$
From f1fb4abec0228f550bc9fcda5e29044542e27591 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Sat, 13 Apr 2024 09:17:18 +0200
Subject: [PATCH 28/75] Bump CMake max policy to 3.29
---
CMakeLists.txt | 2 +-
.../libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a20109162b..dea7423b0d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@ endif()
# Build type can still be overridden by setting -DCMAKE_BUILD_TYPE=
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "")
-cmake_minimum_required(VERSION 2.8.12...3.28)
+cmake_minimum_required(VERSION 2.8.12...3.29)
project(gnss-sdr CXX C)
set(GNSSSDR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Allows to be a sub-project
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
index bca6d3d23b..a57544a7fe 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
@@ -8,7 +8,7 @@
########################################################################
# Project setup
########################################################################
-cmake_minimum_required(VERSION 2.8.12...3.28)
+cmake_minimum_required(VERSION 2.8.12...3.29)
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose build type: None Debug Release RelWithDebInfo MinSizeRel")
project(volk_gnsssdr)
enable_language(CXX)
From b99e431f8b299866fd622d6d1323def7e1520c73 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 15 Apr 2024 12:11:49 +0200
Subject: [PATCH 29/75] Workaround for OpenSUSE/Leap
---
CMakeLists.txt | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dea7423b0d..85e689102f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -371,7 +371,8 @@ if(CMAKE_VERSION VERSION_LESS "3.4")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.10")
endif()
-if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13")
+if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13"
+ OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0))
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
@@ -2622,7 +2623,7 @@ if(Protobuf_FOUND AND CMAKE_CROSSCOMPILING)
endif()
endif()
-if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSION} VERSION_LESS ${GNSSSDR_PROTOBUF_MIN_VERSION}))
+if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSION} VERSION_LESS ${GNSSSDR_PROTOBUF_MIN_VERSION}) OR ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")))
unset(Protobuf_PROTOC_EXECUTABLE)
if(CMAKE_CROSSCOMPILING)
if(NOT Protobuf_FOUND)
@@ -2660,6 +2661,10 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI
set(absl_FOUND OFF)
endif()
endif()
+ if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0"))
+ unset(absl_FOUND CACHE)
+ set(absl_FOUND OFF)
+ endif()
if(absl_FOUND)
set_package_properties(absl PROPERTIES
DESCRIPTION "An open-source collection of C++ code designed to augment the C++ standard library (found: v${absl_VERSION})"
From 14da62a0ada4858c57c3f4a0e60367ab02855ff7 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 15 Apr 2024 13:51:01 +0200
Subject: [PATCH 30/75] Workaround for OpenSUSE/Leap
---
CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85e689102f..ae71dd91cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -371,8 +371,8 @@ if(CMAKE_VERSION VERSION_LESS "3.4")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.10")
endif()
-if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13"
- OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0))
+if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13" OR
+ (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0))
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
@@ -2792,8 +2792,8 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI
if(NOT TARGET protobuf::protoc)
add_executable(protobuf::protoc IMPORTED)
- add_dependencies(protobuf::protoc protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION})
endif()
+ add_dependencies(protobuf::protoc protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION})
unset(Protobuf_PROTOC_EXECUTABLE)
set(PROTOBUF_PROTOC_EXECUTABLE "${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/bin/protoc")
set_target_properties(protobuf::protoc PROPERTIES
From 1a8fc61479833764b42996d82fedee11ca08ef8a Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Tue, 16 Apr 2024 14:29:19 +0200
Subject: [PATCH 31/75] Fix for OpenSUSE/leap
---
CMakeLists.txt | 16 +++++++++++++---
README.md | 2 +-
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae71dd91cc..418fa97a06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -372,7 +372,9 @@ if(CMAKE_VERSION VERSION_LESS "3.4")
endif()
if(CMAKE_CROSSCOMPILING OR CMAKE_VERSION VERSION_LESS "3.13" OR
- (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0))
+ ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0)) OR
+ ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")) OR
+ ((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11")))
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
@@ -2537,7 +2539,13 @@ endif()
################################################################################
# Protocol Buffers https://github.com/protocolbuffers/protobuf
################################################################################
-find_package(Protobuf)
+if(((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")) OR
+ ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")) OR
+ ((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11")))
+ find_package(Protobuf 21.12 EXACT)
+else()
+ find_package(Protobuf)
+endif()
set_package_properties(Protobuf PROPERTIES
URL "https://protobuf.dev/"
PURPOSE "Used to serialize output data in a way that can be read by other applications."
@@ -2679,7 +2687,9 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI
DESCRIPTION "An open-source collection of C++ code designed to augment the C++ standard library"
)
endif()
- message(STATUS "The Abseil library (https://github.com/abseil/abseil-cpp) >= v20230117 is required to be installed before building Protocol Buffers >22.x on the fly.")
+ if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0"))
+ message(STATUS "The Abseil library (https://github.com/abseil/abseil-cpp) >= v20230117 is required to be installed before building Protocol Buffers >22.x on the fly.")
+ endif()
message(STATUS " Instead, Protocol Buffers v21.12 will be built, which does not require Abseil.")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.12")
endif()
diff --git a/README.md b/README.md
index 02bc80df77..0413da74ab 100644
--- a/README.md
+++ b/README.md
@@ -278,7 +278,7 @@ $ zypper install cmake git gcc-c++ boost-devel libboost_atomic-devel \
libboost_system-devel libboost_filesystem-devel libboost_chrono-devel \
libboost_thread-devel libboost_serialization-devel log4cpp-devel \
gnuradio-devel pugixml-devel libpcap-devel armadillo-devel libtool \
- automake hdf5-devel openssl-devel python3-Mako protobuf-devel
+ automake hdf5-devel openssl-devel python3-Mako libmatio-devel
```
If you are using openSUSE Tumbleweed:
From c6010d943ef99e2ad3acbd70aecc6960d7b818a9 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Thu, 18 Apr 2024 08:31:21 +0200
Subject: [PATCH 32/75] CMake fixes for old distros
---
CMakeLists.txt | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 418fa97a06..b780e3144b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2542,7 +2542,11 @@ endif()
if(((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11")))
- find_package(Protobuf 21.12 EXACT)
+ if(CMAKE_VERSION VERSION_LESS 3.19)
+ find_package(Protobuf)
+ else()
+ find_package(Protobuf 3.0...21.12)
+ endif()
else()
find_package(Protobuf)
endif()
@@ -2631,7 +2635,7 @@ if(Protobuf_FOUND AND CMAKE_CROSSCOMPILING)
endif()
endif()
-if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSION} VERSION_LESS ${GNSSSDR_PROTOBUF_MIN_VERSION}) OR ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")))
+if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSION} VERSION_LESS ${GNSSSDR_PROTOBUF_MIN_VERSION}))
unset(Protobuf_PROTOC_EXECUTABLE)
if(CMAKE_CROSSCOMPILING)
if(NOT Protobuf_FOUND)
From c91c31bd35cbaa178cbf8e6e4a8ca443d84ede68 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 22 Apr 2024 09:48:28 +0200
Subject: [PATCH 33/75] Fix wrong order of arguments in calloc
---
src/algorithms/libs/rtklib/rtklib_rtkcmn.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
index f216e13447..12e3fed4d1 100644
--- a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
+++ b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
@@ -1034,7 +1034,7 @@ double *zeros(int n, int m)
{
return nullptr;
}
- if (!(p = static_cast(calloc(sizeof(double), n * m))))
+ if (!(p = static_cast(calloc(n * m, sizeof(double)))))
{
fatalerr("matrix memory allocation error: n=%d,m=%d\n", n, m);
}
From 95e9c13cd5bdbe503b74d0586fac580bd021df82 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 22 Apr 2024 12:22:43 +0200
Subject: [PATCH 34/75] Find dependencies in the loongarch64 architecture
---
cmake/Modules/FindMATIO.cmake | 1 +
cmake/Modules/FindORC.cmake | 6 ++++++
cmake/Modules/FindPCAP.cmake | 1 +
cmake/Modules/FindPUGIXML.cmake | 1 +
cmake/Modules/FindUHD.cmake | 1 +
cmake/Modules/FindVOLK.cmake | 1 +
cmake/Modules/FindZEROMQ.cmake | 1 +
7 files changed, 12 insertions(+)
diff --git a/cmake/Modules/FindMATIO.cmake b/cmake/Modules/FindMATIO.cmake
index 49e0bf8cd1..d9a6cebd29 100644
--- a/cmake/Modules/FindMATIO.cmake
+++ b/cmake/Modules/FindMATIO.cmake
@@ -108,6 +108,7 @@ find_library(MATIO_LIBRARY
/usr/lib/x86_64-linux-gnux32
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake
index 97cd0e4a80..b6a4ba3644 100644
--- a/cmake/Modules/FindORC.cmake
+++ b/cmake/Modules/FindORC.cmake
@@ -80,6 +80,8 @@ find_path(ORC_LIBRARY_DIR
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@@ -106,6 +108,8 @@ find_library(ORC_LIB orc-0.4
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@@ -134,6 +138,8 @@ find_library(ORC_LIBRARY_STATIC ${CMAKE_STATIC_LIBRARY_PREFIX}orc-0.4${CMAKE_STA
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake
index ae4b049f6b..39a7aff150 100644
--- a/cmake/Modules/FindPCAP.cmake
+++ b/cmake/Modules/FindPCAP.cmake
@@ -105,6 +105,7 @@ else()
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
diff --git a/cmake/Modules/FindPUGIXML.cmake b/cmake/Modules/FindPUGIXML.cmake
index c5c1ea637d..5f7f5dcb27 100644
--- a/cmake/Modules/FindPUGIXML.cmake
+++ b/cmake/Modules/FindPUGIXML.cmake
@@ -88,6 +88,7 @@ find_library(PUGIXML_LIBRARY
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib
diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake
index 772cf436a7..a6ed654a31 100644
--- a/cmake/Modules/FindUHD.cmake
+++ b/cmake/Modules/FindUHD.cmake
@@ -86,6 +86,7 @@ find_library(UHD_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindVOLK.cmake b/cmake/Modules/FindVOLK.cmake
index f67efdfbbf..bda6621865 100644
--- a/cmake/Modules/FindVOLK.cmake
+++ b/cmake/Modules/FindVOLK.cmake
@@ -83,6 +83,7 @@ find_library(VOLK_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/cmake/Modules/FindZEROMQ.cmake b/cmake/Modules/FindZEROMQ.cmake
index 0ef9371393..6579d9ed70 100644
--- a/cmake/Modules/FindZEROMQ.cmake
+++ b/cmake/Modules/FindZEROMQ.cmake
@@ -46,6 +46,7 @@ find_library(ZEROMQ_LIBRARIES
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
From 78295866e61367beb074b43b32dda5a4f5e63a5a Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 22 Apr 2024 12:41:11 +0200
Subject: [PATCH 35/75] Find dependencies in the loongarch64 architecture
---
.../volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake | 1 +
.../volk_gnsssdr/cmake/Modules/FindORC.cmake | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake
index 6f25e91d23..7c25e69c27 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake
@@ -34,6 +34,7 @@ find_library(CPUFEATURES_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
index facb29f51e..9ac9f5ccbf 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
@@ -71,6 +71,8 @@ find_path(ORC_LIBRARY_DIR
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@@ -97,6 +99,8 @@ find_library(ORC_LIB orc-0.4
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@@ -125,6 +129,8 @@ find_library(ORC_LIBRARY_STATIC ${CMAKE_STATIC_LIBRARY_PREFIX}orc-0.4${CMAKE_STA
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
+ /usr/lib/riscv64-linux-gnu
+ /usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
From 1ad631128f185389bbdf6312a974a54208d87ff8 Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 22 Apr 2024 13:03:31 +0200
Subject: [PATCH 36/75] cpu_features: Update AArch64 features to Linux 6.6
---
.../volk_gnsssdr/cpu_features/include/cpuinfo_aarch64.h | 4 ++++
.../volk_gnsssdr/cpu_features/include/internal/hwcaps.h | 2 ++
.../cpu_features/src/impl_aarch64__base_implementation.inl | 5 ++++-
.../volk_gnsssdr/cpu_features/test/cpuinfo_aarch64_test.cc | 2 ++
4 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/cpuinfo_aarch64.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/cpuinfo_aarch64.h
index 618f17def2..a8cb0d41a6 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/cpuinfo_aarch64.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/cpuinfo_aarch64.h
@@ -180,6 +180,8 @@ typedef struct
int smebi32i32 : 1; // 1-bit binary to 32-bit integer outer product.
int smeb16b16 : 1; // SME2.1 BFloat16 instructions.
int smef16f16 : 1; // FP16 to FP16 outer product.
+ int mops : 1; // Standardized memory operations.
+ int hbc : 1; // Hinted conditional branches.
// Make sure to update Aarch64FeaturesEnum below if you add a field here.
} Aarch64Features;
@@ -276,6 +278,8 @@ typedef enum
AARCH64_SME_BI32I32,
AARCH64_SME_B16B16,
AARCH64_SME_F16F16,
+ AARCH64_MOPS,
+ AARCH64_HBC,
AARCH64_LAST_,
} Aarch64FeaturesEnum;
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h
index a787aa966c..63baa1fff2 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/include/internal/hwcaps.h
@@ -92,6 +92,8 @@ CPU_FEATURES_START_CPP_NAMESPACE
#define AARCH64_HWCAP2_SME_BI32I32 (1UL << 40)
#define AARCH64_HWCAP2_SME_B16B16 (1UL << 41)
#define AARCH64_HWCAP2_SME_F16F16 (1UL << 42)
+#define AARCH64_HWCAP2_MOPS (1UL << 43)
+#define AARCH64_HWCAP2_HBC (1UL << 44)
// http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h
#define ARM_HWCAP_SWP (1UL << 0)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/src/impl_aarch64__base_implementation.inl b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/src/impl_aarch64__base_implementation.inl
index 36fd9a65ca..14be5a7261 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/src/impl_aarch64__base_implementation.inl
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/src/impl_aarch64__base_implementation.inl
@@ -100,7 +100,10 @@
AARCH64_HWCAP2_SME_BI32I32) \
LINE(AARCH64_SME_B16B16, smeb16b16, "smeb16b16", 0, \
AARCH64_HWCAP2_SME_B16B16) \
- LINE(AARCH64_SME_F16F16, smef16f16, "smef16f16", 0, AARCH64_HWCAP2_SME_F16F16)
+ LINE(AARCH64_SME_F16F16, smef16f16, "smef16f16", 0, \
+ AARCH64_HWCAP2_SME_F16F16) \
+ LINE(AARCH64_MOPS, mops, "mops", 0, AARCH64_HWCAP2_MOPS) \
+ LINE(AARCH64_HBC, hbc, "hbc", 0, AARCH64_HWCAP2_HBC)
#define INTROSPECTION_PREFIX Aarch64
#define INTROSPECTION_ENUM_PREFIX AARCH64
#include "define_introspection_and_hwcaps.inl"
\ No newline at end of file
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/cpuinfo_aarch64_test.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/cpuinfo_aarch64_test.cc
index d6ac501108..fc8abf8fe2 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/cpuinfo_aarch64_test.cc
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/cpuinfo_aarch64_test.cc
@@ -324,6 +324,8 @@ CPU revision : 3)");
EXPECT_FALSE(info.features.smebi32i32);
EXPECT_FALSE(info.features.smeb16b16);
EXPECT_FALSE(info.features.smef16f16);
+ EXPECT_FALSE(info.features.mops);
+ EXPECT_FALSE(info.features.hbc);
}
#elif defined(CPU_FEATURES_OS_MACOS)
TEST_F(CpuidAarch64Test, FromDarwinSysctlFromName)
From 4910629a5d88bb936c821e4656a6279211dbaa6f Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 22 Apr 2024 13:36:14 +0200
Subject: [PATCH 37/75] CI: update actions/setup-python to v5 in
volk-gnsssdr-windows job
---
.github/workflows/main.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index ad507ba20a..060517643c 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -204,7 +204,7 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- - uses: actions/setup-python@v4
+ - uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
From 95596b8f918a95ee9d5c6f03e3f7a5d606e99f7b Mon Sep 17 00:00:00 2001
From: Carles Fernandez
Date: Mon, 29 Apr 2024 08:27:33 +0200
Subject: [PATCH 38/75] Soft transition from Gflags and Glog to Abseil. Some CI
fixes
---
.clang-tidy | 1 -
.github/workflows/main.yml | 31 +-
CMakeLists.txt | 837 ++++++++++--------
README.md | 19 +-
docs/CHANGELOG.md | 31 +-
src/algorithms/PVT/adapters/CMakeLists.txt | 8 +-
src/algorithms/PVT/adapters/rtklib_pvt.cc | 25 +-
.../PVT/gnuradio_blocks/CMakeLists.txt | 9 +-
.../PVT/gnuradio_blocks/rtklib_pvt_gs.cc | 7 +-
src/algorithms/PVT/libs/CMakeLists.txt | 11 +-
src/algorithms/PVT/libs/an_packet_printer.cc | 7 +-
src/algorithms/PVT/libs/geohash.cc | 2 +-
src/algorithms/PVT/libs/geojson_printer.cc | 7 +-
src/algorithms/PVT/libs/gpx_printer.cc | 6 +-
src/algorithms/PVT/libs/has_simple_printer.cc | 7 +-
src/algorithms/PVT/libs/kml_printer.cc | 6 +-
src/algorithms/PVT/libs/nmea_printer.cc | 7 +-
src/algorithms/PVT/libs/pvt_kf.cc | 6 +-
src/algorithms/PVT/libs/pvt_solution.cc | 6 +-
src/algorithms/PVT/libs/rinex_printer.cc | 6 +-
src/algorithms/PVT/libs/rtcm.h | 7 +-
src/algorithms/PVT/libs/rtcm_printer.cc | 6 +-
src/algorithms/PVT/libs/rtklib_solver.cc | 6 +-
.../acquisition/adapters/CMakeLists.txt | 8 +-
.../adapters/beidou_b1i_pcps_acquisition.cc | 14 +-
.../adapters/beidou_b3i_pcps_acquisition.cc | 14 +-
...lileo_e1_pcps_8ms_ambiguous_acquisition.cc | 14 +-
.../galileo_e1_pcps_ambiguous_acquisition.cc | 14 +-
...ileo_e1_pcps_ambiguous_acquisition_fpga.cc | 14 +-
...eo_e1_pcps_cccwsr_ambiguous_acquisition.cc | 13 +-
...e1_pcps_quicksync_ambiguous_acquisition.cc | 14 +-
...ileo_e1_pcps_tong_ambiguous_acquisition.cc | 14 +-
...ileo_e5a_noncoherent_iq_acquisition_caf.cc | 14 +-
.../adapters/galileo_e5a_pcps_acquisition.cc | 14 +-
.../galileo_e5a_pcps_acquisition_fpga.cc | 14 +-
.../adapters/galileo_e5b_pcps_acquisition.cc | 14 +-
.../galileo_e5b_pcps_acquisition_fpga.cc | 14 +-
.../adapters/galileo_e6_pcps_acquisition.cc | 14 +-
.../glonass_l1_ca_pcps_acquisition.cc | 14 +-
.../glonass_l2_ca_pcps_acquisition.cc | 14 +-
.../adapters/gps_l1_ca_pcps_acquisition.cc | 14 +-
...gps_l1_ca_pcps_acquisition_fine_doppler.cc | 13 +-
.../gps_l1_ca_pcps_acquisition_fpga.cc | 14 +-
.../gps_l1_ca_pcps_assisted_acquisition.cc | 13 +-
.../gps_l1_ca_pcps_opencl_acquisition.cc | 14 +-
.../gps_l1_ca_pcps_quicksync_acquisition.cc | 14 +-
.../gps_l1_ca_pcps_tong_acquisition.cc | 14 +-
.../adapters/gps_l2_m_pcps_acquisition.cc | 14 +-
.../gps_l2_m_pcps_acquisition_fpga.cc | 14 +-
.../adapters/gps_l5i_pcps_acquisition.cc | 15 +-
.../adapters/gps_l5i_pcps_acquisition_fpga.cc | 14 +-
.../gnuradio_blocks/CMakeLists.txt | 9 +-
...o_e5a_noncoherent_iq_acquisition_caf_cc.cc | 7 +-
.../galileo_pcps_8ms_acquisition_cc.cc | 6 +-
.../gnuradio_blocks/pcps_acquisition.cc | 18 +
.../gnuradio_blocks/pcps_acquisition.h | 13 +-
.../pcps_acquisition_fine_doppler_cc.cc | 7 +-
.../gnuradio_blocks/pcps_acquisition_fpga.cc | 17 +-
.../gnuradio_blocks/pcps_acquisition_fpga.h | 10 +-
.../pcps_assisted_acquisition_cc.cc | 6 +-
.../pcps_cccwsr_acquisition_cc.cc | 7 +-
.../pcps_opencl_acquisition_cc.cc | 7 +-
.../pcps_quicksync_acquisition_cc.cc | 7 +-
.../pcps_tong_acquisition_cc.cc | 7 +-
.../acquisition/libs/CMakeLists.txt | 9 +-
src/algorithms/acquisition/libs/acq_conf.cc | 7 +-
.../acquisition/libs/acq_conf_fpga.cc | 7 +-
.../acquisition/libs/fpga_acquisition.cc | 6 +-
.../channel/adapters/CMakeLists.txt | 8 +-
src/algorithms/channel/adapters/channel.cc | 13 +-
src/algorithms/channel/libs/CMakeLists.txt | 9 +-
src/algorithms/channel/libs/channel_fsm.cc | 7 +-
.../channel/libs/channel_msg_receiver_cc.cc | 7 +-
.../conditioner/adapters/CMakeLists.txt | 10 +-
.../adapters/array_signal_conditioner.cc | 6 +-
.../adapters/signal_conditioner.cc | 6 +-
.../data_type_adapter/adapters/CMakeLists.txt | 9 +-
.../adapters/byte_to_short.cc | 7 +-
.../adapters/ibyte_to_cbyte.cc | 7 +-
.../adapters/ibyte_to_complex.cc | 5 +
.../adapters/ibyte_to_cshort.cc | 6 +-
.../adapters/ishort_to_complex.cc | 6 +-
.../adapters/ishort_to_cshort.cc | 6 +-
.../input_filter/adapters/CMakeLists.txt | 9 +-
.../adapters/beamformer_filter.cc | 6 +-
.../input_filter/adapters/fir_filter.cc | 6 +-
.../adapters/freq_xlating_fir_filter.cc | 6 +-
.../input_filter/adapters/notch_filter.cc | 6 +-
.../adapters/notch_filter_lite.cc | 6 +-
.../adapters/pulse_blanking_filter.cc | 6 +-
src/algorithms/libs/CMakeLists.txt | 24 +-
src/algorithms/libs/gnss_sdr_flags.cc | 30 +-
src/algorithms/libs/gnss_sdr_flags.h | 126 ++-
src/algorithms/libs/pass_through.cc | 6 +-
src/algorithms/libs/rtklib/CMakeLists.txt | 9 +-
src/algorithms/libs/rtklib/rtklib_rtkcmn.cc | 7 +-
.../observables/adapters/CMakeLists.txt | 8 +-
.../adapters/hybrid_observables.cc | 11 +-
.../gnuradio_blocks/CMakeLists.txt | 9 +-
.../gnuradio_blocks/hybrid_observables_gs.cc | 7 +-
src/algorithms/observables/libs/obs_conf.cc | 6 +
.../resampler/adapters/CMakeLists.txt | 9 +-
.../adapters/direct_resampler_conditioner.cc | 6 +-
.../adapters/mmse_resampler_conditioner.cc | 7 +-
.../signal_generator/adapters/CMakeLists.txt | 9 +-
.../adapters/signal_generator.cc | 6 +-
.../signal_source/adapters/CMakeLists.txt | 8 +-
.../adapters/ad9361_fpga_signal_source.cc | 6 +-
.../adapters/ad936x_custom_signal_source.cc | 7 +-
.../adapters/custom_udp_signal_source.cc | 6 +-
.../adapters/fifo_signal_source.cc | 6 +-
.../adapters/file_signal_source.cc | 5 +
.../adapters/file_source_base.cc | 19 +-
.../adapters/file_timestamp_signal_source.cc | 16 +-
.../adapters/flexiband_signal_source.cc | 7 +-
.../adapters/fmcomms2_signal_source.cc | 7 +-
.../four_bit_cpx_file_signal_source.cc | 14 +-
.../adapters/gen_signal_source.cc | 6 +-
.../adapters/labsat_signal_source.cc | 7 +-
.../adapters/limesdr_signal_source.cc | 7 +-
.../multichannel_file_signal_source.cc | 7 +-
.../adapters/nsr_file_signal_source.cc | 5 +
.../adapters/osmosdr_signal_source.cc | 7 +-
.../adapters/plutosdr_signal_source.cc | 6 +-
.../adapters/raw_array_signal_source.cc | 6 +-
.../adapters/rtl_tcp_signal_source.cc | 7 +-
.../adapters/spir_file_signal_source.cc | 7 +-
.../spir_gss6450_file_signal_source.cc | 8 +-
.../two_bit_cpx_file_signal_source.cc | 5 +
.../two_bit_packed_file_signal_source.cc | 7 +-
.../adapters/uhd_signal_source.cc | 7 +-
.../adapters/zmq_signal_source.cc | 5 +
.../gnuradio_blocks/CMakeLists.txt | 9 +-
.../gnuradio_blocks/fifo_reader.cc | 5 +
.../rtl_tcp_signal_source_c.cc | 6 +-
.../signal_source/libs/CMakeLists.txt | 9 +-
.../signal_source/libs/ad9361_manager.cc | 7 +-
.../signal_source/libs/ad936x_iio_custom.cc | 7 +-
.../signal_source/libs/fpga_buffer_monitor.cc | 7 +-
.../libs/fpga_dynamic_bit_selection.cc | 7 +-
.../signal_source/libs/fpga_switch.cc | 7 +-
.../signal_source/libs/gnss_sdr_valve.cc | 7 +-
.../telemetry_decoder/adapters/CMakeLists.txt | 9 +-
.../adapters/beidou_b1i_telemetry_decoder.cc | 5 +
.../adapters/beidou_b3i_telemetry_decoder.cc | 5 +
.../adapters/galileo_e1b_telemetry_decoder.cc | 5 +
.../adapters/galileo_e5a_telemetry_decoder.cc | 5 +
.../adapters/galileo_e5b_telemetry_decoder.cc | 5 +
.../adapters/galileo_e6_telemetry_decoder.cc | 5 +
.../glonass_l1_ca_telemetry_decoder.cc | 5 +
.../glonass_l2_ca_telemetry_decoder.cc | 5 +
.../adapters/gps_l1_ca_telemetry_decoder.cc | 5 +
.../adapters/gps_l2c_telemetry_decoder.cc | 5 +
.../adapters/gps_l5_telemetry_decoder.cc | 5 +
.../adapters/sbas_l1_telemetry_decoder.cc | 6 +-
.../gnuradio_blocks/CMakeLists.txt | 9 +-
.../beidou_b1i_telemetry_decoder_gs.cc | 7 +-
.../beidou_b3i_telemetry_decoder_gs.cc | 7 +-
.../galileo_telemetry_decoder_gs.cc | 7 +-
.../glonass_l1_ca_telemetry_decoder_gs.cc | 7 +-
.../glonass_l2_ca_telemetry_decoder_gs.cc | 7 +-
.../gps_l1_ca_telemetry_decoder_gs.cc | 7 +-
.../gps_l2c_telemetry_decoder_gs.cc | 6 +-
.../gps_l5_telemetry_decoder_gs.cc | 7 +-
.../sbas_l1_telemetry_decoder_gs.cc | 7 +-
.../telemetry_decoder/libs/CMakeLists.txt | 9 +-
.../telemetry_decoder/libs/tlm_crc_stats.cc | 6 +-
.../libs/viterbi_decoder_sbas.cc | 7 +-
.../tracking/adapters/CMakeLists.txt | 8 +-
.../adapters/beidou_b1i_dll_pll_tracking.cc | 6 +-
.../adapters/beidou_b3i_dll_pll_tracking.cc | 7 +-
.../galileo_e1_dll_pll_veml_tracking.cc | 7 +-
.../galileo_e1_dll_pll_veml_tracking_fpga.cc | 7 +-
.../galileo_e1_tcp_connector_tracking.cc | 21 +-
.../adapters/galileo_e5a_dll_pll_tracking.cc | 7 +-
.../galileo_e5a_dll_pll_tracking_fpga.cc | 7 +-
.../adapters/galileo_e5b_dll_pll_tracking.cc | 7 +-
.../adapters/galileo_e6_dll_pll_tracking.cc | 7 +-
.../glonass_l1_ca_dll_pll_c_aid_tracking.cc | 20 +
.../glonass_l1_ca_dll_pll_tracking.cc | 20 +
.../glonass_l2_ca_dll_pll_c_aid_tracking.cc | 20 +
.../glonass_l2_ca_dll_pll_tracking.cc | 19 +
.../adapters/gps_l1_ca_dll_pll_tracking.cc | 7 +-
.../gps_l1_ca_dll_pll_tracking_fpga.cc | 7 +-
.../gps_l1_ca_dll_pll_tracking_gpu.cc | 14 +
.../adapters/gps_l1_ca_gaussian_tracking.cc | 12 +
.../adapters/gps_l1_ca_kf_tracking.cc | 7 +-
.../gps_l1_ca_tcp_connector_tracking.cc | 7 +-
.../adapters/gps_l2_m_dll_pll_tracking.cc | 7 +-
.../gps_l2_m_dll_pll_tracking_fpga.cc | 7 +-
.../adapters/gps_l5_dll_pll_tracking.cc | 7 +-
.../adapters/gps_l5_dll_pll_tracking_fpga.cc | 7 +-
.../tracking/gnuradio_blocks/CMakeLists.txt | 8 +-
.../gnuradio_blocks/dll_pll_veml_tracking.cc | 7 +-
.../dll_pll_veml_tracking_fpga.cc | 7 +-
.../galileo_e1_tcp_connector_tracking_cc.cc | 35 +-
...glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc | 28 +-
...glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc | 28 +-
.../glonass_l1_ca_dll_pll_tracking_cc.cc | 24 +-
...glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc | 26 +-
...glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc | 24 +-
.../glonass_l2_ca_dll_pll_tracking_cc.cc | 24 +-
.../gps_l1_ca_dll_pll_tracking_gpu_cc.cc | 34 +-
.../gps_l1_ca_gaussian_tracking_cc.cc | 33 +-
.../gps_l1_ca_tcp_connector_tracking_cc.cc | 33 +-
.../tracking/gnuradio_blocks/kf_tracking.cc | 7 +-
src/algorithms/tracking/libs/CMakeLists.txt | 8 +-
src/algorithms/tracking/libs/dll_pll_conf.cc | 29 +-
.../tracking/libs/dll_pll_conf_fpga.cc | 28 +-
.../tracking/libs/fpga_multicorrelator.cc | 7 +-
src/algorithms/tracking/libs/kf_conf.cc | 20 +-
.../tracking/libs/tracking_loop_filter.cc | 7 +-
src/core/interfaces/signal_source_interface.h | 5 +
src/core/libs/CMakeLists.txt | 9 +-
src/core/libs/channel_status_msg_receiver.cc | 7 +-
src/core/libs/galileo_e6_has_msg_receiver.cc | 7 +-
src/core/libs/galileo_tow_map.cc | 13 +-
src/core/libs/gnss_sdr_fpga_sample_counter.cc | 6 +-
src/core/libs/gnss_sdr_supl_client.cc | 7 +-
src/core/libs/nav_message_monitor.cc | 7 +-
src/core/receiver/CMakeLists.txt | 10 +-
src/core/receiver/control_thread.cc | 29 +-
src/core/receiver/file_configuration.cc | 6 +-
src/core/receiver/gnss_block_factory.cc | 7 +-
src/core/receiver/gnss_flowgraph.cc | 17 +-
src/core/system_parameters/CMakeLists.txt | 10 +-
.../system_parameters/galileo_cnav_message.cc | 9 +-
.../system_parameters/galileo_fnav_message.cc | 7 +-
.../system_parameters/galileo_inav_message.cc | 6 +-
.../glonass_gnav_navigation_message.cc | 7 +-
src/core/system_parameters/gnss_satellite.cc | 7 +-
src/main/CMakeLists.txt | 24 +-
src/main/main.cc | 98 +-
src/tests/CMakeLists.txt | 96 +-
src/tests/common-files/gnuplot_i.h | 7 +-
.../common-files/observable_tests_flags.h | 17 +-
.../common-files/signal_generator_flags.h | 24 +-
src/tests/common-files/test_flags.h | 18 +-
src/tests/common-files/tracking_tests_flags.h | 61 +-
src/tests/single_test_main.cc | 61 +-
src/tests/system-tests/libs/CMakeLists.txt | 8 +-
.../system-tests/libs/position_test_flags.h | 26 +-
src/tests/system-tests/position_test.cc | 237 ++++-
src/tests/system-tests/ttff.cc | 105 ++-
src/tests/test_main.cc | 57 +-
.../arithmetic/complex_carrier_test.cc | 73 +-
.../unit-tests/arithmetic/conjugate_test.cc | 73 +-
.../unit-tests/arithmetic/fft_length_test.cc | 42 +-
.../unit-tests/arithmetic/fft_speed_test.cc | 20 +
.../arithmetic/magnitude_squared_test.cc | 76 +-
.../unit-tests/arithmetic/multiply_test.cc | 126 ++-
.../control-plane/control_thread_test.cc | 8 +-
.../acquisition/acq_performance_test.cc | 278 +++++-
.../beidou_b1i_pcps_acquisition_test.cc | 9 +-
.../beidou_b3i_pcps_acquisition_test.cc | 9 +-
...ileo_e1_pcps_ambiguous_acquisition_test.cc | 21 +-
...e1_pcps_ambiguous_acquisition_test_fpga.cc | 7 +-
...ync_ambiguous_acquisition_gsoc2014_test.cc | 45 +-
.../gps_l1_ca_pcps_acquisition_test.cc | 32 +-
.../gps_l1_ca_pcps_acquisition_test_fpga.cc | 7 +-
...cps_quicksync_acquisition_gsoc2014_test.cc | 44 +-
.../gps_l2_m_pcps_acquisition_test.cc | 20 +
.../filter/fir_filter_test.cc | 12 +-
.../filter/notch_filter_lite_test.cc | 13 +-
.../filter/notch_filter_test.cc | 12 +-
.../filter/pulse_blanking_filter_test.cc | 12 +-
.../libs/CMakeLists.txt | 9 +-
.../libs/acquisition_msg_rx.cc | 11 +-
.../observables/hybrid_observables_test.cc | 226 ++++-
.../hybrid_observables_test_fpga.cc | 184 +++-
.../gps_l1_ca_telemetry_decoder_test.cc | 40 +-
.../cpu_multicorrelator_real_codes_test.cc | 31 +-
.../tracking/cpu_multicorrelator_test.cc | 27 +-
.../galileo_e1_dll_pll_veml_tracking_test.cc | 2 +-
.../gps_l1_ca_dll_pll_tracking_test.cc | 225 ++++-
.../gps_l1_ca_dll_pll_tracking_test_fpga.cc | 46 +-
.../gps_l1_ca_gaussian_tracking_test.cc | 85 +-
.../tracking/gpu_multicorrelator_test.cc | 19 +-
.../tracking/tracking_pull-in_test.cc | 278 +++++-
.../tracking/tracking_pull-in_test_fpga.cc | 239 ++++-
.../system-parameters/has_decoding_test.cc | 18 +-
src/utils/front-end-cal/CMakeLists.txt | 17 +-
src/utils/front-end-cal/front_end_cal.cc | 7 +-
src/utils/front-end-cal/main.cc | 102 ++-
src/utils/rinex-tools/CMakeLists.txt | 14 +-
src/utils/rinex-tools/obsdiff.cc | 116 ++-
src/utils/rinex-tools/obsdiff_flags.h | 20 +
src/utils/rinex2assist/CMakeLists.txt | 8 +-
src/utils/rinex2assist/main.cc | 39 +-
289 files changed, 5909 insertions(+), 931 deletions(-)
diff --git a/.clang-tidy b/.clang-tidy
index 0ef91e2ecb..3ddbd1a517 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -120,7 +120,6 @@ Checks: '-*,
readability-uppercase-literal-suffix'
WarningsAsErrors: ''
HeaderFilterRegex: ''
-AnalyzeTemporaryDtors: false
FormatStyle: 'file'
CheckOptions:
- key: performance-unnecessary-copy-initialization.ExcludedContainerTypes
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 060517643c..8323fdea84 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -57,8 +57,7 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew link --overwrite python@3.12
- brew install ninja hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf
+ brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
pip3 install mako
- name: configure
run: cd build && cmake -GNinja ..
@@ -90,8 +89,7 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew link --overwrite python@3.12
- brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf
+ brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
pip3 install mako
- name: configure
run: cd build && cmake -GXcode ..
@@ -142,16 +140,15 @@ jobs:
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew link --overwrite python@3.12
- brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
- gflags glog gnuradio log4cpp openssl pugixml protobuf llvm
- pip3 install mako
+ brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf llvm
+ pip3 install mako
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
ln -s $(brew --prefix llvm)/bin/run-clang-tidy.py /usr/local/bin
- name: Prepare run
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.14.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
- run: cd build && /usr/local/opt/llvm/bin/run-clang-tidy -fix
+ run: cd build && /opt/homebrew/opt/llvm/bin/run-clang-tidy -fix
- name: check
run: |
git diff > clang_tidy.patch
@@ -243,8 +240,13 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- - name: install dependencies
- run: pip3 install mako
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install mako
- name: configure
run: cd build && cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
- name: build
@@ -256,8 +258,13 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- - name: install dependencies
- run: pip3 install mako
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install mako
- name: configure
run: cd build && cmake -GXcode ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
- name: build
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b780e3144b..aa4eafe9e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,9 +74,20 @@ option(ENABLE_PACKAGING "Enable software packaging" OFF)
option(ENABLE_OWN_GLOG "Download glog and link it to gflags" OFF)
+option(ENABLE_GLOG_AND_GFLAGS "Force using Google glog and Gflags instead of Abseil" OFF)
+
+option(ENABLE_OWN_ABSEIL "Forces downloading and building of Abseil" OFF)
+if(CMAKE_VERSION VERSION_LESS 3.24)
+ set(ENABLE_OWN_ABSEIL OFF)
+endif()
+if(ENABLE_OWN_ABSEIL)
+ set(ENABLE_OWN_GLOG OFF)
+ set(ENABLE_GLOG_AND_GFLAGS OFF)
+endif()
+
option(ENABLE_OWN_ARMADILLO "Download and build Armadillo locally" OFF)
-option(ENABLE_LOG "Enable logging" ON)
+option(ENABLE_LOG "Enable internal logging" ON)
option(ENABLE_ARMA_NO_DEBUG OFF)
@@ -329,6 +340,7 @@ set(GNSSSDR_MATIO_MIN_VERSION "1.5.3")
set(GNSSSDR_PROTOBUF_MIN_VERSION "3.0.0")
set(GNSSSDR_PYTHON_MIN_VERSION "2.7")
set(GNSSSDR_PYTHON3_MIN_VERSION "3.4")
+set(GNSSSDR_ABSEIL_MIN_VERSION "20240116")
@@ -1157,7 +1169,7 @@ if(NOT VOLKGNSSSDR_FOUND)
if(CMAKE_GENERATOR STREQUAL Xcode)
set(VOLK_GNSSSDR_BUILD_COMMAND "xcodebuild"
- "-configuration" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>
+ "-configuration" $<$:None>$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:NoOptWithASM>$<$:Coverage>$<$:O2WithASM>$<$:O3WithASM>$<$:Debug>:RelWithDebInfo>$<$:Debug>
)
endif()
@@ -1392,316 +1404,427 @@ endif()
################################################################################
-# gflags - https://github.com/gflags/gflags
+# Abseil C++ - https://abseil.io/docs/cpp/
################################################################################
-set(LOCAL_GFLAGS FALSE)
-if(ENABLE_OWN_GLOG)
- unset(Glog::glog CACHE)
- unset(GLOG_FOUND CACHE)
- unset(Gflags::gflags CACHE)
- unset(GLAGS_FOUND CACHE)
- set(GFLAGS_GREATER_20 TRUE)
-else()
- unset(Glog::glog CACHE)
- unset(GLOG_FOUND CACHE)
- find_package(GLOG)
- if(GLOG_FOUND)
- unset(GFLAGS_GREATER_20 CACHE)
- find_package(GFLAGS)
- endif()
-endif()
-set_package_properties(GFLAGS PROPERTIES
- PURPOSE "Used for commandline flags management."
- TYPE REQUIRED
-)
-if(NOT GFLAGS_FOUND)
- set(ENABLE_OWN_GLOG ON)
- if(GFLAGS_VERSION)
- message(STATUS " A version of the gflags library equal or higher than v${GNSSSDR_GFLAGS_MIN_VERSION} has not been found.")
- else()
- message(STATUS " The gflags library has not been found.")
- endif()
- message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded, built, and statically linked automatically")
- message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.")
- set(GFLAGS_BUILD_COMMAND ${CMAKE_COMMAND}
- "--build" "${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}"
- "--config" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
- )
- if(CMAKE_GENERATOR STREQUAL Xcode)
- set(GFLAGS_BUILD_COMMAND "xcodebuild" "-configuration" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>)
- endif()
- if(CMAKE_TOOLCHAIN_FILE)
- set(GFLAGS_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
- endif()
+if(CMAKE_VERSION VERSION_GREATER 3.13
+ AND NOT (CMAKE_CXX_STANDARD VERSION_LESS 14)
+ AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.1)
+ AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
+ AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12)
+ AND NOT ENABLE_OWN_GLOG
+ AND NOT ENABLE_GLOG_AND_GFLAGS)
+ # See https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md
- if(CMAKE_VERSION VERSION_LESS 3.2)
- ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- PREFIX ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- GIT_REPOSITORY https://github.com/gflags/gflags.git
- GIT_TAG v${GNSSSDR_GFLAGS_LOCAL_VERSION}
- SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gflags/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- BINARY_DIR ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF
- -DBUILD_STATIC_LIBS=ON
- -DBUILD_gflags_LIB=ON
- -DBUILD_gflags_nothreads_LIB=ON
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- ${GFLAGS_TOOLCHAIN_FILE}
- -DGFLAGS_NAMESPACE=google
- -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
- BUILD_COMMAND ${GFLAGS_BUILD_COMMAND}
- UPDATE_COMMAND ""
- PATCH_COMMAND ""
- INSTALL_COMMAND ""
+ if(ENABLE_OWN_ABSEIL)
+ include(FetchContent)
+ set(ABSEIL_BUILD_COMMAND ${CMAKE_COMMAND}
+ "--build" "${GNSSSDR_BINARY_DIR}/abseil-cpp"
+ "--config" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ "--target" "install"
)
+ if(CMAKE_GENERATOR STREQUAL Xcode)
+ set(ABSEIL_BUILD_COMMAND "xcodebuild" "-configuration" $<$:None>$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:NoOptWithASM>$<$:Coverage>$<$:O2WithASM>$<$:O3WithASM>$<$:Debug>)
+ endif()
+ if(CMAKE_TOOLCHAIN_FILE)
+ set(ABSEIL_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
+ endif()
+ set(ABSL_PROPAGATE_CXX_STD ON)
+ FetchContent_Declare(
+ absl
+ GIT_REPOSITORY https://github.com/abseil/abseil-cpp
+ GIT_TAG master # live at head
+ SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/abseil-cpp
+ CMAKE_ARGS -DABSL_PROPAGATE_CXX_STD=ON -ABSL_BUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=${GNSSSDR_BINARY_DIR}/abseil-cpp ${ABSEIL_TOOLCHAIN_FILE}
+ BINARY_DIR ${GNSSSDR_BINARY_DIR}/abseil-cpp
+ BUILD_COMMAND ${ABSEIL_BUILD_COMMAND}
+ OVERRIDE_FIND_PACKAGE # Requires CMake 3.24
+ )
+ FetchContent_MakeAvailable(absl)
+ set(absl_FOUND TRUE)
+ set(ENABLE_GLOG_AND_GFLAGS OFF)
else()
- set(GFLAGS_BUILD_BYPRODUCTS ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX})
- if((CMAKE_BUILD_TYPE STREQUAL Debug) OR (CMAKE_BUILD_TYPE STREQUAL NoOptWithASM) OR
- (CMAKE_BUILD_TYPE STREQUAL Coverage) OR (CMAKE_BUILD_TYPE STREQUAL ASAN)) # Workaround for Ninja generator
- set(GFLAGS_BUILD_BYPRODUCTS ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags_debug${CMAKE_STATIC_LIBRARY_SUFFIX})
+ find_package(absl)
+ set_package_properties(absl PROPERTIES
+ URL "https://github.com/abseil/abseil-cpp"
+ PURPOSE "Making use of Abseil's log and flags libraries."
+ TYPE OPTIONAL
+ )
+ if(absl_FOUND)
+ set_package_properties(absl PROPERTIES
+ DESCRIPTION "A collection of C++ library code designed to augment the C++ standard library (found: v${absl_VERSION})"
+ )
+ else()
+ set_package_properties(absl PROPERTIES
+ DESCRIPTION "A collection of C++ library code designed to augment the C++ standard library"
+ )
endif()
- if((CMAKE_VERSION VERSION_GREATER 3.12.0) AND NOT (CMAKE_GENERATOR STREQUAL Xcode))
- set(PARALLEL_BUILD "--parallel 2")
+ if("${absl_VERSION}" VERSION_LESS ${GNSSSDR_ABSEIL_MIN_VERSION})
+ unset(absl_FOUND CACHE)
+ set(absl_FOUND FALSE)
+ set(ENABLE_GLOG_AND_GFLAGS ON)
+ set_package_properties(absl PROPERTIES
+ DESCRIPTION "A collection of C++ library code designed to augment the C++ standard library (found: v${absl_VERSION}, but it is too old and it will not be used)"
+ )
endif()
- ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- PREFIX ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- GIT_REPOSITORY https://github.com/gflags/gflags.git
- GIT_TAG v${GNSSSDR_GFLAGS_LOCAL_VERSION}
- SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gflags/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- BINARY_DIR ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
- CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF
- -DBUILD_STATIC_LIBS=ON
- -DBUILD_gflags_LIB=ON
- -DBUILD_gflags_nothreads_LIB=ON
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- ${GFLAGS_TOOLCHAIN_FILE}
- -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
- BUILD_COMMAND "${GFLAGS_BUILD_COMMAND} ${PARALLEL_BUILD}"
- BUILD_BYPRODUCTS ${GFLAGS_BUILD_BYPRODUCTS}
- UPDATE_COMMAND ""
- PATCH_COMMAND ""
- INSTALL_COMMAND ""
- )
endif()
- # Note: -DBUILD_gflags_nothreads_LIB=ON is required as a workaround to a bug in gflags 2.2.2. This is fixed in gflags master branch
+endif()
- set(GFlags_INCLUDE_DIRS
- ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/include CACHE PATH "Local Gflags headers"
- )
- if(CMAKE_VERSION VERSION_LESS "3.0.2")
- set(GFlags_LIBS
- ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
+if(NOT absl_FOUND)
+ set(ENABLE_GLOG_AND_GFLAGS ON)
+ ################################################################################
+ # gflags - https://github.com/gflags/gflags
+ ################################################################################
+ set(LOCAL_GFLAGS FALSE)
+ if(ENABLE_OWN_GLOG)
+ unset(Glog::glog CACHE)
+ unset(GLOG_FOUND CACHE)
+ unset(Gflags::gflags CACHE)
+ unset(GLAGS_FOUND CACHE)
+ set(GFLAGS_GREATER_20 TRUE)
+ else()
+ unset(Glog::glog CACHE)
+ unset(GLOG_FOUND CACHE)
+ find_package(GLOG)
+ if(GLOG_FOUND)
+ unset(GFLAGS_GREATER_20 CACHE)
+ find_package(GFLAGS)
+ endif()
endif()
-
- if(NOT TARGET Gflags::gflags)
- file(MAKE_DIRECTORY ${GFlags_INCLUDE_DIRS})
- add_library(Gflags::gflags STATIC IMPORTED)
- add_dependencies(Gflags::gflags gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
- set_target_properties(Gflags::gflags PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_CONFIGURATIONS "None;Debug;Release;RelWithDebInfo;MinSizeRel"
- MAP_IMPORTED_CONFIG_NOOPTWITHASM Debug
- MAP_IMPORTED_CONFIG_COVERAGE Debug
- MAP_IMPORTED_CONFIG_O2WITHASM RelWithDebInfo
- MAP_IMPORTED_CONFIG_O3WITHASM RelWithDebInfo
- MAP_IMPORTED_CONFIG_ASAN Debug
- IMPORTED_LOCATION_NONE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags_debug${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
- INTERFACE_INCLUDE_DIRECTORIES ${GFlags_INCLUDE_DIRS}
- INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags$<$:_debug>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ set_package_properties(GFLAGS PROPERTIES
+ PURPOSE "Used for commandline flags management."
+ TYPE REQUIRED
+ )
+ if(NOT GFLAGS_FOUND)
+ set(ENABLE_OWN_GLOG ON)
+ if(GFLAGS_VERSION)
+ message(STATUS " A version of the gflags library equal or higher than v${GNSSSDR_GFLAGS_MIN_VERSION} has not been found.")
+ else()
+ message(STATUS " The gflags library has not been found.")
+ endif()
+ message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded, built, and statically linked automatically")
+ message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.")
+ set(GFLAGS_BUILD_COMMAND ${CMAKE_COMMAND}
+ "--build" "${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}"
+ "--config" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
)
- if((CMAKE_GENERATOR STREQUAL Xcode) OR MSVC)
- if(MSVC)
- set(MSVC_POSTFIX _static)
+ if(CMAKE_GENERATOR STREQUAL Xcode)
+ set(GFLAGS_BUILD_COMMAND "xcodebuild" "-configuration" $<$:None>$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:NoOptWithASM>$<$:Coverage>$<$:O2WithASM>$<$:O3WithASM>$<$:Debug>)
+ endif()
+ if(CMAKE_TOOLCHAIN_FILE)
+ set(GFLAGS_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
+ endif()
+
+ if(CMAKE_VERSION VERSION_LESS 3.2)
+ ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ PREFIX ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ GIT_REPOSITORY https://github.com/gflags/gflags.git
+ GIT_TAG v${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gflags/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ BINARY_DIR ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF
+ -DBUILD_STATIC_LIBS=ON
+ -DBUILD_gflags_LIB=ON
+ -DBUILD_gflags_nothreads_LIB=ON
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ ${GFLAGS_TOOLCHAIN_FILE}
+ -DGFLAGS_NAMESPACE=google
+ -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ BUILD_COMMAND ${GFLAGS_BUILD_COMMAND}
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ else()
+ set(GFLAGS_BUILD_BYPRODUCTS ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX})
+ if((CMAKE_BUILD_TYPE STREQUAL Debug) OR (CMAKE_BUILD_TYPE STREQUAL NoOptWithASM) OR
+ (CMAKE_BUILD_TYPE STREQUAL Coverage) OR (CMAKE_BUILD_TYPE STREQUAL ASAN)) # Workaround for Ninja generator
+ set(GFLAGS_BUILD_BYPRODUCTS ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags_debug${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+ if((CMAKE_VERSION VERSION_GREATER 3.12.0) AND NOT (CMAKE_GENERATOR STREQUAL Xcode))
+ set(PARALLEL_BUILD "--parallel 2")
endif()
+ ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ PREFIX ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ GIT_REPOSITORY https://github.com/gflags/gflags.git
+ GIT_TAG v${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gflags/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ BINARY_DIR ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}
+ CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF
+ -DBUILD_STATIC_LIBS=ON
+ -DBUILD_gflags_LIB=ON
+ -DBUILD_gflags_nothreads_LIB=ON
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ ${GFLAGS_TOOLCHAIN_FILE}
+ -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ BUILD_COMMAND "${GFLAGS_BUILD_COMMAND} ${PARALLEL_BUILD}"
+ BUILD_BYPRODUCTS ${GFLAGS_BUILD_BYPRODUCTS}
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ endif()
+ # Note: -DBUILD_gflags_nothreads_LIB=ON is required as a workaround to a bug in gflags 2.2.2. This is fixed in gflags master branch
+
+ set(GFlags_INCLUDE_DIRS
+ ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/include CACHE PATH "Local Gflags headers"
+ )
+
+ if(CMAKE_VERSION VERSION_LESS "3.0.2")
+ set(GFlags_LIBS
+ ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ endif()
+
+ if(NOT TARGET Gflags::gflags)
+ file(MAKE_DIRECTORY ${GFlags_INCLUDE_DIRS})
+ add_library(Gflags::gflags STATIC IMPORTED)
+ add_dependencies(Gflags::gflags gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
set_target_properties(Gflags::gflags PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/Debug/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}_debug${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/Release/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/RelWithDebInfo/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/MinSizeRel/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
- INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/$<$:Debug/>$<$:Release/>$<$:RelWithDebInfo/>$<$:MinSizeRel/>${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}$<$:_debug>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_CONFIGURATIONS "None;Debug;Release;RelWithDebInfo;MinSizeRel"
+ MAP_IMPORTED_CONFIG_NOOPTWITHASM Debug
+ MAP_IMPORTED_CONFIG_COVERAGE Debug
+ MAP_IMPORTED_CONFIG_O2WITHASM RelWithDebInfo
+ MAP_IMPORTED_CONFIG_O3WITHASM RelWithDebInfo
+ MAP_IMPORTED_CONFIG_ASAN Debug
+ IMPORTED_LOCATION_NONE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags_debug${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_STATIC_LIBRARY_SUFFIX}
+ INTERFACE_INCLUDE_DIRECTORIES ${GFlags_INCLUDE_DIRS}
+ INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gflags$<$:_debug>${CMAKE_STATIC_LIBRARY_SUFFIX}
)
+ if((CMAKE_GENERATOR STREQUAL Xcode) OR MSVC)
+ if(MSVC)
+ set(MSVC_POSTFIX _static)
+ endif()
+ set_target_properties(Gflags::gflags PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/Debug/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}_debug${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/Release/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/RelWithDebInfo/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/MinSizeRel/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib/$<$:Debug/>$<$:Release/>$<$:RelWithDebInfo/>$<$:MinSizeRel/>${CMAKE_FIND_LIBRARY_PREFIXES}gflags${MSVC_POSTFIX}$<$:_debug>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ endif()
endif()
- endif()
- if(MSVC)
- target_link_libraries(Gflags::gflags INTERFACE shlwapi.lib)
- endif()
+ if(MSVC)
+ target_link_libraries(Gflags::gflags INTERFACE shlwapi.lib)
+ endif()
- set(LOCAL_GFLAGS TRUE CACHE STRING "GFlags downloaded, built, and statically linked automatically" FORCE)
- set_package_properties(GFLAGS PROPERTIES
- PURPOSE "Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} and Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'."
- )
- if(CMAKE_VERSION VERSION_LESS 3.2)
- set_property(TARGET Gflags::gflags APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS GFLAGS_OLD_NAMESPACE=1
+ set(LOCAL_GFLAGS TRUE CACHE STRING "GFlags downloaded, built, and statically linked automatically" FORCE)
+ set_package_properties(GFLAGS PROPERTIES
+ PURPOSE "Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} and Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'."
)
+ if(CMAKE_VERSION VERSION_LESS 3.2)
+ set_property(TARGET Gflags::gflags APPEND PROPERTY
+ INTERFACE_COMPILE_DEFINITIONS GFLAGS_OLD_NAMESPACE=1
+ )
+ endif()
endif()
-endif()
-################################################################################
-# glog - https://github.com/google/glog
-################################################################################
-set_package_properties(GLOG PROPERTIES
- PURPOSE "Used for runtime internal logging."
- TYPE REQUIRED
-)
-if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS})
- message(STATUS " glog library has not been found")
- if(NOT GFLAGS_FOUND)
- message(STATUS " or it is likely not linked to gflags.")
- endif()
- message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked automatically")
- message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.")
- find_package(LIBUNWIND)
- set_package_properties(LIBUNWIND PROPERTIES
- PURPOSE "Needed by glog."
- TYPE OPTIONAL
- )
- if(NOT ${LOCAL_GFLAGS})
- if(NOT TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
- add_library(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} UNKNOWN IMPORTED)
- endif()
- set_property(TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} PROPERTY IMPORTED_LOCATION "${GFlags_LIBS}")
- string(REPLACE /include "" GFLAGS_PREFIX_PATH ${GFlags_INCLUDE_DIRS})
- else()
- set(GFLAGS_PREFIX_PATH ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
- endif()
- set(TARGET_GFLAGS gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
- set(GLOG_MAKE_PROGRAM ${CMAKE_COMMAND}
- "--build" "${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}"
- "--config" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ ################################################################################
+ # glog - https://github.com/google/glog
+ ################################################################################
+ set_package_properties(GLOG PROPERTIES
+ PURPOSE "Used for runtime internal logging."
+ TYPE REQUIRED
)
- if(CMAKE_GENERATOR STREQUAL Xcode)
- set(GLOG_MAKE_PROGRAM "xcodebuild" "-configuration"
- $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>
+ if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS})
+ message(STATUS " glog library has not been found")
+ if(NOT GFLAGS_FOUND)
+ message(STATUS " or it is likely not linked to gflags.")
+ endif()
+ message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked automatically")
+ message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.")
+ find_package(LIBUNWIND)
+ set_package_properties(LIBUNWIND PROPERTIES
+ PURPOSE "Needed by glog."
+ TYPE OPTIONAL
)
- endif()
- if(CMAKE_TOOLCHAIN_FILE)
- set(GLOG_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
- endif()
-
- if(CMAKE_VERSION VERSION_LESS 3.3)
- if(CMAKE_VERSION VERSION_LESS 3.0)
- set(GLOG_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM})
- set(GFLAGS_LIBRARIES_TO_LINK ${GFlags_LIBS})
- if(${LOCAL_GFLAGS})
- set(GFLAGS_LIBRARY_DIR_TO_LINK ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib)
- else()
- set(GFLAGS_LIBRARY_DIR_TO_LINK ${GFlags_LIBRARY_DIRS})
- endif()
- if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- set(GFLAGS_LIBRARIES_TO_LINK "${GFLAGS_LIBRARIES_TO_LINK} -lc++")
- set(GLOG_EXPORT_CXX_LIBRARIES "export CXXFLAGS=\"-stdlib=libc++\"")
- endif()
- if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(GLOG_EXPORT_C_COMPILER "export CC=clang")
- set(GLOG_EXPORT_CXX_COMPILER "export CXX=clang++")
+ if(NOT ${LOCAL_GFLAGS})
+ if(NOT TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
+ add_library(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} UNKNOWN IMPORTED)
endif()
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(GLOG_EXPORT_C_COMPILER "export CC=gcc")
- set(GLOG_EXPORT_CXX_COMPILER "export CXX=g++")
- endif()
- file(WRITE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/tmp/configure_with_gflags
-"#!/bin/sh
-export CPPFLAGS=-I${GFlags_INCLUDE_DIRS}
-export LDFLAGS=-L${GFLAGS_LIBRARY_DIR_TO_LINK}
-export LIBS=\"${GFLAGS_LIBRARIES_TO_LINK}\"
-${GLOG_EXPORT_CXX_LIBRARIES}
-${GLOG_EXPORT_C_COMPILER}
-${GLOG_EXPORT_CXX_COMPILER}
-cd ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/
-aclocal
-automake --add-missing
-autoreconf -vfi
-cd ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
-${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure --enable-shared=no"
+ set_property(TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} PROPERTY IMPORTED_LOCATION "${GFlags_LIBS}")
+ string(REPLACE /include "" GFLAGS_PREFIX_PATH ${GFlags_INCLUDE_DIRS})
+ else()
+ set(GFLAGS_PREFIX_PATH ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
+ endif()
+ set(TARGET_GFLAGS gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION})
+ set(GLOG_MAKE_PROGRAM ${CMAKE_COMMAND}
+ "--build" "${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}"
+ "--config" $<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ )
+ if(CMAKE_GENERATOR STREQUAL Xcode)
+ set(GLOG_MAKE_PROGRAM "xcodebuild" "-configuration"
+ $<$:None>$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:NoOptWithASM>$<$:Coverage>$<$:O2WithASM>$<$:O3WithASM>$<$:Debug>
)
+ endif()
+ if(CMAKE_TOOLCHAIN_FILE)
+ set(GLOG_TOOLCHAIN_FILE -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
+ endif()
- file(COPY ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/tmp/configure_with_gflags
- DESTINATION ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
- GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- )
+ if(CMAKE_VERSION VERSION_LESS 3.3)
+ if(CMAKE_VERSION VERSION_LESS 3.0)
+ set(GLOG_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM})
+ set(GFLAGS_LIBRARIES_TO_LINK ${GFlags_LIBS})
+ if(${LOCAL_GFLAGS})
+ set(GFLAGS_LIBRARY_DIR_TO_LINK ${GNSSSDR_BINARY_DIR}/gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION}/lib)
+ else()
+ set(GFLAGS_LIBRARY_DIR_TO_LINK ${GFlags_LIBRARY_DIRS})
+ endif()
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(GFLAGS_LIBRARIES_TO_LINK "${GFLAGS_LIBRARIES_TO_LINK} -lc++")
+ set(GLOG_EXPORT_CXX_LIBRARIES "export CXXFLAGS=\"-stdlib=libc++\"")
+ endif()
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(GLOG_EXPORT_C_COMPILER "export CC=clang")
+ set(GLOG_EXPORT_CXX_COMPILER "export CXX=clang++")
+ endif()
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ set(GLOG_EXPORT_C_COMPILER "export CC=gcc")
+ set(GLOG_EXPORT_CXX_COMPILER "export CXX=g++")
+ endif()
+ file(WRITE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/tmp/configure_with_gflags
+ "#!/bin/sh
+ export CPPFLAGS=-I${GFlags_INCLUDE_DIRS}
+ export LDFLAGS=-L${GFLAGS_LIBRARY_DIR_TO_LINK}
+ export LIBS=\"${GFLAGS_LIBRARIES_TO_LINK}\"
+ ${GLOG_EXPORT_CXX_LIBRARIES}
+ ${GLOG_EXPORT_C_COMPILER}
+ ${GLOG_EXPORT_CXX_COMPILER}
+ cd ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/
+ aclocal
+ automake --add-missing
+ autoreconf -vfi
+ cd ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure --enable-shared=no"
+ )
- set(GLOG_CONFIGURE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure_with_gflags)
+ file(COPY ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/tmp/configure_with_gflags
+ DESTINATION ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
+ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
- # Ensure that aclocal and libtool are present
- if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU")
- if(EXISTS "/usr/bin/libtoolize")
- if(EXISTS "/usr/bin/aclocal" OR
- EXISTS "/usr/bin/aclocal-1.16" OR
- EXISTS "/usr/bin/aclocal-1.15" OR
- EXISTS "/usr/bin/aclocal-1.14" OR
- EXISTS "/usr/bin/aclocal-1.13" OR
- EXISTS "/usr/bin/aclocal-1.11" OR
- EXISTS "/usr/bin/aclocal-1.10")
- # Everything ok, we can move on
+ set(GLOG_CONFIGURE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configure_with_gflags)
+
+ # Ensure that aclocal and libtool are present
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU")
+ if(EXISTS "/usr/bin/libtoolize")
+ if(EXISTS "/usr/bin/aclocal" OR
+ EXISTS "/usr/bin/aclocal-1.16" OR
+ EXISTS "/usr/bin/aclocal-1.15" OR
+ EXISTS "/usr/bin/aclocal-1.14" OR
+ EXISTS "/usr/bin/aclocal-1.13" OR
+ EXISTS "/usr/bin/aclocal-1.11" OR
+ EXISTS "/usr/bin/aclocal-1.10")
+ # Everything ok, we can move on
+ else()
+ message(" aclocal has not been found.")
+ message(" You can try to install it by typing:")
+ if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
+ message(" sudo yum groupinstall 'Development Tools'")
+ elseif(${LINUX_DISTRIBUTION} MATCHES "openSUSE")
+ message(" sudo zypper install automake")
+ else()
+ message(" sudo apt-get install automake")
+ endif()
+ message(FATAL_ERROR "aclocal is required to build glog from source")
+ endif()
else()
- message(" aclocal has not been found.")
+ message(" libtool has not been found.")
message(" You can try to install it by typing:")
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
message(" sudo yum groupinstall 'Development Tools'")
elseif(${LINUX_DISTRIBUTION} MATCHES "openSUSE")
- message(" sudo zypper install automake")
+ message(" sudo zypper install libtoool")
else()
- message(" sudo apt-get install automake")
+ message(" sudo apt-get install libtool")
endif()
- message(FATAL_ERROR "aclocal is required to build glog from source")
- endif()
- else()
- message(" libtool has not been found.")
- message(" You can try to install it by typing:")
- if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
- message(" sudo yum groupinstall 'Development Tools'")
- elseif(${LINUX_DISTRIBUTION} MATCHES "openSUSE")
- message(" sudo zypper install libtoool")
- else()
- message(" sudo apt-get install libtool")
+ message(FATAL_ERROR "libtool is required to build glog from source")
endif()
- message(FATAL_ERROR "libtool is required to build glog from source")
endif()
- endif()
- if(GLOG_MAKE_PROGRAM MATCHES "ninja")
- find_program(GLOG_MAKE_EXECUTABLE make
- PATHS
- /usr/bin
- /usr/local/bin
- )
- if(NOT GLOG_MAKE_EXECUTABLE)
- message(FATAL_ERROR "make is required to build Glog from source.")
+ if(GLOG_MAKE_PROGRAM MATCHES "ninja")
+ find_program(GLOG_MAKE_EXECUTABLE make
+ PATHS
+ /usr/bin
+ /usr/local/bin
+ )
+ if(NOT GLOG_MAKE_EXECUTABLE)
+ message(FATAL_ERROR "make is required to build Glog from source.")
+ endif()
+ set(GLOG_MAKE_PROGRAM ${GLOG_MAKE_EXECUTABLE})
endif()
- set(GLOG_MAKE_PROGRAM ${GLOG_MAKE_EXECUTABLE})
+ ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ DEPENDS ${TARGET_GFLAGS}
+ PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ GIT_REPOSITORY https://github.com/google/glog/
+ GIT_TAG v${GNSSSDR_GLOG_LOCAL_VERSION}
+ SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ BINARY_DIR ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ CONFIGURE_COMMAND ${GLOG_CONFIGURE} --prefix=
+ BUILD_COMMAND "${GLOG_MAKE_PROGRAM}"
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ set(GLOG_LIBRARIES
+ ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/.libs/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ set(GLOG_INCLUDE_DIRS
+ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
+ ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
+ )
+ else() # CMake > 3.0 but < 3.3
+ ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ DEPENDS ${TARGET_GFLAGS}
+ PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ GIT_REPOSITORY https://github.com/google/glog/
+ GIT_TAG v${GNSSSDR_GLOG_LOCAL_VERSION}
+ SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ BINARY_DIR ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_PREFIX_PATH=${GFLAGS_PREFIX_PATH}
+ ${GLOG_TOOLCHAIN_FILE}
+ -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
+ BUILD_COMMAND ${GLOG_MAKE_PROGRAM}
+ UPDATE_COMMAND ""
+ PATCH_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ set(GLOG_INCLUDE_DIRS
+ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
+ ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
+ ${GFlags_INCLUDE_DIRS}
+ )
endif()
- ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- DEPENDS ${TARGET_GFLAGS}
- PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- GIT_REPOSITORY https://github.com/google/glog/
- GIT_TAG v${GNSSSDR_GLOG_LOCAL_VERSION}
- SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- BINARY_DIR ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- CONFIGURE_COMMAND ${GLOG_CONFIGURE} --prefix=
- BUILD_COMMAND "${GLOG_MAKE_PROGRAM}"
- UPDATE_COMMAND ""
- PATCH_COMMAND ""
- INSTALL_COMMAND ""
- )
- set(GLOG_LIBRARIES
- ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/.libs/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
- set(GLOG_INCLUDE_DIRS
- ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
- ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
+ else() # CMake > 3.3
+ set(GLOG_BUILD_BYPRODUCTS
+ ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
)
- else() # CMake > 3.0 but < 3.3
+ if((CMAKE_BUILD_TYPE STREQUAL Debug) OR (CMAKE_BUILD_TYPE STREQUAL NoOptWithASM) OR
+ (CMAKE_BUILD_TYPE STREQUAL Coverage) OR (CMAKE_BUILD_TYPE STREQUAL ASAN)) # Workaround for Ninja generator
+ set(GLOG_BUILD_BYPRODUCTS
+ ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ endif()
+ if((CMAKE_VERSION VERSION_GREATER 3.12.0) AND NOT (CMAKE_GENERATOR STREQUAL Xcode) AND NOT CMAKE_CROSSCOMPILING)
+ set(PARALLEL_BUILD "--parallel 2")
+ endif()
+ if(GNSSSDR_GLOG_LOCAL_VERSION VERSION_GREATER 0.5.0)
+ set(GLOG_GTEST -DWITH_GTEST=FALSE)
+ endif()
+ if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
+ set(GNSSSDR_GLOG_LOCAL_GFLAGS -DCMAKE_REQUIRED_INCLUDES=${GFlags_INCLUDE_DIRS})
+ endif()
ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
DEPENDS ${TARGET_GFLAGS}
PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
@@ -1710,11 +1833,15 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
BINARY_DIR ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_PREFIX_PATH=${GFLAGS_PREFIX_PATH}
${GLOG_TOOLCHAIN_FILE}
-DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
- BUILD_COMMAND ${GLOG_MAKE_PROGRAM}
+ -DBUILD_SHARED_LIBS=OFF
+ ${GLOG_GTEST}
+ -DBUILD_TESTING=OFF
+ "${GNSSSDR_GLOG_LOCAL_GFLAGS}"
+ BUILD_COMMAND "${GLOG_MAKE_PROGRAM} ${PARALLEL_BUILD}"
+ BUILD_BYPRODUCTS ${GLOG_BUILD_BYPRODUCTS}
UPDATE_COMMAND ""
PATCH_COMMAND ""
INSTALL_COMMAND ""
@@ -1725,120 +1852,64 @@ ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/configu
${GFlags_INCLUDE_DIRS}
)
endif()
- else() # CMake > 3.3
- set(GLOG_BUILD_BYPRODUCTS
- ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
- if((CMAKE_BUILD_TYPE STREQUAL Debug) OR (CMAKE_BUILD_TYPE STREQUAL NoOptWithASM) OR
- (CMAKE_BUILD_TYPE STREQUAL Coverage) OR (CMAKE_BUILD_TYPE STREQUAL ASAN)) # Workaround for Ninja generator
- set(GLOG_BUILD_BYPRODUCTS
- ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
- endif()
- if((CMAKE_VERSION VERSION_GREATER 3.12.0) AND NOT (CMAKE_GENERATOR STREQUAL Xcode) AND NOT CMAKE_CROSSCOMPILING)
- set(PARALLEL_BUILD "--parallel 2")
- endif()
- if(GNSSSDR_GLOG_LOCAL_VERSION VERSION_GREATER 0.5.0)
- set(GLOG_GTEST -DWITH_GTEST=FALSE)
- endif()
- if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
- set(GNSSSDR_GLOG_LOCAL_GFLAGS -DCMAKE_REQUIRED_INCLUDES=${GFlags_INCLUDE_DIRS})
- endif()
- ExternalProject_Add(glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- DEPENDS ${TARGET_GFLAGS}
- PREFIX ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- GIT_REPOSITORY https://github.com/google/glog/
- GIT_TAG v${GNSSSDR_GLOG_LOCAL_VERSION}
- SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- BINARY_DIR ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_PREFIX_PATH=${GFLAGS_PREFIX_PATH}
- ${GLOG_TOOLCHAIN_FILE}
- -DCMAKE_BUILD_TYPE=$<$:Debug>$<$:Release>$<$:RelWithDebInfo>$<$:MinSizeRel>$<$:Debug>$<$:Debug>$<$:RelWithDebInfo>$<$:RelWithDebInfo>$<$:Debug>
- -DBUILD_SHARED_LIBS=OFF
- ${GLOG_GTEST}
- -DBUILD_TESTING=OFF
- "${GNSSSDR_GLOG_LOCAL_GFLAGS}"
- BUILD_COMMAND "${GLOG_MAKE_PROGRAM} ${PARALLEL_BUILD}"
- BUILD_BYPRODUCTS ${GLOG_BUILD_BYPRODUCTS}
- UPDATE_COMMAND ""
- PATCH_COMMAND ""
- INSTALL_COMMAND ""
- )
- set(GLOG_INCLUDE_DIRS
- ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src
- ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}
- ${GFlags_INCLUDE_DIRS}
- )
- endif()
- add_dependencies(glog-${GNSSSDR_GLOG_LOCAL_VERSION} Gflags::gflags)
+ add_dependencies(glog-${GNSSSDR_GLOG_LOCAL_VERSION} Gflags::gflags)
- # Create Glog::glog target
- if(NOT TARGET Glog::glog)
- file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src)
- file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION})
- add_library(Glog::glog STATIC IMPORTED)
- add_dependencies(Glog::glog glog-${GNSSSDR_GLOG_LOCAL_VERSION})
- if(CMAKE_VERSION VERSION_LESS 3.0)
- set_target_properties(Glog::glog PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_LOCATION "${GLOG_LIBRARIES}"
- INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
- INTERFACE_INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
- INTERFACE_LINK_LIBRARIES "${GLOG_LIBRARIES}"
- )
- else()
- set_target_properties(Glog::glog PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_CONFIGURATIONS "None;Debug;Release;RelWithDebInfo;MinSizeRel"
- MAP_IMPORTED_CONFIG_NOOPTWITHASM Debug
- MAP_IMPORTED_CONFIG_COVERAGE Debug
- MAP_IMPORTED_CONFIG_O2WITHASM RelWithDebInfo
- MAP_IMPORTED_CONFIG_O3WITHASM RelWithDebInfo
- MAP_IMPORTED_CONFIG_ASAN Debug
- IMPORTED_LOCATION_NONE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- INTERFACE_INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
- INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog$<$:d>${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
- if((CMAKE_GENERATOR STREQUAL Xcode) OR MSVC)
+ # Create Glog::glog target
+ if(NOT TARGET Glog::glog)
+ file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/src)
+ file(MAKE_DIRECTORY ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION})
+ add_library(Glog::glog STATIC IMPORTED)
+ add_dependencies(Glog::glog glog-${GNSSSDR_GLOG_LOCAL_VERSION})
+ if(CMAKE_VERSION VERSION_LESS 3.0)
set_target_properties(Glog::glog PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/Debug/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/Release/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/RelWithDebInfo/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/MinSizeRel/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
- INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/$<$:Debug/>$<$:Release/>$<$:RelWithDebInfo/>$<$:MinSizeRel/>${CMAKE_FIND_LIBRARY_PREFIXES}glog$<$:d>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_LOCATION "${GLOG_LIBRARIES}"
+ INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES "${GLOG_LIBRARIES}"
)
+ else()
+ set_target_properties(Glog::glog PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_CONFIGURATIONS "None;Debug;Release;RelWithDebInfo;MinSizeRel"
+ MAP_IMPORTED_CONFIG_NOOPTWITHASM Debug
+ MAP_IMPORTED_CONFIG_COVERAGE Debug
+ MAP_IMPORTED_CONFIG_O2WITHASM RelWithDebInfo
+ MAP_IMPORTED_CONFIG_O3WITHASM RelWithDebInfo
+ MAP_IMPORTED_CONFIG_ASAN Debug
+ IMPORTED_LOCATION_NONE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ INTERFACE_INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}glog$<$:d>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ if((CMAKE_GENERATOR STREQUAL Xcode) OR MSVC)
+ set_target_properties(Glog::glog PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/Debug/${CMAKE_FIND_LIBRARY_PREFIXES}glogd${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/Release/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/RelWithDebInfo/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_MINSIZEREL ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/MinSizeRel/${CMAKE_FIND_LIBRARY_PREFIXES}glog${CMAKE_STATIC_LIBRARY_SUFFIX}
+ INTERFACE_LINK_LIBRARIES ${GNSSSDR_BINARY_DIR}/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/$<$:Debug/>$<$:Release/>$<$:RelWithDebInfo/>$<$:MinSizeRel/>${CMAKE_FIND_LIBRARY_PREFIXES}glog$<$:d>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
+ endif()
endif()
endif()
- endif()
- if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
- set_target_properties(Glog::glog PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT;GLOG_USE_GFLAGS"
- INTERFACE_COMPILE_FEATURES "cxx_std_14")
- endif()
-
- if(LIBUNWIND_FOUND)
- target_link_libraries(Glog::glog INTERFACE Libunwind::libunwind)
- endif()
- set(LOCAL_GLOG TRUE CACHE STRING "Glog downloaded, built, and statically linked automatically" FORCE)
+ if(NOT (CMAKE_VERSION VERSION_LESS "3.22"))
+ set_target_properties(Glog::glog PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT;GLOG_USE_GFLAGS"
+ INTERFACE_COMPILE_FEATURES "cxx_std_14")
+ endif()
- set_package_properties(GLOG PROPERTIES
- PURPOSE "Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'."
- )
-endif()
+ if(LIBUNWIND_FOUND)
+ target_link_libraries(Glog::glog INTERFACE Libunwind::libunwind)
+ endif()
+ set(LOCAL_GLOG TRUE CACHE STRING "Glog downloaded, built, and statically linked automatically" FORCE)
-if(NOT ENABLE_LOG)
- message(STATUS "Internal logging is not enabled")
- if(CMAKE_VERSION VERSION_GREATER 3.11.0)
- target_compile_definitions(Glog::glog INTERFACE -DGOOGLE_STRIP_LOG=1)
- else()
- set_property(TARGET Glog::glog APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS GOOGLE_STRIP_LOG=1
+ set_package_properties(GLOG PROPERTIES
+ PURPOSE "Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded, built, and statically linked when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'."
)
endif()
endif()
@@ -2656,12 +2727,6 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI
endif()
else()
if(CMAKE_VERSION VERSION_GREATER "3.13")
- find_package(absl)
- set_package_properties(absl PROPERTIES
- URL "https://github.com/abseil/abseil-cpp"
- PURPOSE "Abseil-cpp >= 20230117 required to be installed before building Protocol Buffers >22.x on the fly."
- TYPE OPTIONAL
- )
if(absl_FOUND)
if(absl_VERSION)
if(${absl_VERSION} VERSION_LESS "20230117")
@@ -3481,8 +3546,10 @@ add_feature_info(ENABLE_FPGA ENABLE_FPGA "Enables building of processing blocks
add_feature_info(ENABLE_ARMA_NO_DEBUG ENABLE_ARMA_NO_DEBUG "Enables passing the ARMA_NO_DEBUG macro to Armadillo, hence disabling bound checking.")
add_feature_info(ENABLE_PACKAGING ENABLE_PACKAGING "Enables software packaging.")
add_feature_info(ENABLE_OWN_GLOG ENABLE_OWN_GLOG "Forces the downloading and building of Google glog.")
+add_feature_info(ENABLE_GLOG_AND_GFLAGS ENABLE_GLOG_AND_GFLAGS "Forces the usage of Google glog and Gflags instead of Abseil")
+add_feature_info(ENABLE_OWN_ABSEIL ENABLE_OWN_ABSEIL "Forces downloading and building Abseil. Supersedes ENABLE_OWN_GLOG")
add_feature_info(ENABLE_OWN_ARMADILLO ENABLE_OWN_ARMADILLO "Forces the downloading and building of Armadillo.")
-add_feature_info(ENABLE_LOG ENABLE_LOG "Enables runtime internal logging with Google glog.")
+add_feature_info(ENABLE_LOG ENABLE_LOG "Enables runtime internal logging.")
add_feature_info(ENABLE_ORC ENABLE_ORC "Use the Optimized Inner Loop Runtime Compiler (ORC) for building volk_gnsssdr.")
add_feature_info(ENABLE_STRIP ENABLE_STRIP "Enables the generation of stripped binaries (without debugging symbols).")
add_feature_info(ENABLE_UNIT_TESTING ENABLE_UNIT_TESTING "Enables building of Unit Tests.")
diff --git a/README.md b/README.md
index 0413da74ab..357e06637a 100644
--- a/README.md
+++ b/README.md
@@ -222,9 +222,9 @@ Once you have installed these packages, you can jump directly to
If you are using Arch Linux:
```
-$ pacman -S gcc make cmake pkgconf git boost boost-libs log4cpp libvolk gnuradio \
- blas lapack gflags google-glog openssl pugixml libmatio protobuf \
- python-mako libpcap gtest
+$ pacman -S gcc make cmake pkgconf git boost boost-libs libvolk gnuradio \
+ blas lapack hdf5 openssl pugixml libmatio protobuf libpcap gtest \
+ python-mako
```
Once you have installed these packages, you can jump directly to
@@ -430,6 +430,10 @@ $ sudo make install
$ sudo ldconfig
```
+Please note that GFlags is replaced by the
+[Abseil Flags Library](https://abseil.io/docs/cpp/guides/flags) if Abseil >=
+v20240116 is available in your system.
+
#### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging
```
@@ -443,6 +447,10 @@ $ sudo make install
$ sudo ldconfig
```
+Please note that Glog is replaced by the
+[Abseil Logging Library](https://abseil.io/docs/cpp/guides/logging) if Abseil >=
+v20240116 is available in your system.
+
#### Install the GnuTLS or OpenSSL libraries
```
@@ -832,7 +840,7 @@ $ sudo port selfupdate
$ sudo port upgrade outdated
$ sudo port install armadillo cmake pkgconfig protobuf3-cpp pugixml gnutls
$ sudo port install gnuradio +uhd +grc +zeromq
-$ sudo port install boost matio libad9361-iio libiio google-glog +gflags
+$ sudo port install boost matio libad9361-iio libiio
$ sudo port install py311-mako
$ sudo port install doxygen +docs
```
@@ -871,8 +879,7 @@ Install the required dependencies:
```
$ brew update && brew upgrade
-$ brew install armadillo cmake hdf5 gflags glog gnuradio libmatio log4cpp \
- openssl pkg-config protobuf pugixml
+$ brew install armadillo cmake hdf5 gnuradio libmatio openssl pkg-config protobuf pugixml
$ brew install --cask mactex # when completed, restart Terminal
$ brew install graphviz doxygen
¢ pip3 install mako
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 3d797d4334..473f7742b5 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -16,8 +16,37 @@ All notable changes to GNSS-SDR will be documented in this file.
### Improvements in Portability:
-- Fix building against google-glog 0.7.0
+- Fix building against google-glog 0.7.0.
- Find dependencies in the loongarch64 architecture.
+- Soft transition from [GFlags](https://github.com/gflags/gflags) and
+ [Google Logging (glog)](https://github.com/google/glog) to Abseil
+ [Logging](https://abseil.io/docs/cpp/guides/logging) and
+ [Flags](https://abseil.io/docs/cpp/guides/flags) libraries. While gflags and
+ glog have dutifully served GNSS-SDR for over a decade, they are now showing
+ signs of aging. The latest version of gflags dates back six years now, with
+ its last commit in the master branch occurring two years ago. Glog remains
+ well maintained, with its latest version v0.7.0 released in February 2024, but
+ with no active development of new features and stuck at C++14. Abseil, on the
+ other hand, represents a contemporary evolution in software development,
+ supports C++17 and C++20, and has absorbed the functionalities of flags and
+ logging from its predecessors. Furthermore, as Abseil has become a
+ prerequisite for the latest versions of Protocol Buffers, its eventual
+ inclusion in GNSS-SDR's indirect dependencies is inevitable. Leveraging Abseil
+ allows for eliminating the need for gflags and glog, thereby reducing the
+ number of mandatory dependencies for GNSS-SDR in forthcoming GNU/Linux
+ distributions. For seamless integration, GNSS-SDR requires a quite recent
+ minimum version of Abseil, v20240116. If an older version is detected, the
+ library will not be utilized, and GNSS-SDR will fall back to using gflags and
+ glog, which still can be used and are fully supported. A new CMake
+ configuration option `-DENABLE_GLOG_AND_GFLAGS=ON` is available to force the
+ usage of glog and gflags instead of Abseil, even if a valid version of that
+ library is present. If the Abseil version installed in your system is too old
+ but you still want to try it, you can also force the downloading and building
+ of a recent version with the new CMake configuration flag
+ `-DENABLE_OWN_ABSEIL=ON` (requires CMake >= 3.24, otherwise it has no effect).
+ This change has a downside in maintainability, since the source code becomes
+ plagued with preprocessor directives required to maintain compatibility both
+ with gflags and glog, and with Abseil.
### Improvements in Usability:
diff --git a/src/algorithms/PVT/adapters/CMakeLists.txt b/src/algorithms/PVT/adapters/CMakeLists.txt
index 658e493ac0..415fb13d40 100644
--- a/src/algorithms/PVT/adapters/CMakeLists.txt
+++ b/src/algorithms/PVT/adapters/CMakeLists.txt
@@ -23,10 +23,16 @@ target_link_libraries(pvt_adapters
pvt_gr_blocks
PRIVATE
gnss_sdr_flags
- Glog::glog
pvt_libs
)
+if(ENABLE_GLOG_AND_GFLAGS)
+ target_link_libraries(pvt_adapters PRIVATE Glog::glog)
+ target_compile_definitions(pvt_adapters PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
+else()
+ target_link_libraries(pvt_adapters PRIVATE absl::flags absl::log)
+endif()
+
target_include_directories(pvt_adapters
PUBLIC
${GNSSSDR_SOURCE_DIR}/src/core/interfaces
diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc
index 93166877d3..bdd1f97c62 100644
--- a/src/algorithms/PVT/adapters/rtklib_pvt.cc
+++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc
@@ -26,8 +26,12 @@
#include "gps_ephemeris.h" // for Gps_Ephemeris
#include "pvt_conf.h" // for Pvt_Conf
#include "rtklib_rtkpos.h" // for rtkfree, rtkinit
-#include // for LOG
#include // for std::cout
+#if USE_GLOG_AND_GFLAGS
+#include
+#else
+#include
+#endif
#if USE_STD_COMMON_FACTOR
#include
namespace bc = std;
@@ -88,6 +92,7 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
// RINEX version
pvt_output_parameters.rinex_version = configuration->property(role + ".rinex_version", 3);
+#if USE_GLOG_AND_GFLAGS
if (FLAGS_RINEX_version == "3.01" || FLAGS_RINEX_version == "3.02" || FLAGS_RINEX_version == "3")
{
pvt_output_parameters.rinex_version = 3;
@@ -96,13 +101,29 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
{
pvt_output_parameters.rinex_version = 2;
}
+#else
+ if (absl::GetFlag(FLAGS_RINEX_version) == "3.01" || absl::GetFlag(FLAGS_RINEX_version) == "3.02" || absl::GetFlag(FLAGS_RINEX_version) == "3")
+ {
+ pvt_output_parameters.rinex_version = 3;
+ }
+ else if (absl::GetFlag(FLAGS_RINEX_version) == "2.10" || absl::GetFlag(FLAGS_RINEX_version) == "2.11" || absl::GetFlag(FLAGS_RINEX_version) == "2")
+ {
+ pvt_output_parameters.rinex_version = 2;
+ }
+#endif
pvt_output_parameters.rinexobs_rate_ms = bc::lcm(configuration->property(role + ".rinexobs_rate_ms", 1000), pvt_output_parameters.output_rate_ms);
pvt_output_parameters.rinex_name = configuration->property(role + ".rinex_name", std::string("-"));
+#if USE_GLOG_AND_GFLAGS
if (FLAGS_RINEX_name != "-")
{
pvt_output_parameters.rinex_name = FLAGS_RINEX_name;
}
-
+#else
+ if (absl::GetFlag(FLAGS_RINEX_name) != "-")
+ {
+ pvt_output_parameters.rinex_name = absl::GetFlag(FLAGS_RINEX_name);
+ }
+#endif
// RTCM Printer settings
pvt_output_parameters.flag_rtcm_tty_port = configuration->property(role + ".flag_rtcm_tty_port", false);
pvt_output_parameters.rtcm_dump_devname = configuration->property(role + ".rtcm_dump_devname", default_rtcm_dump_devname);
diff --git a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
index ae1b728bf7..1964d15338 100644
--- a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
@@ -27,11 +27,16 @@ target_link_libraries(pvt_gr_blocks
PRIVATE
algorithms_libs
pvt_libs
- Gflags::gflags
- Glog::glog
Boost::serialization
)
+if(ENABLE_GLOG_AND_GFLAGS)
+ target_link_libraries(pvt_gr_blocks PRIVATE Gflags::gflags Glog::glog)
+ target_compile_definitions(pvt_gr_blocks PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
+else()
+ target_link_libraries(pvt_gr_blocks PRIVATE absl::log)
+endif()
+
if(GNURADIO_USES_STD_POINTERS)
target_compile_definitions(pvt_gr_blocks
PUBLIC -DGNURADIO_USES_STD_POINTERS=1
diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc
index 80b41440af..b2dfbfaa5c 100644
--- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc
@@ -64,7 +64,6 @@
#include
#include
#include // for nvp, make_nvp
-#include // for LOG
#include // for io_signature
#include // for mp
#include // for sort, unique
@@ -82,6 +81,12 @@
#include // for std::type_info, typeid
#include // for pair
+#if USE_GLOG_AND_GFLAGS
+#include
+#else
+#include
+#endif
+
#if HAS_GENERIC_LAMBDA
#else
#include
diff --git a/src/algorithms/PVT/libs/CMakeLists.txt b/src/algorithms/PVT/libs/CMakeLists.txt
index 07e905a2c0..69283a0814 100644
--- a/src/algorithms/PVT/libs/CMakeLists.txt
+++ b/src/algorithms/PVT/libs/CMakeLists.txt
@@ -92,11 +92,18 @@ target_link_libraries(pvt_libs
algorithms_libs_rtklib
PRIVATE
algorithms_libs
- Gflags::gflags
- Glog::glog
+ gnss_sdr_flags
Matio::matio
)
+if(ENABLE_GLOG_AND_GFLAGS)
+ target_link_libraries(pvt_libs PUBLIC Glog::glog)
+
+ target_compile_definitions(pvt_libs PUBLIC -DUSE_GLOG_AND_GFLAGS=1)
+else()
+ target_link_libraries(pvt_libs PUBLIC absl::log)
+endif()
+
get_filename_component(PROTO_INCLUDE_HEADERS_DIR ${PROTO_HDRS} DIRECTORY)
# for concurrent_queue.h
diff --git a/src/algorithms/PVT/libs/an_packet_printer.cc b/src/algorithms/PVT/libs/an_packet_printer.cc
index 6618d6982c..22d31371bc 100644
--- a/src/algorithms/PVT/libs/an_packet_printer.cc
+++ b/src/algorithms/PVT/libs/an_packet_printer.cc
@@ -20,7 +20,6 @@
#include "an_packet_printer.h"
#include "rtklib_solver.h" // for Rtklib_Solver
-#include // for DLOG
#include // for M_PI
#include // for memcpy
#include // for fcntl
@@ -29,6 +28,12 @@
#include // values for termios
#include // for write(), read(), close()
+#if USE_GLOG_AND_GFLAGS
+#include
+#else
+#include
+#endif
+
An_Packet_Printer::An_Packet_Printer(const std::string& an_dump_devname)
: d_start(std::chrono::system_clock::now()),
diff --git a/src/algorithms/PVT/libs/geohash.cc b/src/algorithms/PVT/libs/geohash.cc
index ecc1f6f3ad..44a06adda2 100644
--- a/src/algorithms/PVT/libs/geohash.cc
+++ b/src/algorithms/PVT/libs/geohash.cc
@@ -135,7 +135,7 @@ std::array Geohash::decode(std::string geohash) const
std::array Geohash::bounds(std::string geohash) const
{
- if (geohash.length() == 0)
+ if (geohash.empty())
{
throw std::runtime_error("Invalid geohash");
}
diff --git a/src/algorithms/PVT/libs/geojson_printer.cc b/src/algorithms/PVT/libs/geojson_printer.cc
index f57e9d5821..62c53e82ce 100644
--- a/src/algorithms/PVT/libs/geojson_printer.cc
+++ b/src/algorithms/PVT/libs/geojson_printer.cc
@@ -20,13 +20,18 @@
#include "gnss_sdr_filesystem.h"
#include "pvt_solution.h"
#include
-#include
#include // for tm
#include // for exception
#include