1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-14 04:00:34 +00:00

Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime

This commit is contained in:
Javier Arribas 2022-09-05 16:29:03 +02:00
commit b1e09584cd
10 changed files with 93 additions and 26 deletions

56
.github/workflows/volk_android.yml vendored Normal file
View File

@ -0,0 +1,56 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2022 Carles Fernandez-Prades <carles.fernandez@cttc.es>
on:
push:
paths:
- 'src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/**'
workflow_dispatch:
pull_request:
paths:
- 'src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/**'
workflow_dispatch:
name: Build volk-gnssdr on Android NDK
jobs:
build:
name: Build on Android NDK ${{ matrix.arch.name }}
strategy:
fail-fast: false
matrix:
arch:
- { name: armeabi-v7a, allow_fail: false }
- { name: arm64-v8a, allow_fail: false }
- { name: x86, allow_fail: false }
- { name: x86_64, allow_fail: false }
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.0
- name: Update repositories
run: sudo apt update
# All dependencies
- name: Install dependencies
run: sudo apt install -y cmake openjdk-11-jre-headless wget unzip make python3-mako
# Setup Android SDK, and auto-accept licenses
- name: Install Android SDK
run: wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip && mkdir android-sdk-linux && unzip -qq android-sdk.zip -d android-sdk-linux && export ANDROID_HOME=./android-sdk-linux && echo y | $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=android-sdk-linux --update && (echo y; echo y; echo y; echo y; echo y; echo y; echo y; echo y) | $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=android-sdk-linux --licenses
# Call SDKManager to install the Android NDK
- name: Install Android NDK
run: $GITHUB_WORKSPACE/android-sdk-linux/cmdline-tools/bin/sdkmanager --sdk_root=$GITHUB_WORKSPACE/android-sdk-linux --install "ndk;24.0.8215888" --channel=3
# Setup build directory
- name: Setup ${{ matrix.arch.name }}
shell: bash
run: cd $GITHUB_WORKSPACE/ && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/android-sdk-linux/ndk/24.0.8215888/build/cmake/android.toolchain.cmake -DANDROID_ABI=${{ matrix.arch.name }} -DANDROID_PLATFORM=android-24 ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
# Build
- name: Build ${{ matrix.arch.name }}
shell: bash
run: cd $GITHUB_WORKSPACE/build && make
continue-on-error: ${{ matrix.arch.allow_fail }}

View File

@ -16,7 +16,7 @@ endif()
# Build type can still be overridden by setting -DCMAKE_BUILD_TYPE= # Build type can still be overridden by setting -DCMAKE_BUILD_TYPE=
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "") set(CMAKE_BUILD_TYPE "Release" CACHE STRING "")
cmake_minimum_required(VERSION 2.8.12...3.23) cmake_minimum_required(VERSION 2.8.12...3.24)
project(gnss-sdr CXX C) project(gnss-sdr CXX C)
set(GNSSSDR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Allows to be a sub-project set(GNSSSDR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Allows to be a sub-project
@ -348,7 +348,7 @@ set(GNSSSDR_GNSS_SIM_LOCAL_VERSION "master")
set(GNSSSDR_GNSSTK_LOCAL_VERSION "13.4.0") set(GNSSSDR_GNSSTK_LOCAL_VERSION "13.4.0")
set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.23") set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.23")
set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.12") set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.12")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.4") set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "21.5")
set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.7.0") set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.7.0")
set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7") set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7")

View File

