diff --git a/.github/workflows/citation.yml b/.github/workflows/citation.yml index 9de637fed..db667992c 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/gnss-sdr_archs.yml b/.github/workflows/gnss-sdr_archs.yml index 6ba71fb64..ca9595187 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 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 183a871ef..56e631df8 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: @@ -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,13 +129,12 @@ 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 - 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 diff --git a/.github/workflows/volk_gnsssdr_archs.yml b/.github/workflows/volk_gnsssdr_archs.yml index 0e3489647..734cda533 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ad58d673..889c6e09c 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,12 @@ 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" 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.13.0") +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) @@ -1808,7 +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) + 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) @@ -2160,6 +2168,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/README.md b/README.md index 7e9fd62d9..e745bf336 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 ``` diff --git a/cmake/Modules/FindCPUFEATURES.cmake b/cmake/Modules/FindCPUFEATURES.cmake index 6f25e91d2..7c25e69c2 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 2649380c9..08a5056b8 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 a6eb38a53..89530518d 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 e483dfbe9..6c506643e 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 @@ -178,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) + set_target_properties(Glog::glog PROPERTIES INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT") +endif() \ No newline at end of file diff --git a/cmake/Modules/FindGNURADIO.cmake b/cmake/Modules/FindGNURADIO.cmake index 5ce37cba6..9855ddc29 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 e08290252..1abd5caf4 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 cfd546feb..2fb60cb3f 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 cfaef1494..22ee7d51e 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 80df49673..e1ff8e4a3 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 31f152b6f..44f4d367e 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 0a1b7fee4..c453414f6 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 [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10579595.svg)](https://doi.org/10.5281/zenodo.10579595) @@ -102,7 +112,7 @@ All notable changes to GNSS-SDR will be documented in this file. 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