@ -8,7 +8,7 @@
######################################################################## ########################################################################
# Project setup # Project setup
######################################################################## ########################################################################
cmake_minimum_required(VERSION 2.8.12...3.23) cmake_minimum_required(VERSION 2.8.12...3.24)
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Release")
endif() endif()
@ -209,7 +209,7 @@ message(STATUS "Build type set to ${CMAKE_BUILD_TYPE}.")
set(VERSION_INFO_MAJOR_VERSION 0) set(VERSION_INFO_MAJOR_VERSION 0)
set(VERSION_INFO_MINOR_VERSION 0) set(VERSION_INFO_MINOR_VERSION 0)
set(VERSION_INFO_MAINT_VERSION 17) set(VERSION_INFO_MAINT_VERSION 17.git)
include(VolkGnsssdrVersion) # setup version info include(VolkGnsssdrVersion) # setup version info
@ -362,16 +362,7 @@ endif()
######################################################################## ########################################################################
find_package(Doxygen) find_package(Doxygen)
if(DOXYGEN_FOUND) if(DOXYGEN_FOUND)
configure_file( add_subdirectory(docs)
${PROJECT_SOURCE_DIR}/Doxyfile.in
${PROJECT_BINARY_DIR}/Doxyfile
@ONLY
)
add_custom_target(doc
${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Generating documentation with Doxygen" VERBATIM
)
endif() endif()
@ -396,13 +387,13 @@ set(libdir "\${exec_prefix}/lib${LIB_SUFFIX}")
set(includedir "\${prefix}/include") set(includedir "\${prefix}/include")
configure_file( configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/volk_gnsssdr.pc.in ${PROJECT_SOURCE_DIR}/tmpl/volk_gnsssdr.pc.in
${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr.pc ${PROJECT_BINARY_DIR}/volk_gnsssdr.pc
@ONLY @ONLY
) )
install( install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr.pc FILES ${PROJECT_BINARY_DIR}/volk_gnsssdr.pc
DESTINATION lib${LIB_SUFFIX}/pkgconfig DESTINATION lib${LIB_SUFFIX}/pkgconfig
COMPONENT "volk_gnsssdr_devel" COMPONENT "volk_gnsssdr_devel"
) )
@ -471,14 +462,14 @@ endif()
######################################################################## ########################################################################
configure_file( configure_file(
${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in ${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ${PROJECT_BINARY_DIR}/cmake_uninstall.cmake
@ONLY @ONLY
) )
# Only add the target if there isn't one defined already # Only add the target if there isn't one defined already
if(NOT TARGET uninstall) if(NOT TARGET uninstall)
add_custom_target(uninstall add_custom_target(uninstall
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/cmake_uninstall.cmake
) )
endif() endif()
@ -513,8 +504,8 @@ endif()
install( install(
FILES FILES
${CMAKE_CURRENT_BINARY_DIR}/cmake/Modules/VolkGnsssdrConfig.cmake ${PROJECT_BINARY_DIR}/cmake/Modules/VolkGnsssdrConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/cmake/Modules/VolkGnsssdrConfigVersion.cmake ${PROJECT_BINARY_DIR}/cmake/Modules/VolkGnsssdrConfigVersion.cmake
DESTINATION ${CMAKE_MODULES_DIR}/volk_gnsssdr DESTINATION ${CMAKE_MODULES_DIR}/volk_gnsssdr
COMPONENT "volk_gnsssdr_devel" COMPONENT "volk_gnsssdr_devel"
) )

View File

@ -0,0 +1,17 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2022 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
message(STATUS "Doxygen in docs |${DOXYGEN_FOUND}|")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
${CMAKE_BINARY_DIR}/Doxyfile
@ONLY)
add_custom_target(volk_gnsssdr_doc
${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating documentation with Doxygen" VERBATIM
)

View File

@ -776,7 +776,7 @@ FILE_VERSION_FILTER =
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty. # tag is left empty.
LAYOUT_FILE = @PROJECT_SOURCE_DIR@/DoxygenLayout.xml LAYOUT_FILE = @PROJECT_SOURCE_DIR@/docs/DoxygenLayout.xml
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib # the reference definitions. This must be a list of .bib files. The .bib

View File

@ -2,7 +2,7 @@
* \file volk_gnsssdr_alloc.h * \file volk_gnsssdr_alloc.h
* \author Carles Fernandez, 2019. cfernandez(at)cttc.es * \author Carles Fernandez, 2019. cfernandez(at)cttc.es
* \brief C++11 allocator using volk_gnsssdr_malloc and volk_gnsssdr_free. * \brief C++11 allocator using volk_gnsssdr_malloc and volk_gnsssdr_free.
* Based on https://github.com/gnuradio/volk/pull/284/ by @hcab14 * Based on https://github.com/gnuradio/volk/pull/284/ by hcab14
* *
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver. * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
* This file is part of GNSS-SDR. * This file is part of GNSS-SDR.

View File

@ -72,7 +72,7 @@ static inline void volk_gnsssdr_32fc_32f_high_dynamic_rotator_dot_prod_32fc_xn_g
lv_32fc_t phase_doppler = (*phase); lv_32fc_t phase_doppler = (*phase);
int n_vec; int n_vec;
unsigned int n; unsigned int n;
#if _WIN32 #if _WIN32 || __ANDROID_API__
const float arga = cargf(phase_inc_rate); const float arga = cargf(phase_inc_rate);
#endif #endif
for (n_vec = 0; n_vec < num_a_vectors; n_vec++) for (n_vec = 0; n_vec < num_a_vectors; n_vec++)
@ -92,7 +92,7 @@ static inline void volk_gnsssdr_32fc_32f_high_dynamic_rotator_dot_prod_32fc_xn_g
} }
tmp32_1 = *in_common++ * (*phase); tmp32_1 = *in_common++ * (*phase);
phase_doppler *= phase_inc; phase_doppler *= phase_inc;
#if _WIN32 #if _WIN32 || __ANDROID_API__
const float theta = (float)(n * n) * arga; const float theta = (float)(n * n) * arga;
phase_doppler_rate = lv_cmake(cosf(theta), sinf(theta)); phase_doppler_rate = lv_cmake(cosf(theta), sinf(theta));
#else #else

View File

@ -482,6 +482,7 @@ message(STATUS "Loading version ${VERSION} into constants...")
# double escape for windows backslash path separators # double escape for windows backslash path separators
string(REPLACE "\\" "\\\\" prefix "${prefix}") string(REPLACE "\\" "\\\\" prefix "${prefix}")
string(REPLACE "${CMAKE_SOURCE_DIR}" "$BUILD_DIR" COMPILER_INFO "${COMPILER_INFO}")
configure_file( configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/constants.c.in ${CMAKE_CURRENT_SOURCE_DIR}/constants.c.in
@ -638,7 +639,9 @@ if(ENABLE_STATIC_LIBS)
if(ORC_FOUND) if(ORC_FOUND)
target_link_libraries(volk_gnsssdr_static PUBLIC ${ORC_LIBRARIES_STATIC}) target_link_libraries(volk_gnsssdr_static PUBLIC ${ORC_LIBRARIES_STATIC})
endif() endif()
target_link_libraries(volk_gnsssdr_static PRIVATE pthread) if(NOT ANDROID)
target_link_libraries(volk_gnsssdr_static PRIVATE pthread)
endif()
if(NOT MSVC) if(NOT MSVC)
target_link_libraries(volk_gnsssdr_static PUBLIC m) target_link_libraries(volk_gnsssdr_static PUBLIC m)
endif() endif()