1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-04-07 19:26:46 +00:00

Release 0.0.20

This commit is contained in:
Carles Fernandez 2025-04-01 15:34:18 +02:00
commit 4ba5c3505b
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
795 changed files with 25647 additions and 6395 deletions

View File

@ -1,99 +1,289 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2018-2020 Carles Fernandez-Prades <carles.fernandez@cttc.es>
# SPDX-FileCopyrightText: 2018-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>
---
Language: Cpp
# BasedOnStyle: Google
# More info: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: true
AlignOperands: true
AlignTrailingComments: true
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveMacros:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AlignConsecutiveTableGenBreakingDAGArgColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenCondOperatorColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenDefinitionColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Never
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: true
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: false
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterExternBlock: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: false
BeforeWhile: true
IndentBraces: true
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Leave
BreakAfterJavaFieldAnnotations: false
BreakAfterReturnType: None
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: GNU
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakFunctionDefinitionParameters: false
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
BreakTemplateDeclarations: MultiLine
ColumnLimit: 0
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeBlocks: Merge
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Merge
IncludeCategories:
- Regex: '^.*.h"'
Priority: 1
SortPriority: 0
CaseSensitive: false
- Regex: '^.*(benchmark|boost|gflags|glog|gnsssdr|gnuradio|gnsstk|gsl|gtest|pmt|uhd|volk)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^.*(armadillo|iio|matio|pugixml)'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*\.h>'
Priority: 4
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*'
Priority: 5
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLines:
AtEndOfFile: false
AtStartOfBlock: false
AtStartOfFile: true
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ''
MacroBlockEnd: ''
MainIncludeChar: Quote
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PackConstructorInitializers: NextLine
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: true
SortIncludes: true
RemoveBracesLLVM: false
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInAngles: Never
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Never
SpacesInParensOptions:
ExceptDoubleParentheses: false
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
Standard: Auto
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TableGenBreakInsideDAGArg: DontBreak
TabWidth: 8
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
...

View File

@ -120,7 +120,6 @@ Checks: '-*,
readability-uppercase-literal-suffix'
WarningsAsErrors: ''
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle: 'file'
CheckOptions:
- key: performance-unnecessary-copy-initialization.ExcludedContainerTypes

View File

@ -58,8 +58,8 @@ jobs:
CXX: ${{ matrix.compiler.cxx }}
shell: /bin/sh
install: |
apt-get update -q -y
apt-get install -q -y ${{ matrix.compiler.name }} git ninja-build cmake \
apt update
apt install -y ${{ matrix.compiler.name }} git ninja-build cmake \
libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev \
libboost-thread-dev libboost-chrono-dev libboost-serialization-dev \
liblog4cpp5-dev gnuradio-dev gr-osmosdr libpugixml-dev libpcap-dev libblas-dev \

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2020-2022 Carles Fernandez-Prades <carles.fernandez@cttc.es>
# SPDX-FileCopyrightText: 2020-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>
name: Simple CI
on:
@ -18,9 +18,9 @@ jobs:
- uses: actions/checkout@v4
- name: install dependencies
run: |
sudo apt-get update -y
sudo apt update
sudo apt install -y libunwind-dev
sudo apt-get install -y --no-install-recommends ninja-build cmake \
sudo apt install -y --no-install-recommends ninja-build cmake \
libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev \
libboost-thread-dev libboost-chrono-dev libboost-serialization-dev \
liblog4cpp5-dev gnuradio-dev gr-osmosdr libpugixml-dev libpcap-dev libblas-dev \
@ -28,18 +28,23 @@ jobs:
libgnutls-openssl-dev libmatio-dev googletest protobuf-compiler libprotobuf-dev \
python3-mako liborc-0.4-dev
- name: configure
run: cd build && cmake -GNinja ..
run: cmake -S . -B build -GNinja
- name: build
run: cd build && ninja
run: cmake --build build
- name: check
run: cd build && ninja check && ../install/volk_gnsssdr_profile && ../install/run_tests
run: cmake --build build --target check && ./install/volk_gnsssdr_profile && ./install/run_tests
- name: default position_test
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test
run: |
cmake -S . -B build -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF && \
cmake --build build && ./install/position_test && ./install/run_tests --gtest_filter=Osnma*
build-macos:
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,21 +58,27 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
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 python-mako
brew link --overwrite python@3.12
brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf boost
pip3 install mako
- name: configure
run: cd build && cmake -GNinja ..
run: cmake -S . -B build -GNinja
- name: build
run: cd build && ninja
run: cmake --build build
- name: check
run: cd build && ninja check && ../install/volk_gnsssdr_profile && ../install/run_tests
run: cmake --build build --target check && ./install/volk_gnsssdr_profile && ./install/run_tests
- name: default position_test
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test
run: |
cmake -S . -B build -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF && \
cmake --build build && ./install/position_test && ./install/run_tests --gtest_filter=Osnma*
build-macos-xcode:
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,40 +92,49 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
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 python-mako
brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf boost
pip3 install mako
- name: configure
run: cd build && cmake -GXcode ..
run: cmake -S . -B build -GXcode
- name: build
run: cd build && xcodebuild -configuration Release
run: cmake --build build --config Release
- name: check
run: |
cd build
xcodebuild -configuration Release -target check
../install/volk_gnsssdr_profile
../install/run_tests
cmake --build build --config Release --target check
./install/volk_gnsssdr_profile
./install/run_tests
- name: default position_test
run: |
cd build
cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON ..
xcodebuild -configuration Release -target position_test
../install/position_test
cmake -S . -B build -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF
cmake --build build --config Release --target position_test
./install/position_test
./install/run_tests --gtest_filter=Osnma*
clang-format:
runs-on: ubuntu-latest
strategy:
matrix:
path:
- 'src'
- 'tests'
- 'utils'
steps:
- uses: actions/checkout@v4
- name: run clang-format
uses: jidicula/clang-format-action@v4.11.0
uses: jidicula/clang-format-action@v4.14.0
with:
clang-format-version: "15"
check-path: "src"
exclude-regex: '(libs\/gsl\/)|^.*\.(cu|proto)$'
clang-format-version: "19"
check-path: ${{ matrix.path }}
exclude-regex: '(libs\/gsl\/)|(tmpl)|(cpu_features)|^.*\.(cu|proto)$'
clang-tidy:
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 +148,16 @@ 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 gnuradio openssl pugixml protobuf llvm boost
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.13.0 core_monitor core_libs pvt_libs
run: cmake -S . -B build && cmake --build build --target volk_gnsssdr_module gtest-1.16.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
run: cd build && run-clang-tidy -fix
run: cd build && /opt/homebrew/opt/llvm/bin/run-clang-tidy -fix
- name: check
run: |
git diff > clang_tidy.patch
@ -149,11 +170,11 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install python3-pip && sudo pip3 install cpplint
run: sudo apt install python3-pip && sudo pip3 install cpplint
- name: run checks
run: "find ./src/ -iname *.h -o -iname *.cc | xargs cpplint
--filter=-,+build/class,+build/c++14,+build/deprecated,+build/explicit_make_pair,\
+build/include_what_you_use,+build/printf_format,+build/storage_class,\
run: "find ./src/ ./utils ./tests -iname *.h -o -iname *.cc | xargs cpplint
--filter=-,+build/class,+build/deprecated,+build/explicit_make_pair,\
+build/forward_decl,+build/printf_format,+build/storage_class,\
+readability/constructors,+readability/namespace,+readability/newline,\
+readability/utf8,+runtime/casting,+runtime/explicit,\
+runtime/indentation_namespace,+runtime/init,+runtime/invalid_increment,\
@ -163,7 +184,7 @@ jobs:
+whitespace/end-of-line,+whitespace/ending-newline,+whitespace/semicolon,\
+whitespace/tab --exclude=./src/core/interfaces/gnss_block_interface.h
--exclude=./src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/hwcaps_for_testing.*
--exclude=./src/utils/nav-listener/build/nav_message.pb.h"
--exclude=./utils/nav-listener/build/nav_message.pb.h"
prettier-markdown:
runs-on: ubuntu-latest
@ -180,7 +201,6 @@ jobs:
- uses: actions/checkout@v4
- name: install dependencies
run: |
sudo python -m pip install --upgrade pip
sudo pip install cmakelint
- name: check CMake scripts
run: find . -iname "CMakeLists.txt" -o -iname "*.cmake" | xargs cmakelint --filter=-linelength,-readability/wonkycase
@ -189,21 +209,21 @@ 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'
python-version: '3.13'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install mako
- name: configure
shell: powershell
run: cd build; cmake -G "Visual Studio 17 2022" ..\src\algorithms\libs\volk_gnsssdr_module\volk_gnsssdr
run: cmake -S src\algorithms\libs\volk_gnsssdr_module\volk_gnsssdr -B build -G "Visual Studio 17 2022"
- name: build
run: cmake --build build --config Release
- name: test
shell: powershell
run: cd build; ctest -C Release
run: ctest -C Release --test-dir build
- name: install
run: cmake --install build
- name: run profile
@ -216,11 +236,11 @@ jobs:
- name: install dependencies
run: sudo apt install python3-mako liborc-dev
- name: configure
run: cd build && cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
run: cmake -S src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr -B build
- name: build
run: cd build && make -j2
run: cmake --build build
- name: install
run: cd build && sudo make install && sudo ldconfig
run: sudo cmake --install build && sudo ldconfig
- name: test
run: volk_gnsssdr_profile
@ -228,29 +248,39 @@ 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.13'
- 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
run: cmake -S src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr -B build
- name: build
run: cd build && make -j2 && sudo make install
run: cmake --build build && sudo cmake --install build
- name: test
run: cd build && ctest -C Release --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc
run: ctest -C Release --test-dir build --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc
volk-gnsssdr-macos-xcode:
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.13'
- 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
run: cmake -S src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr -B build -GXcode
- name: build
run: cd build && xcodebuild -configuration Release
run: cmake --build build --config Release
- name: install
run: cd build && sudo xcodebuild -configuration Release -target install
run: sudo cmake --install build
- name: test
run: cd build && ctest -C Release --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc
run: ctest -C Release --test-dir build --exclude-regex --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc
shellcheck:
runs-on: ubuntu-latest
@ -259,7 +289,7 @@ jobs:
- name: install dependencies
run: sudo apt install shellcheck
- name: check scripts
run: shellcheck src/utils/scripts/*
run: shellcheck utils/scripts/*
REUSE-compliance:
runs-on: ubuntu-latest
@ -268,4 +298,4 @@ jobs:
- name: Check REUSE compliance
uses: docker://fsfe/reuse
with:
args: lint
args: lint

View File

@ -32,29 +32,32 @@ jobs:
- name: Update repositories
run: sudo apt update
- name: Install dependencies
run: sudo apt install -y cmake openjdk-11-jre-headless wget unzip make python3-mako
run: sudo apt install -y cmake python3-mako
# Setup Java
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
# 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
wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_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
run: $GITHUB_WORKSPACE/android-sdk-linux/cmdline-tools/bin/sdkmanager --sdk_root=$GITHUB_WORKSPACE/android-sdk-linux --install "ndk;27.2.12479018" --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
cd $GITHUB_WORKSPACE/ && mkdir -p build && cd build && \
cmake -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/android-sdk-linux/ndk/27.2.12479018/build/cmake/android.toolchain.cmake -DANDROID_ABI=${{ matrix.arch.name }} -DANDROID_PLATFORM=android-34 ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
# Build
- name: Build ${{ matrix.arch.name }}
shell: bash

View File

@ -1,21 +1,17 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2023 Carles Fernandez-Prades <carles.fernandez@cttc.es>
name: Run volk_gnsssdr tests
name: Run gnss-sdr in non-x86 archs
on:
push:
paths:
- "src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/**"
- "CMakeLists.txt"
pull_request:
paths:
- "src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/**"
- "CMakeLists.txt"
branches:
- "**-archs"
- main
workflow_dispatch:
jobs:
build-ubuntu-non-x86:
gnss-sdr-non-x86:
runs-on: ubuntu-latest
name: ${{ matrix.distro }} ${{ matrix.arch }} ${{ matrix.compiler.name }}
@ -33,22 +29,22 @@ jobs:
- arch: armv7
distro: ubuntu22.04
compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
- arch: ppc64le
distro: ubuntu22.04
compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
- arch: s390x
distro: ubuntu22.04
compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
- arch: riscv64
distro: ubuntu22.04
compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
# - arch: ppc64le
# distro: ubuntu22.04
# compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
# - arch: s390x
# distro: ubuntu22.04
# compiler: { name: g++-12, cc: gcc-12, cxx: g++-12 }
steps:
- uses: actions/checkout@v4
- 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
name: Test in non-x86 container
continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: test
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
@ -56,24 +52,28 @@ jobs:
setup: |
mkdir -p "${PWD}/testing"
dockerRunArgs: |
--volume "${PWD}:/volk_gnsssdr"
--volume "${PWD}:/gnss-sdr"
env: |
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
shell: /bin/sh
install: |
apt-get update -q -y
apt-get install -q -y git cmake python3-mako liborc-dev ${{ matrix.compiler.name }}
apt update
apt install -y ${{ matrix.compiler.name }} git ninja-build cmake \
libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev \
libboost-thread-dev libboost-chrono-dev libboost-serialization-dev \
liblog4cpp5-dev gnuradio-dev gr-osmosdr libpugixml-dev libpcap-dev libblas-dev \
liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \
libgnutls-openssl-dev libmatio-dev googletest protobuf-compiler libprotobuf-dev \
python3-mako liborc-0.4-dev
run: |
git config --global --add safe.directory /volk_gnsssdr
cd /volk_gnsssdr
git config --global --add safe.directory /gnss-sdr
cd /gnss-sdr
cd testing
cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/
mkdir install
cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/gnss-sdr/testing/install -DENABLE_INSTALL_TESTS=ON ..
echo "Build with $(nproc) thread(s)"
make -j$(nproc)
./apps/volk_gnsssdr-config-info --alignment
./apps/volk_gnsssdr-config-info --avail-machines
./apps/volk_gnsssdr-config-info --all-machines
./apps/volk_gnsssdr-config-info --malloc
./apps/volk_gnsssdr-config-info --cc
ctest -V
make install
cd install/bin
./position_test

38
.gitignore vendored
View File

@ -1,22 +1,30 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2011 Carles Fernandez-Prades <carles.fernandez(at)cttc.es>
# SPDX-FileCopyrightText: 2011-2024 Carles Fernandez-Prades <carles.fernandez(at)cttc.es>
*~
.*.swp
docs/doxygen/Doxyfile
docs/html
docs/latex
docs/GNSS-SDR_manual.pdf
src/tests/data/output.dat
thirdparty/
src/utils/nav-listener/build
.settings
.project
.cproject
.idea
cmake-build-debug/
/build/
/build*/
/cmake-build-debug/
/data/
/docs/doxygen/Doxyfile
/docs/html/
/docs/latex/
/docs/GNSS-SDR_manual.pdf
/gnss_sdr_pvt.nmea
/GSDR*
/HAS_*
/PVT_*
/Testing/
/tests/data/output.dat
/thirdparty/
/utils/nav-listener/build/
/utils/nav-listener/build*/
/install
.cproject
.DS_Store
.idea
.project
.pydevproject
.vscode/
.settings
.vs/
Testing/
.vscode/

71
AUTHORS
View File

@ -33,39 +33,44 @@ Contact Information
List of authors
--------------------------------------------------------------------------------
Carles Fernández-Prades carles.fernandez@cttc.cat Project manager
Javier Arribas javier.arribas@cttc.es Developer
Luis Esteve Elfau luis@epsilon-formacion.com Developer
Marc Majoral marc.majoral@cttc.cat Developer
Jordi Vilà-Valls jordi.vila-valls@isae-supaero.fr Consultant
Pau Closas pau.closas@northeastern.edu Consultant
Álvaro Cebrián Juan acebrianjuan@gmail.com Contributor
Andres Cecilia Luque a.cecilia.luque@gmail.com Contributor
Anthony Arnold anthony.arnold@uqconnect.edu.au Contributor
Antonio Ramos antonio.ramosdet@gmail.com Contributor
Carlos Avilés carlos.avilesr@googlemail.com Contributor
Cillian O'Driscoll cillian.odriscoll@gmail.com Contributor
Damian Miralles dmiralles2009@gmail.com Contributor
Daniel Fehr daniel.co@bluewin.ch Contributor
David Pubill david.pubill@cttc.cat Contributor
En Shin seanstone5923@gmail.com Contributor
Fran Fabra fabra@ice.csic.es Contributor
Gabriel Araujo gabriel.araujo.5000@gmail.com Contributor
Gerald LaMountain gerald@gece.neu.edu Contributor
Into Pääkkönen into.paakkonen@aalto.fi Contributor
Irene Pérez Riega iperrie@inta.es Contributor
Jim Melton jim.melton@sncorp.com Contributor
Josh Schindehette jschindehette@geontech.com Contributor
Leonardo Tonetto tonetto.dev@gmail.com Contributor
Malte Lenhart malte.lenhart@mailbox.org Contributor
Mara Branzanti mara.branzanti@gmail.com Contributor
Marc Molina marc.molina.pena@gmail.com Contributor
Marc Sales marcsales92@gmail.com Contributor
Piyush Gupta piyush04111999@gmail.com Contributor
Rodrigo Muñoz rodrigo.munoz@proteinlab.cl Contributor
Stefan van der Linden spvdlinden@gmail.com Contributor
Will Silberman wsilberm@google.com Contributor
Carlos Paniego carpanie@hotmail.com Artwork
Carles Fernández-Prades carles.fernandez@cttc.cat Project manager
Javier Arribas javier.arribas@cttc.es Developer
Luis Esteve Elfau luis@epsilon-formacion.com Developer
Marc Majoral marc.majoral@cttc.cat Developer
Xavier Guerrero xavier.guerrero@cttc.es Developer
Jordi Vilà-Valls jordi.vila-valls@isae-supaero.fr Consultant
Pau Closas pau.closas@northeastern.edu Consultant
Álvaro Cebrián Juan acebrianjuan@gmail.com Contributor
Andres Cecilia Luque a.cecilia.luque@gmail.com Contributor
Anthony Arnold anthony.arnold@uqconnect.edu.au Contributor
Antonio Ramos antonio.ramosdet@gmail.com Contributor
Carlos Avilés carlos.avilesr@googlemail.com Contributor
Cesare Ghionoiu Martinez c.ghionoiu-martinez@tu-braunschweig.de Contributor
Cillian O'Driscoll cillian.odriscoll@gmail.com Contributor
Damian Miralles dmiralles2009@gmail.com Contributor
Daniel Fehr daniel.co@bluewin.ch Contributor
David Pubill david.pubill@cttc.cat Contributor
En Shin seanstone5923@gmail.com Contributor
Fran Fabra fabra@ice.csic.es Contributor
Gabriel Araujo gabriel.araujo.5000@gmail.com Contributor
Gerald LaMountain gerald@gece.neu.edu Contributor
Into Pääkkönen into.paakkonen@aalto.fi Contributor
Irene Pérez Riega iperrie@inta.es Contributor
Jim Melton jim.melton@sncorp.com Contributor
Josh Schindehette jschindehette@geontech.com Contributor
Leonardo Tonetto tonetto.dev@gmail.com Contributor
Malte Lenhart malte.lenhart@mailbox.org Contributor
Mara Branzanti mara.branzanti@gmail.com Contributor
Marc Molina marc.molina.pena@gmail.com Contributor
Marc Sales marcsales92@gmail.com Contributor
Piyush Gupta piyush04111999@gmail.com Contributor
Rodrigo Muñoz rodrigo.munoz@proteinlab.cl Contributor
Stefan van der Linden spvdlinden@gmail.com Contributor
Víctor Castillo-Agüero victorcastilloaguero@gmail.com Contributor
Will Silberman wsilberm@google.com Contributor
Carlos Paniego carpanie@hotmail.com Artwork
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2011-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2024 C. Fernandez-Prades carles.fernandez(at)cttc.es
# SPDX-FileCopyrightText: 2024-2025 C. Fernandez-Prades carles.fernandez(at)cttc.es
---
authors:
- affiliation: "Centre Tecnològic de Telecomunicacions de Catalunya (CTTC)"
@ -20,6 +20,11 @@ authors:
family-names: Majoral
given-names: Marc
orcid: "https://orcid.org/0000-0001-6161-6747"
- affiliation: "Centre Tecnològic de Telecomunicacions de Catalunya (CTTC)"
alias: xguerreropau
email: xavier.guerrero@cttc.es
family-names: Guerrero
given-names: Xavier
- alias: Gastd
email: gabriel.araujo.5000@gmail.com
family-names: Araujo
@ -34,6 +39,11 @@ authors:
email: mara.branzanti@gmail.com
family-names: Branzanti
given-names: Mara
- alias: castle055
affiliation: "Instituto Nacional de Técnica Aeroespacial"
email: victorcastilloaguero@gmail.com
family-names: "Castillo-Agüero"
given-names: Víctor
- alias: acebrianjuan
email: acebrianjuan@gmail.com
family-names: "Cebrián-Juan"
@ -51,6 +61,11 @@ authors:
- email: daniel.co@bluewin.ch
family-names: Fehr
given-names: Daniel
- alias: cesaaargm
affiliation: "Technische Universität Braunschweig"
email: c.ghionoiu-martinez@tu-braunschweig.de
family-names: "Ghionoiu Martinez"
given-names: Cesare
- alias: piyush0411
email: piyush04111999@gmail.com
family-names: Gupta
@ -119,7 +134,7 @@ authors:
family-names: "van der Linden"
given-names: Stefan
cff-version: "1.2.0"
date-released: "2024-01-23"
date-released: "2025-04-01"
identifiers:
- description: "The concept DOI of the work. This is a DOI always pointing to the latest stable release."
type: doi
@ -327,4 +342,4 @@ repository-code: "https://github.com/gnss-sdr/gnss-sdr"
title: GNSS-SDR
type: software
url: "https://gnss-sdr.org"
version: "0.0.19"
version: "0.0.20"

File diff suppressed because it is too large Load Diff

393
README.md
View File

@ -4,7 +4,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
)
[comment]: # (
SPDX-FileCopyrightText: 2011-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>
SPDX-FileCopyrightText: 2011-2025 Carles Fernandez-Prades <carles.fernandez@cttc.es>
)
<!-- prettier-ignore-end -->
@ -59,60 +59,59 @@ information about this open-source, software-defined GNSS receiver.
<summary><b>(click to expand)</b></summary>
<!-- MarkdownTOC -->
1. [Table of Contents](#table-of-contents)
2. [How to build GNSS-SDR](#how-to-build-gnss-sdr)
1. [GNU/Linux](#gnulinux)
1. [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages)
1. [Debian / Ubuntu](#debian--ubuntu)
2. [AlmaLinux](#almalinux)
3. [Arch Linux](#arch-linux)
4. [CentOS](#centos)
5. [Fedora](#fedora)
6. [openSUSE](#opensuse)
7. [Rocky Linux](#rocky-linux)
2. [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs)
3. [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies)
1. [Install Armadillo, a C++ linear algebra library](#install-armadillo-a-c-linear-algebra-library)
2. [Install Gflags, a commandline flags processing module for C++](#install-gflags-a-commandline-flags-processing-module-for-c)
3. [Install Glog, a library that implements application-level logging](#install-glog-a-library-that-implements-application-level-logging)
4. [Install the GnuTLS or OpenSSL libraries](#install-the-gnutls-or-openssl-libraries)
5. [Install Matio, MATLAB MAT file I/O library](#install-matio-matlab-mat-file-io-library)
6. [Install Protocol Buffers, a portable mechanism for serialization of structured data](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data)
7. [Install Pugixml, a light-weight C++ XML processing library](#install-pugixml-a-light-weight-c-xml-processing-library)
8. [Download GoogleTest](#download-googletest)
4. [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository)
5. [Build and install GNSS-SDR](#build-and-install-gnss-sdr)
1. [Build OSMOSDR support (OPTIONAL)](#build-osmosdr-support-optional)
2. [Build FMCOMMS2 based SDR Hardware support (OPTIONAL)](#build-fmcomms2-based-sdr-hardware-support-optional)
3. [Build OpenCL support (OPTIONAL)](#build-opencl-support-optional)
4. [Build CUDA support (OPTIONAL)](#build-cuda-support-optional)
2. [macOS](#macos)
1. [Macports](#macports)
2. [Homebrew](#homebrew)
3. [Other package managers](#other-package-managers)
4. [Build GNSS-SDR](#build-gnss-sdr)
3. [Other builds](#other-builds)
3. [Updating GNSS-SDR](#updating-gnss-sdr)
4. [Getting started](#getting-started)
5. [Using GNSS-SDR](#using-gnss-sdr)
1. [Control plane](#control-plane)
1. [Configuration](#configuration)
2. [GNSS block factory](#gnss-block-factory)
2. [Signal Processing plane](#signal-processing-plane)
1. [Signal Source](#signal-source)
2. [Signal Conditioner](#signal-conditioner)
1. [Data type adapter](#data-type-adapter)
2. [Input filter](#input-filter)
3. [Resampler](#resampler)
3. [Channel](#channel)
1. [Acquisition](#acquisition)
2. [Tracking](#tracking)
3. [Decoding of the navigation message](#decoding-of-the-navigation-message)
4. [Observables](#observables)
5. [Computation of Position, Velocity, and Time](#computation-of-position-velocity-and-time)
6. [About the software license](#about-the-software-license)
7. [Publications and Credits](#publications-and-credits)
8. [Ok, now what?](#ok-now-what)
- [Table of Contents](#table-of-contents)
- [How to build GNSS-SDR](#how-to-build-gnss-sdr)
- [GNU/Linux](#gnulinux)
- [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages)
- [Debian / Ubuntu](#debian--ubuntu)
- [AlmaLinux](#almalinux)
- [Arch Linux](#arch-linux)
- [Fedora](#fedora)
- [openSUSE](#opensuse)
- [Rocky Linux](#rocky-linux)
- [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs)
- [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies)
- [Install Armadillo, a C++ linear algebra library](#install-armadillo-a-c-linear-algebra-library)
- [Install Gflags, a commandline flags processing module for C++](#install-gflags-a-commandline-flags-processing-module-for-c)
- [Install Glog, a library that implements application-level logging](#install-glog-a-library-that-implements-application-level-logging)
- [Install the OpenSSL libraries](#install-the-openssl-libraries)
- [Install Matio, MATLAB MAT file I/O library](#install-matio-matlab-mat-file-io-library)
- [Install Protocol Buffers, a portable mechanism for serialization of structured data](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data)
- [Install Pugixml, a light-weight C++ XML processing library](#install-pugixml-a-light-weight-c-xml-processing-library)
- [Download GoogleTest](#download-googletest)
- [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository)
- [Build and install GNSS-SDR](#build-and-install-gnss-sdr)
- [Build OSMOSDR support (OPTIONAL)](#build-osmosdr-support-optional)
- [Build FMCOMMS2 based SDR Hardware support (OPTIONAL)](#build-fmcomms2-based-sdr-hardware-support-optional)
- [Build OpenCL support (OPTIONAL)](#build-opencl-support-optional)
- [Build CUDA support (OPTIONAL)](#build-cuda-support-optional)
- [macOS](#macos)
- [Macports](#macports)
- [Homebrew](#homebrew)
- [Other package managers](#other-package-managers)
- [Build GNSS-SDR](#build-gnss-sdr)
- [Other builds](#other-builds)
- [Updating GNSS-SDR](#updating-gnss-sdr)
- [Getting started](#getting-started)
- [Using GNSS-SDR](#using-gnss-sdr)
- [Control plane](#control-plane)
- [Configuration](#configuration)
- [GNSS block factory](#gnss-block-factory)
- [Signal Processing plane](#signal-processing-plane)
- [Signal Source](#signal-source)
- [Signal Conditioner](#signal-conditioner)
- [Data type adapter](#data-type-adapter)
- [Input filter](#input-filter)
- [Resampler](#resampler)
- [Channel](#channel)
- [Acquisition](#acquisition)
- [Tracking](#tracking)
- [Decoding of the navigation message](#decoding-of-the-navigation-message)
- [Observables](#observables)
- [Computation of Position, Velocity, and Time](#computation-of-position-velocity-and-time)
- [About the software license](#about-the-software-license)
- [Publications and Credits](#publications-and-credits)
- [Ok, now what?](#ok-now-what)
<!-- /MarkdownTOC -->
</details>
@ -126,15 +125,17 @@ This section describes how to set up the compilation environment in GNU/Linux or
## GNU/Linux
- Tested distributions: Ubuntu 14.04 LTS and above; Debian 9.0 "stretch" and
above; Arch Linux; CentOS 7; Fedora 26 and above; OpenSUSE 42.3 and above.
above; Arch Linux; Fedora 26 and above; OpenSUSE 42.3 and above.
- Supported microprocessor architectures:
- i386: Intel x86 instruction set (32-bit microprocessors).
- amd64: also known as x86-64, the 64-bit version of the x86 instruction set,
originally created by AMD and implemented by AMD, Intel, VIA, and others.
- armel: ARM embedded ABI, supported on ARM v4t and higher.
- armhf: ARM hard float, ARMv7 + VFP3-D16 floating-point hardware extension +
Thumb-2 instruction set and above.
- arm64: ARM 64 bits or ARMv8.
- arm64: ARM 64 bits or ARMv8. Also known as AArch64.
- i386: Intel x86 instruction set (32-bit microprocessors).
- loong64: 64-bit version of LoongArch, a RISC-style instruction set
architecture developed by Loongson Technology.
- mips: MIPS architecture (big-endian, such as those manufactured by SGI).
- mipsel: MIPS architecture (little-endian, such as Loongson 3).
- mips64el: 64-bit version of MIPS architecture.
@ -164,20 +165,23 @@ If you are using Debian 9, Ubuntu 14.10 or above, this can be done by copying
and pasting the following line in a terminal:
```
$ sudo apt-get install build-essential cmake git pkg-config libboost-dev libboost-date-time-dev \
$ sudo apt install build-essential cmake git pkg-config libboost-dev libboost-date-time-dev \
libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev \
libboost-serialization-dev liblog4cpp5-dev libuhd-dev gnuradio-dev gr-osmosdr \
libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \
libgnutls-openssl-dev libpcap-dev libmatio-dev libpugixml-dev libgtest-dev \
libprotobuf-dev protobuf-compiler python3-mako
libssl-dev libpcap-dev libmatio-dev libpugixml-dev libgtest-dev \
libprotobuf-dev libcpu-features-dev protobuf-compiler python3-mako
```
Please note that the required files from `libgtest-dev` were named `googletest`
in Debian 9 "stretch" and Ubuntu 18.04 "bionic", and renamed to `libgtest-dev`
in Debian 10 "buster" and above.
Since Ubuntu 21.04 Hirsute / Debian 11, the package `libcpu-features-dev` is
also required.
In distributions older than Ubuntu 21.04 Hirsute / Debian 11, the package
`libcpu-features-dev` is not required.
In distributions older than Ubuntu 22.04 Jammy / Debian 12, the package
`libssl-dev` must be replaced by `libgnutls-openssl-dev`.
**Note for Ubuntu 14.04 LTS "trusty" users:** you will need to build from source
and install GNU Radio manually, as explained below, since GNSS-SDR requires
@ -222,28 +226,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
```
Once you have installed these packages, you can jump directly to
[download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository).
#### CentOS
If you are using CentOS 7, you can install the dependencies via Extra Packages
for Enterprise Linux ([EPEL](https://fedoraproject.org/wiki/EPEL)):
```
$ sudo yum install wget
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh epel-release-latest-7.noarch.rpm
$ sudo yum install make automake gcc gcc-c++ kernel-devel libtool \
hdf5-devel cmake git boost-devel boost-date-time boost-system \
boost-filesystem boost-thread boost-chrono boost-serialization \
log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel \
armadillo-devel openssl-devel libpcap-devel python-mako python-six pugixml-devel
$ 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
@ -278,7 +263,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:
@ -330,7 +315,7 @@ tutorial.
First of all, install some basic packages:
```
$ sudo apt-get install git python3-pip
$ sudo apt install git python3-pip
```
Download, build and install PyBOMBS:
@ -396,16 +381,16 @@ 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
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo apt install libblas-dev liblapack-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install lapack-devel blas-devel # For Fedora/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-14.4.1.tar.xz
$ tar xvfz armadillo-14.4.1.tar.xz
$ cd armadillo-14.4.1
$ cmake .
$ make
$ sudo make install
@ -430,12 +415,16 @@ $ 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
```
$ 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.1.tar.gz
$ tar xvfz v0.7.1.tar.gz
$ cd glog-0.7.1
$ mkdir build && cd build
$ cmake ..
$ make
@ -443,33 +432,32 @@ $ sudo make install
$ sudo ldconfig
```
#### Install the GnuTLS or OpenSSL libraries
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 OpenSSL libraries
```
$ sudo apt-get install libgnutls-openssl-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install openssl-devel # For Fedora/CentOS/RHEL
$ sudo zypper install openssl-devel # For OpenSUSE
$ sudo pacman -S openssl # For Arch Linux
$ sudo apt install libssl-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install openssl-devel # For Fedora/CentOS/RHEL
$ sudo zypper install openssl-devel # For OpenSUSE
$ sudo pacman -S openssl # For Arch Linux
```
In case the [GnuTLS](https://www.gnutls.org/ "GnuTLS's Homepage") library with
openssl extensions package is not available in your GNU/Linux distribution,
GNSS-SDR can also work well with
[OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage").
#### 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.28/matio-1.5.28.tar.gz
$ tar xvfz matio-1.5.28.tar.gz
$ cd matio-1.5.28
$ ./configure
$ make
$ 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
@ -489,9 +477,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.15/pugixml-1.15.tar.gz
$ tar xvfz pugixml-1.15.tar.gz
$ cd pugixml-1.15
$ mkdir build && cd build
$ cmake ..
$ make
@ -502,8 +490,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.16.0.zip
$ unzip v1.16.0.zip
```
Please **DO NOT build or install** Google Test. Every user needs to compile
@ -527,10 +515,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.16.0
```
changing `/home/username/googletest-1.13.0` by the actual path where you
changing `/home/username/googletest-1.16.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
@ -549,18 +537,16 @@ gnss-sdr with the following structure:
```
|-gnss-sdr
|---build <- where gnss-sdr is built.
|---cmake <- CMake-related files.
|---conf <- Configuration files. Each file defines one particular receiver.
|---data <- Populate this folder with your captured data.
|---docs <- Contains documentation-related files.
|---install <- Executables will be placed here.
|---src <- Source code folder.
|-----algorithms <- Signal processing blocks.
|-----core <- Control plane, interfaces, systems' parameters.
|-----main <- Main function of the C++ program.
|-----tests <- QA code.
|-----utils <- some utilities (e.g. Matlab scripts).
|---tests <- QA code.
|---utils <- some utilities (e.g. Matlab scripts).
```
By default, you will be in the 'main' branch of the Git repository, which
@ -581,14 +567,14 @@ readings can be found at our
Go to GNSS-SDR's build directory:
```
$ cd gnss-sdr/build
$ cd gnss-sdr
```
Configure and build the application:
```
$ cmake ..
$ make
$ cmake -S . -B build
$ cmake --build build
```
By default, CMake will build the Release version, meaning that the compiler will
@ -599,8 +585,8 @@ information about the internals of the receiver, as well as more fine-grained
logging. This can be done by building the Debug version, by doing:
```
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
$ cmake -S . -B build-debug -DCMAKE_BUILD_TYPE=Debug
$ cmake --build build-debug
```
This will create four executables at gnss-sdr/install, namely `gnss-sdr`,
@ -609,7 +595,7 @@ that folder, but if you prefer to install `gnss-sdr` on your system and have it
available anywhere else, do:
```
$ sudo make install
$ sudo cmake --install build
```
This will also make a copy of the conf/ folder into
@ -618,24 +604,24 @@ directory at your preferred location and store your own configuration and data
files there.
You could be interested in creating the documentation (requires:
`sudo apt-get install doxygen-latex` in Ubuntu/Debian) by doing:
`sudo apt install doxygen-latex` in Ubuntu/Debian) by doing:
```
$ make doc
$ cmake --build build --target doc
```
from the gnss-sdr/build folder. This will generate HTML documentation that can
be retrieved pointing your browser of preference to build/docs/html/index.html.
If a LaTeX installation is detected in your system,
This will generate HTML documentation that can be retrieved pointing your
browser of preference to `build/docs/html/index.html`. If a LaTeX installation
is detected in your system,
```
$ make pdfmanual
$ cmake --build build --target pdfmanual
```
will create a PDF manual at build/docs/GNSS-SDR_manual.pdf. Finally,
```
$ make doc-clean
$ cmake --build build --target doc-clean
```
will remove the content of previously generated documentation.
@ -653,30 +639,6 @@ the function to execute. It mimics GNU Radio's [VOLK](https://www.libvolk.org/)
library, so if you still have not run `volk_profile`, this is a good moment to
do so.
If you are using [Eclipse](https://www.eclipse.org/ide/) as your development
environment, CMake can create the project for you. However, if the build
directory is a subdirectory of the source directory (as is the case of the
`gnss-sdr/build` folder), this is not supported well by Eclipse. It is strongly
recommended to use a build directory which is a sibling of the source directory.
Hence, type from the `gnss-sdr` root folder:
```
$ cd ..
$ mkdir eclipse && cd eclipse
$ cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -DCMAKE_ECLIPSE_VERSION=4.5 ../gnss-sdr
```
and then import the created project into Eclipse:
1. Import project using Menu File -> Import.
2. Select General -> Existing projects into workspace.
3. Select your root directory: Browse and select your newly created `eclipse/`
directory. Keep "Copy projects into workspace" unchecked.
4. Click on "Finish" and you will get a fully functional Eclipse project.
After building the project, you will find the generated binaries at
`eclipse/install`.
#### Build OSMOSDR support (OPTIONAL)
Install the [OsmoSDR](https://osmocom.org/projects/sdr "OsmoSDR's Homepage")
@ -705,9 +667,9 @@ $ sudo ldconfig
Then, configure GNSS-SDR to build the `Osmosdr_Signal_Source` by:
```
$ cmake -DENABLE_OSMOSDR=ON ..
$ make
$ sudo make install
$ cmake -S . -B build -DENABLE_OSMOSDR=ON
$ cmake --build build
$ sudo cmake --install build
```
(in order to disable the `Osmosdr_Signal_Source` compilation, you can pass
@ -721,7 +683,7 @@ libraries and [gr-iio](https://github.com/analogdevicesinc/gr-iio.git) (>v0.3)
gnuradio block:
```
$ sudo apt-get install libxml2-dev bison flex
$ sudo apt install libxml2-dev bison flex
$ git clone https://github.com/analogdevicesinc/libiio.git
$ cd libiio
$ mkdir build
@ -748,18 +710,18 @@ $ cd ../..
Then configure GNSS-SDR to build the `Fmcomms2_Signal_Source` implementation:
```
$ cd gnss-sdr/build
$ cmake -DENABLE_FMCOMMS2=ON ..
$ make
$ sudo make install
$ cd gnss-sdr
$ cmake -S . -B build -DENABLE_FMCOMMS2=ON
$ cmake --build build
$ sudo cmake --install build
```
or configure it to build `Plutosdr_Signal_Source`:
```
$ cmake -DENABLE_PLUTOSDR=ON ..
$ make
$ sudo make install
$ cmake -S . -B build -DENABLE_PLUTOSDR=ON
$ cmake --build build
$ sudo cmake --install build
```
With `Fmcomms2_Signal_Source` you can use any SDR hardware based on
@ -774,9 +736,9 @@ devices.
In order to enable the building of blocks that use OpenCL, type:
```
$ cmake -DENABLE_OPENCL=ON ..
$ make
$ sudo make install
$ cmake -S . -B build -DENABLE_OPENCL=ON
$ cmake --build build
$ sudo cmake --install build
```
#### Build CUDA support (OPTIONAL)
@ -788,9 +750,9 @@ data-parallel computations, first you need to install the CUDA Toolkit from
Make sure that the SDK samples build well. Then, build GNSS-SDR by doing:
```
$ cmake -DENABLE_CUDA=ON ..
$ make
$ sudo make install
$ cmake -S . -B build -DENABLE_CUDA=ON
$ cmake --build build
$ sudo cmake --install build
```
Of course, you will also need a GPU that
@ -830,10 +792,10 @@ In a terminal, type:
```
$ sudo port selfupdate
$ sudo port upgrade outdated
$ sudo port install armadillo cmake pkgconfig protobuf3-cpp pugixml gnutls
$ sudo port install armadillo cmake pkgconfig protobuf3-cpp pugixml openssl3
$ sudo port install gnuradio +uhd +grc +zeromq
$ sudo port install boost matio libad9361-iio libiio google-glog +gflags
$ sudo port install py311-mako
$ sudo port install boost matio libad9361-iio libiio abseil
$ sudo port install py313-mako
$ sudo port install doxygen +docs
```
@ -853,7 +815,7 @@ $ port select --list python
and you can activate a certain version by typing:
```
$ sudo port select --set python python311
$ sudo port select --set python python313
```
### Homebrew
@ -867,22 +829,14 @@ $ /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
$ brew install armadillo cmake hdf5 gnuradio libmatio openssl pkg-config protobuf pugixml boost
$ 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:
@ -894,20 +848,20 @@ $ 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
configuration system by defining the `PYTHON_EXECUTABLE` variable as:
```
$ cmake -DPYTHON_EXECUTABLE=/path/to/bin/python3 ..
$ cmake -S . -B build -DPYTHON_EXECUTABLE=/path/to/bin/python3
```
In case you have installed Macports in a non-standard location, you can use:
```
$ cmake -DCMAKE_PREFIX_PATH=/opt/local -DUSE_MACPORTS_PYTHON=/opt/local/bin/python ..
$ cmake -S . -B build -DCMAKE_PREFIX_PATH=/opt/local -DUSE_MACPORTS_PYTHON=/opt/local/bin/python
```
changing `/opt/local` by the base directory in which your software is installed.
@ -923,17 +877,23 @@ software:
```
$ git clone https://github.com/gnss-sdr/gnss-sdr
$ cd gnss-sdr/build
$ cmake ..
$ make
$ cd gnss-sdr
$ cmake -S . -B build
$ cmake --build build
```
This will create three executables at gnss-sdr/install, namely `gnss-sdr`,
This will create three executables at `gnss-sdr/install`, namely `gnss-sdr`,
`run_tests` and `volk_gnsssdr_profile`. You can install the software receiver on
your system by doing:
```
$ sudo make install
$ sudo cmake --install build
```
and uninstall it with:
```
$ sudo cmake --build build --target uninstall
```
Note, it is advisable not to run the install step in a homebrew environment.
@ -941,7 +901,7 @@ Note, it is advisable not to run the install step in a homebrew environment.
The documentation can be built by:
```
$ make doc
$ cmake --build build --target doc
```
and can be viewed doing:
@ -984,7 +944,7 @@ do so.
</p>
- **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
@ -1016,7 +976,7 @@ $ git pull upstream next
```
Before rebuilding the source code, it is safe (and recommended) to remove the
remainders of old compilations:
remainders of old compilations, _e.g._:
```
$ rm -rf gnss-sdr/build/*
@ -1112,7 +1072,7 @@ You can use a single configuration file for processing different data files,
specifying the file to be processed with the `--signal_source` flag:
```
$ gnss-sdr --config_file=../conf/my_receiver.conf --signal_source=../data/my_captured_data.dat
$ gnss-sdr --config_file=../conf/my_receiver.conf --signal_source=./my_captured_data.dat
```
This will override the `SignalSource.filename` specified in the configuration
@ -1497,7 +1457,7 @@ SignalSource.port=1234
SignalSource.swap_iq=false
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
```
Example for a dual-frequency receiver:
@ -1591,7 +1551,7 @@ The block can be configured like this:
;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.dump=false ; #dump: Dump the filtered data to a file.
InputFilter.dump_filename=../data/input_filter.dat ; #dump_filename: Log path and filename.
InputFilter.dump_filename=./input_filter.dat ; #dump_filename: Log path and filename.
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
InputFilter.taps_item_type=float
@ -1644,7 +1604,7 @@ implements a nearest neighbourhood interpolation:
;#[Pass_Through] disables this block
Resampler.implementation=Direct_Resampler
Resampler.dump=false ; Dumps the resampled data to a file.
Resampler.dump_filename=../data/resampler.dat ; log path and filename.
Resampler.dump_filename=./resampler.dat ; log path and filename.
Resampler.item_type=gr_complex
Resampler.sample_freq_in=8000000 ; sample frequency of the input signal
Resampler.sample_freq_out=4000000 ; desired sample frequency of the output signal
@ -1872,7 +1832,7 @@ Tracking_1B.dll_filter_order=2 ; DLL loop filter order [1], [2] or [3]
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
```
More documentation at the
@ -1999,11 +1959,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),
@ -2016,8 +1976,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
@ -2052,9 +2013,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:

6
build/.gitignore vendored
View File

@ -1,6 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc.es>
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@ -7,6 +7,10 @@
# Avoid using the BLAS and LAPACK implementations that comes with the Accelerate
# framework, which causes a bug when the BeiDou constellation is enabled
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT BLAS_ROOT)
set(BLAS_ROOT_USER_DEFINED /usr/local/lib)
else()
@ -24,8 +28,8 @@ find_library(BLAS_LIBRARIES
PATHS
${BLAS_ROOT_USER_DEFINED}
${BLAS_ROOT_USER_DEFINED}/lapack
/opt/local/lib/lapack
/opt/local/lib/
${GNSSSDR_LIB_PATHS}/lapack
${GNSSSDR_LIB_PATHS}
/usr/local/opt/lapack/lib
/opt/homebrew/opt/lapack/lib
NO_DEFAULT_PATH
@ -46,7 +50,7 @@ find_library(LAPACK_LIBRARIES
PATHS
${BLAS_ROOT_USER_DEFINED}
${BLAS_ROOT_USER_DEFINED}/lapack
/opt/local/lib/lapack
${GNSSSDR_LIB_PATHS}/lapack
/usr/local/opt/lapack/lib
/opt/homebrew/opt/lapack/lib
NO_DEFAULT_PATH

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2023 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2023-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Downloads and builds the protoc compiler and static libraries of Protocol
@ -13,7 +13,7 @@
if(NOT GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION)
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "25.0")
set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "30.2")
endif()
if(NOT GNSSSDR_BINARY_DIR)
@ -55,6 +55,11 @@ list(APPEND UTF8_LIBRARIES
${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}utf8_range${CMAKE_STATIC_LIBRARY_SUFFIX}
)
set(ABSL_OPTION "")
if(CMAKE_VERSION VERSION_LESS "3.16" OR GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION VERSION_LESS "30.0")
set(ABSL_OPTION "-Dprotobuf_ABSL_PROVIDER=package")
endif()
ExternalProject_Add(protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
PREFIX ${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
GIT_REPOSITORY https://github.com/protocolbuffers/protobuf
@ -73,7 +78,7 @@ ExternalProject_Add(protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
-DCMAKE_VISIBILITY_INLINES_HIDDEN=1
-DCMAKE_INSTALL_PREFIX=${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}
-Dprotobuf_BUILD_TESTS=OFF
-Dprotobuf_ABSL_PROVIDER=package
${ABSL_OPTION}
${USE_ZLIB}
BUILD_COMMAND ${CMAKE_COMMAND}
"--build" "${GNSSSDR_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}"

View File

@ -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")

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
execute_process(COMMAND uname -v OUTPUT_VARIABLE DARWIN_VERSION)
@ -77,3 +77,24 @@ endif()
if(NOT MACOS_DISTRIBUTION)
set(MACOS_DISTRIBUTION "macOS (Unknown version)")
endif()
set(MACOS_PACKAGES_PREFIX "")
# Detect if MacPorts is installed on this system; if so, return base path and version
execute_process(COMMAND which port RESULT_VARIABLE DETECT_MACPORTS OUTPUT_VARIABLE MACPORTS_PREFIX ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${DETECT_MACPORTS} EQUAL 0)
# "/opt/local/bin/port", so we get the parent directory
get_filename_component(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY)
# "/opt/local/bin", so we get the parent directory
get_filename_component(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY)
execute_process(COMMAND port version RESULT_VARIABLE DETECT_MACPORTS_VERSION OUTPUT_VARIABLE MACPORTS_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACPORTS_VERSION "${MACPORTS_VERSION}")
set(MACOS_PACKAGES_PREFIX ${MACPORTS_PREFIX})
endif()
# Detect if Homebrew is installed on this system; if so, return base path and version
execute_process(COMMAND brew --prefix RESULT_VARIABLE DETECT_HOMEBREW OUTPUT_VARIABLE HOMEBREW_PREFIX ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${DETECT_HOMEBREW} EQUAL 0)
execute_process(COMMAND brew --version RESULT_VARIABLE DETECT_HOMEBREW_VERSION OUTPUT_VARIABLE HOMEBREW_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" HOMEBREW_VERSION "${HOMEBREW_VERSION}")
set(MACOS_PACKAGES_PREFIX ${HOMEBREW_PREFIX})
endif()

View File

@ -1,54 +1,24 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2021-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
set(FPHSA_NAME_MISMATCHED ON)
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
find_library(CPUFEATURES_LIBRARIES
NAMES cpu_features
PATHS /usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
PATHS ${GNSSSDR_LIB_PATHS}
)
find_path(CPUFEATURES_INCLUDE_DIR cpu_features_macros.h
PATHS $ENV{CPUFEATURES_DIR}/include
$ENV{CPUFEATURES_DIR}
/usr/include
/usr/local/include
~/Library/Frameworks
/Library/Frameworks
/sw/include # Fink
/opt/local/include # MacPorts
/opt/csw/include # Blastwave
${GNSSSDR_INCLUDE_PATHS}
PATH_SUFFIXES cpu_features
)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# - Try to find GFlags
@ -25,6 +25,10 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT GFLAGS_ROOT)
set(GFLAGS_ROOT_USER_PROVIDED /usr/local)
else()
@ -42,9 +46,8 @@ if(APPLE)
libgflags.dylib
PATHS
${GFLAGS_ROOT_USER_PROVIDED}/lib
/usr/local/lib
/opt/local/lib
/opt/homebrew/opt/gflags/lib
${GNSSSDR_LIB_PATHS}
${GNSSSDR_LIB_PATHS}/opt/gflags/lib
)
else()
find_path(GFlags_ROOT_DIR
@ -52,35 +55,7 @@ else()
PATHS
${GFLAGS_ROOT_USER_PROVIDED}/lib
${GFLAGS_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
endif()
@ -92,10 +67,8 @@ if(GFlags_ROOT_DIR)
PATHS
${GFlags_ROOT_DIR}/src
${GFLAGS_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
/opt/homebrew/opt/gflags/include
${GNSSSDR_INCLUDE_PATHS}
${GNSSSDR_INCLUDE_PATHS}/opt/gflags/include
)
# Find the libraries

View File

@ -1,13 +1,17 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT GFORTRAN_ROOT)
set(GFORTRAN_ROOT_USER_DEFINED /usr/lib)
else()
@ -20,13 +24,12 @@ if(DEFINED ENV{GFORTRAN_ROOT})
)
endif()
set(GCC_MAJOR_SERIES 14 13 12 11 10 9 8 7 6 5)
set(GCC_MAJOR_SERIES 15 14 13 12 11 10 9 8 7 6 5)
set(GCC4_SERIES 4.9.1 4.9 4.8.3 4.8.1 4.7.2 4.7 4.8.2 4.8 4.7 4.6 4.5 4.4.4 4.4)
set(GCC_SERIES ${GCC_MAJOR_SERIES} ${GCC4_SERIES})
find_library(GFORTRAN NAMES gfortran
PATHS ${GFORTRAN_ROOT_USER_DEFINED}
/usr/lib64
/usr/lib/gcc/x86_64-linux-gnu # Debian
/usr/lib/gcc/i386-linux-gnu
/usr/lib/gcc/i486-linux-gnu
@ -55,6 +58,7 @@ find_library(GFORTRAN NAMES gfortran
/usr/lib/gcc/sh4-linux-gnu
/usr/lib/gcc/i686-redhat-linux # Fedora
/usr/lib64/gcc/x86_64-redhat-linux
/usr/lib/gcc/x86_64-redhat-linux
/usr/lib/gcc/armv7hl-redhat-linux-gnueabi
/usr/lib/gcc/aarch64-redhat-linux
/usr/lib/gcc/ppc64le-redhat-linux
@ -64,34 +68,13 @@ find_library(GFORTRAN NAMES gfortran
/usr/lib/gcc/x86_64-suse-linux
/usr/lib/gcc/armv6hl-suse-linux-gnueabi
/usr/lib/gcc/armv7hl-suse-linux-gnueabi
/usr/lib/gcc/loongarch64-linux-gnu
/usr/lib64/gcc/aarch64-suse-linux
/usr/lib64/gcc/powerpc64-suse-linux
/usr/lib64/gcc/powerpc64le-suse-linux
/usr/lib64/gcc/riscv64-suse-linux
/usr/lib64/gcc/s390x-suse-linux
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/aarch64-linux-gnu
/usr/lib/i386-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/usr/local/lib/i386
${GNSSSDR_LIB_PATHS}
PATH_SUFFIXES
${GCC_SERIES}
)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# - Try to find the Google Glog library
@ -28,6 +28,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT DEFINED GLOG_ROOT)
set(GLOG_ROOT /usr /usr/local)
endif()
@ -45,36 +49,7 @@ macro(_FIND_GLOG_LIBRARIES _var)
NAMES ${ARGN}
HINTS ${PC_GLOG_LIBDIR}
PATHS ${LIB_PATHS}
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/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
${GNSSSDR_LIB_PATHS}
${GLOG_ROOT}/lib
$ENV{GLOG_ROOT}/lib
${GLOG_ROOT}/lib64
@ -99,7 +74,7 @@ if(MSVC)
${PC_GLOG_INCLUDEDIR}
PATHS
${GLOG_ROOT}/src/windows
${GLOG_ROOT}/src/windows/glog
PATH_SUFFIXES glog
)
else()
# Linux/OS X builds
@ -107,11 +82,10 @@ else()
HINTS
${PC_GLOG_INCLUDEDIR}
PATHS
/usr/include/glog
/usr/local/include/glog
/opt/local/include/glog # default location in Macports
/opt/homebrew/opt/glog/include/glog
${GLOG_ROOT}/include/glog
${GNSSSDR_INCLUDE_PATHS}
${GNSSSDR_INCLUDE_PATHS}/opt/glog/include
${GLOG_ROOT}/include
PATH_SUFFIXES glog
)
endif()
@ -183,4 +157,4 @@ 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()
endif()

View File

@ -0,0 +1,72 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2024-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
pkg_check_modules(PC_GMP "gmp")
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
set(GMP_DEFINITIONS ${PC_GMP_CFLAGS_OTHER})
find_path(GMP_INCLUDE_DIR
NAMES gmpxx.h
HINTS ${PC_GMP_INCLUDEDIR}
PATHS ${GNSSSDR_INCLUDE_PATHS}
)
set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
set(GMP_PC_ADD_CFLAGS "-I${GMP_INCLUDE_DIR}")
find_library(GMPXX_LIBRARY
NAMES gmpxx
HINTS ${PC_GMP_LIBDIR}
PATHS ${GNSSSDR_LIB_PATHS}
)
find_library(GMP_LIBRARY
NAMES gmp
HINTS ${PC_GMP_LIBDIR}
PATHS ${GNSSSDR_LIB_PATHS}
)
set(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GMP DEFAULT_MSG GMPXX_LIBRARY GMP_LIBRARY GMP_INCLUDE_DIR)
if(GMP_FOUND AND NOT TARGET Gmp::gmp)
add_library(Gmp::gmp SHARED IMPORTED)
set_target_properties(Gmp::gmp PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${GMPXX_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${GMP_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${GMP_LIBRARIES}"
)
endif()
set_package_properties(GMP PROPERTIES
URL "https://gmplib.org/"
)
if(PC_GMP_VERSION)
set_package_properties(GMP PROPERTIES
DESCRIPTION "The GNU Multiple Precision Arithmetic Library (found: v.${PC_GMP_VERSION})"
)
else()
set_package_properties(GMP PROPERTIES
DESCRIPTION "The GNU Multiple Precision Arithmetic Library"
)
endif()
mark_as_advanced(GMPXX_LIBRARY GMP_LIBRARY GMP_INCLUDE_DIR)

View File

@ -1,9 +1,13 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(GNSSSIMULATOR_ROOT)
set(GNSSSIMULATOR_ROOT_USER_DEFINED ${GNSSSIMULATOR_ROOT})
else()
@ -25,7 +29,8 @@ find_program(SW_GENERATOR_BIN gnss_sim
${GNSSSIMULATOR_ROOT_USER_DEFINED}
/usr
/usr/local
/opt/local
${CMAKE_SYSTEM_PREFIX_PATH}
${CMAKE_INSTALL_FULL_BINDIR}
PATH_SUFFIXES bin
ONLY_CMAKE_FIND_ROOT_PATH
)

View File

@ -1,7 +1,7 @@
# 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-FileCopyrightText: 2022-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# - Find gnsstk library
@ -19,6 +19,10 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT GNSSTK_ROOT)
set(GNSSTK_ROOT_USER_DEFINED /usr/local)
else()
@ -35,17 +39,13 @@ unset(GNSSTK_INCLUDE_DIR CACHE)
unset(GNSSTK_USES_GPSTK_NAMESPACE CACHE)
find_path(GNSSTK_INCLUDE_DIR gnsstk/Rinex3ObsBase.hpp
PATHS ${GNSSTK_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
set(GNSSTK_NAMES ${CMAKE_FIND_LIBRARY_PREFIXES}gnsstk${CMAKE_SHARED_LIBRARY_SUFFIX})
if(NOT GNSSTK_INCLUDE_DIR)
find_path(GNSSTK_INCLUDE_DIR gpstk/Rinex3ObsBase.hpp
PATHS ${GNSSTK_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
if(GNSSTK_INCLUDE_DIR)
set(GNSSTK_NAMES gpstk ${CMAKE_FIND_LIBRARY_PREFIXES}gpstk${CMAKE_SHARED_LIBRARY_SUFFIX})
@ -56,12 +56,8 @@ endif()
include(GNUInstallDirs)
find_library(GNSSTK_LIBRARY NAMES ${GNSSTK_NAMES}
PATHS ${GNSSTK_ROOT_USER_DEFINED}/lib
${GNSSTK_ROOT_USER_DEFINED}/${CMAKE_INSTALL_LIBDIR}
/usr/local/lib
/usr/${CMAKE_INSTALL_LIBDIR}
/usr/local/${CMAKE_INSTALL_LIBDIR}
/opt/local/lib
PATHS ${GNSSTK_ROOT_USER_DEFINED}/${CMAKE_INSTALL_LIBDIR}
${GNSSSDR_LIB_PATHS}
)
if(GNSSTK_LIBRARY AND GNSSTK_INCLUDE_DIR)

View File

@ -1,18 +1,19 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2021-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
find_program(GNUPLOT_EXECUTABLE
NAMES
gnuplot
pgnuplot
PATHS
/usr/bin
/usr/local/bin
/opt/local/bin
${GNSSSDR_BIN_PATHS}
ONLY_CMAKE_FIND_ROOT_PATH
)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2022 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
########################################################################
@ -16,6 +16,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
include(FindPackageHandleStandardArgs)
# if GR_REQUIRED_COMPONENTS is not defined, it will be set to the following list
@ -93,9 +97,7 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
NAMES ${INCFILE}
HINTS ${PC_INCDIR}
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
# look for libs
@ -103,37 +105,8 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
find_library(${LIBVAR_NAME}_${libname}
NAMES ${libname} ${libname}-${PC_GNURADIO_RUNTIME_VERSION}
HINTS ${PC_LIBDIR}
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/lib
${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/${CMAKE_INSTALL_LIBDIR}
${GNSSSDR_LIB_PATHS}
)
list(APPEND ${LIBVAR_NAME} ${${LIBVAR_NAME}_${libname}})
endforeach()
@ -221,9 +194,7 @@ if(NOT PC_GNURADIO_RUNTIME_VERSION)
find_file(GNURADIO_VERSION_GREATER_THAN_373
NAMES gnuradio/blocks/tsb_vector_sink_f.h
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
if(GNURADIO_VERSION_GREATER_THAN_373)
set(PC_GNURADIO_RUNTIME_VERSION "3.7.4+")
@ -232,9 +203,7 @@ if(NOT PC_GNURADIO_RUNTIME_VERSION)
find_file(GNURADIO_VERSION_GREATER_THAN_38
NAMES gnuradio/filter/mmse_resampler_cc.h
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
if(GNURADIO_VERSION_GREATER_THAN_38)
set(PC_GNURADIO_RUNTIME_VERSION "3.8.0+")
@ -302,9 +271,7 @@ if(GNURADIO_VERSION VERSION_GREATER 3.8.99)
NAMES gnuradio/iio/api.h
HINTS ${PC_GNURADIO_IIO_INCLUDEDIR}
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
# look for libs
@ -313,35 +280,7 @@ if(GNURADIO_VERSION VERSION_GREATER 3.8.99)
HINTS ${PC_GNURADIO_IIO_LIBDIR}
PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/lib
${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
if(GNURADIO_IIO_LIBRARIES)
@ -418,8 +357,10 @@ if(GNURADIO_RUNTIME_INCLUDE_DIRS)
)
if(CMAKE_VERSION VERSION_GREATER 3.13)
target_link_libraries(Gnuradio::filter INTERFACE Log4cpp::log4cpp)
target_link_libraries(Gnuradio::runtime INTERFACE Log4cpp::log4cpp)
else()
set_target_properties(Gnuradio::filter PROPERTIES INTERFACE_LINK_LIBRARIES Log4cpp::log4cpp)
set_target_properties(Gnuradio::runtime PROPERTIES INTERFACE_LINK_LIBRARIES Log4cpp::log4cpp)
endif()
endif()
if(${_uses_spdlog})

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
@ -23,6 +23,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_GTEST gtest)
if(NOT GTEST_DIR)
@ -44,10 +48,11 @@ find_path(LIBGTEST_DEV_DIR
${GTEST_DIR_USER_PROVIDED}/googletest
/usr/src/googletest/googletest
/usr/src/gtest
/usr/include/gtest
/usr/local/src/googletest/googletest
/opt/local/src/gtest-1.7.0
/opt/homebrew/opt/googletest/include/googletest/googletest
${GNSSSDR_INCLUDE_PATHS}/gtest
${GNSSSDR_INCLUDE_PATHS}/googletest
${CMAKE_SYSTEM_PREFIX_PATH}/src/googletest/googletest
${CMAKE_SYSTEM_PREFIX_PATH}/src/gtest-1.7.0
${CMAKE_SYSTEM_PREFIX_PATH}/opt/googletest/include/googletest/googletest
)
find_path(GTEST_INCLUDE_DIRS
@ -55,10 +60,9 @@ find_path(GTEST_INCLUDE_DIRS
HINTS ${PC_GTEST_INCLUDEDIR}
PATHS
${GTEST_DIR_USER_PROVIDED}/googletest/include
/usr/include
/usr/local/include
/opt/local/src/gtest-1.7.0/include
/opt/homebrew/opt/googletest/include
${GNSSSDR_INCLUDE_PATHS}
${CMAKE_SYSTEM_PREFIX_PATH}/src/gtest-1.7.0/include
${CMAKE_SYSTEM_PREFIX_PATH}/opt/googletest/include
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Tries to find Gperftools.
@ -33,6 +33,10 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT GPERFTOOLS_ROOT)
set(GPERFTOOLS_ROOT_USER_DEFINED /usr/local)
else()
@ -56,41 +60,27 @@ find_library(GPERFTOOLS_TCMALLOC
NAMES tcmalloc
PATHS ${GPERFTOOLS_ROOT_USER_DEFINED}/lib
${GPERFTOOLS_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
find_library(GPERFTOOLS_PROFILER
NAMES profiler
PATHS ${GPERFTOOLS_ROOT_USER_DEFINED}/lib
${GPERFTOOLS_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
find_library(GPERFTOOLS_TCMALLOC_AND_PROFILER
NAMES tcmalloc_and_profiler
PATHS ${GPERFTOOLS_ROOT_USER_DEFINED}/lib
${GPERFTOOLS_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
find_path(GPERFTOOLS_INCLUDE_DIR
NAMES gperftools/heap-profiler.h
PATHS /usr/include
/usr/local/include
/opt/local/include
${GPERFTOOLS_ROOT_USER_DEFINED}/include
PATHS ${GPERFTOOLS_ROOT_USER_DEFINED}/include
${GNSSSDR_INCLUDE_PATHS}
)
set(GPERFTOOLS_LIBRARIES ${GPERFTOOLS_TCMALLOC_AND_PROFILER})

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
########################################################################
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_GR_DBFCTTC gr-dbfcttc)
if(NOT GRDBFCTTC_ROOT)
@ -46,9 +50,7 @@ find_path(
NAMES dbfcttc/api.h
HINTS ${PC_GR_DBFCTTC_INCLUDEDIR}
PATHS ${GRDBFCTTC_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(
@ -57,11 +59,7 @@ find_library(
HINTS ${PC_GR_DBFCTTC_LIBDIR}
PATHS ${GRDBFCTTC_ROOT_USER_DEFINED}/lib
${GRDBFCTTC_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_IIO gnuradio-iio)
if(NOT GRIIO_ROOT)
@ -24,31 +28,31 @@ if(NOT GRIIO_ROOT)
else()
set(GRIIO_ROOT_USER_DEFINED ${GRIIO_ROOT})
endif()
if(DEFINED ENV{GRIIO_ROOT})
set(GRIIO_ROOT_USER_DEFINED
${GRIIO_ROOT_USER_DEFINED}
$ENV{GRIIO_ROOT}
)
endif()
if(DEFINED ENV{IIO_DIR})
set(GRIIO_ROOT_USER_DEFINED
${GRIIO_ROOT_USER_DEFINED}
$ENV{IIO_DIR}
)
endif()
set(GRIIO_ROOT_USER_DEFINED
${GRIIO_ROOT_USER_DEFINED}
${CMAKE_INSTALL_PREFIX}
)
find_path(IIO_INCLUDE_DIRS
NAMES gnuradio/iio/api.h
HINTS ${PC_IIO_INCLUDEDIR}
PATHS ${GRIIO_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
if(IIO_INCLUDE_DIRS)
@ -58,9 +62,7 @@ else()
NAMES iio/api.h
HINTS ${PC_IIO_INCLUDEDIR}
PATHS ${GRIIO_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
set(GR_IIO_INCLUDE_HAS_GNURADIO FALSE)
endif()
@ -70,35 +72,7 @@ find_library(IIO_LIBRARIES
HINTS ${PC_IIO_LIBDIR}
PATHS ${GRIIO_ROOT_USER_DEFINED}/lib
${GRIIO_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i686-gnu
/usr/lib/i686-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i686-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Tries to find gr-limesdr.
@ -35,6 +35,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(GRLIMESDR_PKG QUIET gnuradio-limesdr)
if(NOT GRLIMESDR_ROOT)
@ -57,9 +61,7 @@ find_path(GRLIMESDR_INCLUDE_DIR
${GRLIMESDR_PKG_INCLUDEDIR}
PATHS
${GRLIMESDR_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(GRLIMESDR_LIBRARIES
@ -70,35 +72,7 @@ find_library(GRLIMESDR_LIBRARIES
PATHS
${GRLIMESDR_ROOT_USER_DEFINED}/lib
${GRLIMESDR_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Tries to find gr-osmosdr.
@ -35,6 +35,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(GROSMOSDR_PKG gnuradio-osmosdr)
if(NOT GROSMOSDR_ROOT)
@ -57,9 +61,7 @@ find_path(GROSMOSDR_INCLUDE_DIR
${GROSMOSDR_PKG_INCLUDEDIR}
PATHS
${GROSMOSDR_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(GROSMOSDR_LIBRARIES
@ -70,35 +72,7 @@ find_library(GROSMOSDR_LIBRARIES
PATHS
${GROSMOSDR_ROOT_USER_DEFINED}/lib
${GROSMOSDR_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_LIBAD9361 libad9361)
if(NOT LIBAD9361_ROOT)
@ -39,9 +43,7 @@ find_path(LIBAD9361_INCLUDE_DIRS
NAMES ad9361.h
HINTS ${PC_LIBAD9361_INCLUDEDIR}
PATHS ${LIBAD9361_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(LIBAD9361_LIBRARIES
@ -49,35 +51,7 @@ find_library(LIBAD9361_LIBRARIES
HINTS ${PC_LIBAD9361_LIBDIR}
PATHS ${LIBAD9361_ROOT_USER_DEFINED}/lib
${LIBAD9361_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i686-gnu
/usr/lib/i686-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i686-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
/Library/Frameworks/ad9361.framework
)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_LIBIIO libiio)
if(NOT LIBIIO_ROOT)
@ -40,9 +44,7 @@ find_path(
NAMES iio.h
HINTS ${PC_LIBIIO_INCLUDEDIR}
PATHS ${LIBIIO_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(
@ -51,35 +53,7 @@ find_library(
HINTS ${PC_LIBIIO_LIBDIR}
PATHS ${LIBIIO_ROOT_USER_DEFINED}/lib
${LIBIIO_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i686-gnu
/usr/lib/i686-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i686-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
/Library/Frameworks/iio.framework/
)

View File

@ -1,7 +1,7 @@
# 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-FileCopyrightText: 2022-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Find the libunwind library
@ -17,30 +17,27 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
find_path(LIBUNWIND_INCLUDE_DIR
NAMES
libunwind.h
unwind.h
HINTS
/usr
/usr/local
/opt/local
PATH_SUFFIXES include
PATHS "${LIBUNWIND_ROOT}/include"
${GNSSSDR_INCLUDE_PATHS}
)
find_library(LIBUNWIND_GENERIC_LIBRARY
NAMES
libunwind
unwind
HINTS
/usr
/usr/local
/opt/local
PATH_SUFFIXES lib lib64
PATHS
"${LIBUNWIND_ROOT}/lib"
"${LIBUNWIND_ROOT}/lib64"
${GNSSSDR_LIB_PATHS}
)
if(LIBUNWIND_INCLUDE_DIR)
@ -70,12 +67,8 @@ if(LIBUNWIND_INCLUDE_DIR)
NAMES
libunwind-${LIBUNWIND_ARCH}
"unwind-${LIBUNWIND_ARCH}"
HINTS
/usr
/usr/local
/opt/local
PATH_SUFFIXES lib lib64
PATHS "${LIBUNWIND_ROOT}"
${GNSSSDR_LIB_PATHS}
)
if(NOT LIBUNWIND_SPECIFIC_LIBRARY)
message(STATUS " -- Failed to find unwind-${LIBUNWIND_ARCH}")

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# - Find Log4cpp
@ -23,6 +23,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_LOG4CPP log4cpp QUIET)
if(LOG4CPP_INCLUDE_DIR)
@ -48,9 +52,7 @@ set(LOG4CPP_ROOT_USER_PROVIDED
find_path(LOG4CPP_INCLUDE_DIR log4cpp/Category.hh
${LOG4CPP_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
${PC_LOG4CPP_INCLUDEDIR}
)
@ -73,36 +75,8 @@ find_library(LOG4CPP_LIBRARY
NAMES ${LOG4CPP_NAMES}
HINTS ${PC_LOG4CPP_LIBDIR}
PATHS ${LOG4CPP_ROOT_USER_PROVIDED}/lib
${LOG4CPP_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${LOG4CPP_ROOT_USER_PROVIDED}/lib64
${GNSSSDR_LIB_PATHS}
)
if(LOG4CPP_INCLUDE_DIR AND LOG4CPP_LIBRARY)
@ -121,7 +95,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)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# FindMATIO
@ -55,6 +55,10 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
if(NOT MATIO_ROOT)
set(MATIO_ROOT_USER_DEFINED /usr)
else()
@ -72,9 +76,7 @@ find_path(MATIO_INCLUDE_DIR
NAMES matio.h
PATHS
${MATIO_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include
DOC "The MATIO include directory"
)
@ -85,32 +87,7 @@ find_library(MATIO_LIBRARY
PATHS
${MATIO_ROOT_USER_DEFINED}/lib
${MATIO_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/lib/alpha-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib
DOC "The MATIO library"
)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(DEFINED __INCLUDED_GNSSSDR_CMAKE_FIND_ORC)
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22")
if(NOT ORC_ROOT)
@ -43,18 +47,14 @@ endif()
find_program(ORCC_EXECUTABLE orcc
HINTS ${ORC_ROOT_USER_PROVIDED}/bin
PATHS /usr/bin
/usr/local/bin
/opt/local/bin
PATHS ${CMAKE_SYSTEM_PREFIX_PATH}/bin
)
find_path(ORC_INCLUDE_DIR
NAMES orc/orc.h
HINTS ${PC_ORC_INCLUDEDIR}
PATHS ${ORC_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
PATH_SUFFIXES orc-0.4
)
@ -63,80 +63,23 @@ find_path(ORC_LIBRARY_DIR
HINTS ${PC_ORC_LIBDIR}
PATHS ${ORC_ROOT_USER_PROVIDED}/lib
${ORC_ROOT_USER_PROVIDED}/lib64
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
find_library(ORC_LIB orc-0.4
HINTS ${PC_ORC_LIBRARY_DIRS}
PATHS ${ORC_ROOT_USER_PROVIDED}/lib
${ORC_ROOT_USER_PROVIDED}/lib64
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
find_library(ORC_LIBRARY_STATIC ${CMAKE_STATIC_LIBRARY_PREFIX}orc-0.4${CMAKE_STATIC_LIBRARY_SUFFIX}
HINTS ${PC_ORC_LIBRARY_DIRS}
PATHS ${ORC_ROOT}/lib
${ORC_ROOT}/lib64
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
${ORC_ROOT_USER_PROVIDED}/lib
${ORC_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
if(PC_ORC_VERSION)

View File

@ -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.
@ -27,6 +27,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_PCAP libpcap QUIET)
if(NOT PCAP_ROOT)
@ -77,9 +81,7 @@ else()
${PC_PCAP_INCLUDEDIR}
PATHS
${PCAP_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(PCAP_LIBRARY
NAMES
@ -88,32 +90,7 @@ else()
${PC_PCAP_LIBDIR}
PATHS
${PCAP_ROOT_USER_PROVIDED}/lib
/usr/lib
/usr/lib64
/usr/lib/alpha-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
endif()

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
# Find the pugixml XML parsing library.
@ -24,6 +24,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_PUGIXML pugixml QUIET)
if(NOT PUGIXML_ROOT)
@ -50,11 +54,9 @@ find_path(PUGIXML_INCLUDE_DIR
PATHS ${PUGIXML_ROOT_USER_DEFINED}/include
${PUGIXML_ROOT_USER_DEFINED}/include/pugixml-${PC_PUGIXML_VERSION}
${PUGIXML_ROOT_USER_DEFINED}/include/pugixml-1.9
/usr/include
/usr/local/include
/usr/local/include/pugixml-${PC_PUGIXML_VERSION}
/usr/local/include/pugixml-1.9
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
${GNSSSDR_INCLUDE_PATHS}/pugixml-${PC_PUGIXML_VERSION}
${GNSSSDR_INCLUDE_PATHS}/pugixml-1.9
)
find_library(PUGIXML_LIBRARY
@ -66,35 +68,9 @@ find_library(PUGIXML_LIBRARY
${PUGIXML_ROOT_USER_DEFINED}/lib64/pugixml-${PC_PUGIXML_VERSION}
${PUGIXML_ROOT_USER_DEFINED}}/lib/pugixml-1.9
${PUGIXML_ROOT_USER_DEFINED}/lib64/pugixml-1.9
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/i386-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib
/usr/local/lib64
/usr/local/lib/pugixml-${PC_PUGIXML_VERSION}
/usr/local/lib/pugixml-1.9
/opt/local/lib
${GNSSSDR_LIB_PATHS}
${GNSSSDR_LIB_PATHS}/pugixml-${PC_PUGIXML_VERSION}
${GNSSSDR_LIB_PATHS}/pugixml-1.9
)
# Support the REQUIRED and QUIET arguments, and set PUGIXML_FOUND if found.

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -17,6 +17,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_TELEORBIT teleorbit QUIET)
if(NOT TELEORBIT_ROOT)
@ -38,10 +42,9 @@ 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
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(TELEORBIT_LIBRARIES
@ -49,11 +52,7 @@ find_library(TELEORBIT_LIBRARIES
HINTS ${PC_TELEORBIT_LIBDIR}
PATHS ${TELEORBIT_ROOT_USER_DEFINED}/lib
${TELEORBIT_ROOT_USER_DEFINED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -20,6 +20,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_UHD uhd)
if(NOT UHD_ROOT)
@ -50,9 +54,7 @@ find_path(UHD_INCLUDE_DIRS
NAMES uhd/config.hpp
HINTS ${PC_UHD_INCLUDEDIR}
PATHS ${UHD_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(UHD_LIBRARIES
@ -60,35 +62,7 @@ find_library(UHD_LIBRARIES
HINTS ${PC_UHD_LIBDIR}
PATHS ${UHD_ROOT_USER_PROVIDED}/lib
${UHD_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -20,6 +20,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_VOLK volk QUIET)
if(NOT VOLK_ROOT)
@ -48,9 +52,7 @@ find_path(VOLK_INCLUDE_DIRS
NAMES volk/volk.h
HINTS ${PC_VOLK_INCLUDEDIR}
PATHS ${VOLK_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(VOLK_LIBRARIES
@ -58,34 +60,7 @@ find_library(VOLK_LIBRARIES
HINTS ${PC_VOLK_LIBDIR}
PATHS ${VOLK_ROOT_USER_PROVIDED}/lib
${VOLK_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabi
/usr/lib/aarch64-linux-gnu
/usr/lib/mipsel-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/i386-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -21,6 +21,10 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
pkg_check_modules(PC_VOLK_GNSSSDR QUIET volk_gnsssdr)
if(NOT VOLKGNSSSDR_ROOT)
@ -51,9 +55,7 @@ find_path(VOLK_GNSSSDR_INCLUDE_DIRS
NAMES volk_gnsssdr/volk_gnsssdr.h
HINTS ${PC_VOLK_GNSSSDR_INCLUDEDIR}
PATHS ${VOLKGNSSSDR_ROOT_USER_PROVIDED}/include
/usr/include
/usr/local/include
/opt/local/include
${GNSSSDR_INCLUDE_PATHS}
)
find_library(VOLK_GNSSSDR_LIBRARIES
@ -61,11 +63,7 @@ find_library(VOLK_GNSSSDR_LIBRARIES
HINTS ${PC_VOLK_GNSSSDR_LIBDIR}
PATHS ${VOLKGNSSSDR_ROOT_USER_PROVIDED}/lib
${VOLKGNSSSDR_ROOT_USER_PROVIDED}/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/local/lib
${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -1,7 +1,7 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2023 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-FileCopyrightText: 2024-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
#
@ -17,44 +17,23 @@ if(NOT PKG_CONFIG_FOUND)
include(FindPkgConfig)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
find_package(PkgConfig)
pkg_check_modules(PC_ZEROMQ "libzmq")
find_path(ZEROMQ_INCLUDE_DIRS
NAMES zmq.hpp
HINTS ${PC_ZEROMQ_INCLUDE_DIR} ${CMAKE_INSTALL_PREFIX}/include
PATHS /usr/local/include /usr/include /opt/local/include
HINTS ${PC_ZEROMQ_INCLUDE_DIR}
PATHS ${GNSSSDR_INCLUDE_PATHS}
)
find_library(ZEROMQ_LIBRARIES
NAMES zmq libzmq.so.5 ${ZEROMQ_LIBRARY_NAME}
HINTS ${PC_ZEROMQ_LIBDIR} ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/lib64
PATHS /usr/lib
/usr/lib64
/usr/lib/alpha-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/aarch64-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/i386-linux-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
HINTS ${PC_ZEROMQ_LIBDIR}
PATHS ${GNSSSDR_LIB_PATHS}
)
include(FindPackageHandleStandardArgs)

View File

@ -0,0 +1,188 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2024-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
if(NOT GNSSSDR_LIB_PATHS)
include(GnsssdrFindPaths)
endif()
################################################################################
# OpenSSL https://www.openssl.org/
################################################################################
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(OPENSSL_ROOT_DIR /usr/local/opt/openssl) # Trick for Homebrew
endif()
unset(OPENSSL_FOUND CACHE)
unset(GnuTLS_FOUND CACHE)
unset(GMP_FOUND CACHE)
if(NOT ENABLE_GNUTLS)
find_package(OpenSSL)
endif()
set_package_properties(OpenSSL
PROPERTIES
URL "https://www.openssl.org"
PURPOSE "Used for the OSNMA and SUPL protocol implementations."
TYPE REQUIRED
)
if(OPENSSL_FOUND)
set_package_properties(OpenSSL
PROPERTIES
DESCRIPTION "Cryptography and SSL/TLS Toolkit (found: v${OPENSSL_VERSION})"
)
else()
set_package_properties(OpenSSL
PROPERTIES
DESCRIPTION "OpenSSL has not been found, but GnuTLS with openssl compatibility can replace it"
)
################################################################################
# GnuTLS - https://www.gnutls.org/
################################################################################
find_package(GnuTLS)
set_package_properties(GnuTLS PROPERTIES
URL "https://www.gnutls.org/"
PURPOSE "Used for the OSNMA and SUPL protocol implementations."
TYPE REQUIRED
)
if(GnuTLS_FOUND AND GNUTLS_VERSION_STRING)
set_package_properties(GnuTLS PROPERTIES
DESCRIPTION "Transport Layer Security Library (found: v${GNUTLS_VERSION_STRING})"
)
else()
set_package_properties(GnuTLS PROPERTIES
DESCRIPTION "Transport Layer Security Library"
)
endif()
find_library(GNUTLS_OPENSSL_LIBRARY
NAMES gnutls-openssl libgnutls-openssl.so.27
PATHS ${GNSSSDR_LIB_PATHS}
)
find_path(GNUTLS_INCLUDE_DIR NAMES gnutls/gnutls.h
PATHS
${GNSSSDR_INCLUDE_PATHS}
${GNUTLS_ROOT_DIR}/include/
)
if(NOT GNUTLS_OPENSSL_LIBRARY)
message(" The GnuTLS library with openssl compatibility enabled has not been found.")
message(" You can try to install the required libraries by typing:")
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU")
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
message(" sudo yum install openssl-devel")
else()
message(" sudo apt install libgnutls28-dev")
endif()
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
message(" 'sudo port install openssl3', if you are using Macports, or")
message(" 'brew install openssl', if you are using Homebrew.")
endif()
message(FATAL_ERROR "OpenSSL or the GnuTLS libraries with openssl compatibility are required to build gnss-sdr")
endif()
# Test GnuTLS capabilities
file(READ "${GNUTLS_INCLUDE_DIR}/gnutls/gnutls.h" gnutls_gnutls_file_contents)
if("${gnutls_gnutls_file_contents}" MATCHES "GNUTLS_SIGN_ECDSA_SHA256")
set(GNUTLS_SIGN_ECDSA_SHA256 TRUE)
endif()
if("${gnutls_gnutls_file_contents}" MATCHES "GNUTLS_SIGN_ECDSA_SHA512")
set(GNUTLS_SIGN_ECDSA_SHA512 TRUE)
endif()
if("${gnutls_gnutls_file_contents}" MATCHES "GNUTLS_DIG_SHA3_256")
set(GNUTLS_DIG_SHA3_256 TRUE)
endif()
if("${gnutls_gnutls_file_contents}" MATCHES "#define GNUTLS_VERSION_MAJOR 2")
set(GNUTLS_HMAC_INIT_WITH_DIGEST TRUE)
endif()
if("${gnutls_gnutls_file_contents}" MATCHES "GNUTLS_MAC_AES_CMAC_128")
set(GNUTLS_MAC_AES_CMAC_128 TRUE)
endif()
file(READ "${GNUTLS_INCLUDE_DIR}/gnutls/abstract.h" gnutls_abstract_file_contents)
if("${gnutls_abstract_file_contents}" MATCHES "gnutls_pubkey_export2")
set(GNUTLS_PUBKEY_EXPORT2 TRUE)
endif()
find_package(GMP)
set_package_properties(GMP PROPERTIES
PURPOSE "Required to decompress cryptographic keys."
TYPE REQUIRED
)
if(NOT GMP_FOUND)
message(FATAL_ERROR "GMP is required by gnss-sdr if linking against GnuTLS")
endif()
endif()
################################################################################
function(link_to_crypto_dependencies target)
if(OPENSSL_FOUND)
if(TARGET OpenSSL::SSL)
target_link_libraries(${target}
PUBLIC
OpenSSL::SSL
)
if(TARGET OpenSSL::Crypto)
target_link_libraries(${target}
PUBLIC
OpenSSL::Crypto
)
endif()
else()
target_link_libraries(${target}
PUBLIC
${OPENSSL_LIBRARIES}
"${OPENSSL_CRYPTO_LIBRARIES}"
)
target_include_directories(${target}
PUBLIC
${OPENSSL_INCLUDE_DIR}
)
endif()
if(OPENSSL_VERSION)
if(OPENSSL_VERSION VERSION_GREATER "3.0.0")
target_compile_definitions(${target} PUBLIC -DUSE_OPENSSL_3=1)
else()
if(NOT OPENSSL_VERSION VERSION_LESS "1.1.1")
target_compile_definitions(${target} PUBLIC -DUSE_OPENSSL_111=1)
endif()
endif()
endif()
else() # GnuTLS
target_link_libraries(${target}
PUBLIC
${GNUTLS_LIBRARIES}
${GNUTLS_OPENSSL_LIBRARY}
PRIVATE
Gmp::gmp
)
target_include_directories(${target}
PUBLIC
${GNUTLS_INCLUDE_DIR}
)
target_compile_definitions(${target} PUBLIC -DUSE_GNUTLS_FALLBACK=1)
if(GNUTLS_SIGN_ECDSA_SHA256)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_SIGN_ECDSA_SHA256=1)
endif()
if(GNUTLS_SIGN_ECDSA_SHA512)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_SIGN_ECDSA_SHA512=1)
endif()
if(GNUTLS_DIG_SHA3_256)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_DIG_SHA3_256=1)
endif()
if(GNUTLS_PUBKEY_EXPORT2)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_PUBKEY_EXPORT2=1)
endif()
if(GNUTLS_HMAC_INIT_WITH_DIGEST)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_HMAC_INIT_WITH_DIGEST=1)
endif()
if(GNUTLS_MAC_AES_CMAC_128)
target_compile_definitions(${target} PRIVATE -DHAVE_GNUTLS_MAC_AES_CMAC_128=1)
endif()
endif()
endfunction()

View File

@ -0,0 +1,93 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2025 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(GNSSSDR_LIB_PATHS)
return()
endif()
if(NOT CMAKE_INSTALL_LIBDIR)
include(GNUInstallDirs)
endif()
set(GNSSSDR_LIB_PATHS
/usr/lib
/usr/lib64
/usr/lib/aarch64-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/arm-linux-gnueabi
/usr/lib/arm-linux-gnueabihf
/usr/lib/hppa-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/i386-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/i386-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/lib/m68k-linux-gnu
/usr/lib/mips-linux-gnu
/usr/lib/mips64el-linux-gnuabi64
/usr/lib/mipsel-linux-gnu
/usr/lib/powerpc-linux-gnu
/usr/lib/powerpc-linux-gnuspe
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/local/lib
/usr/local/lib64
/usr/local/lib/i386
${CMAKE_INSTALL_FULL_LIBDIR}
${CMAKE_SYSTEM_PREFIX_PATH}/${CMAKE_INSTALL_LIBDIR}
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
)
set(GNSSSDR_INCLUDE_PATHS
/usr/include
/usr/local/include
${CMAKE_INSTALL_FULL_INCLUDEDIR}
${CMAKE_SYSTEM_PREFIX_PATH}/include
${CMAKE_INSTALL_PREFIX}/include
)
set(GNSSSDR_BIN_PATHS
/usr/bin
/usr/local/bin
${CMAKE_INSTALL_PREFIX}/bin
${CMAKE_INSTALL_FULL_BINDIR}
${CMAKE_SYSTEM_PREFIX_PATH}/bin
/bin
/sbin
/usr/sbin
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(NOT MACOS_PACKAGES_PREFIX)
include(DetectMacOSVersion)
endif()
set(GNSSSDR_LIB_PATHS ${GNSSSDR_LIB_PATHS}
${MACOS_PACKAGES_PREFIX}/${CMAKE_INSTALL_LIBDIR}
${MACOS_PACKAGES_PREFIX}/lib
${MACOS_PACKAGES_PREFIX}/lib64
)
set(GNSSSDR_INCLUDE_PATHS ${GNSSSDR_INCLUDE_PATHS}
${MACOS_PACKAGES_PREFIX}/include
~/Library/Frameworks
/Library/Frameworks
/sw/include # Fink
/opt/csw/include # Blastwave
)
set(GNSSSDR_BIN_PATHS ${GNSSSDR_BIN_PATHS}
${MACOS_PACKAGES_PREFIX}/bin
)
endif()
list(REMOVE_DUPLICATES GNSSSDR_LIB_PATHS)
list(REMOVE_DUPLICATES GNSSSDR_INCLUDE_PATHS)

View File

@ -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_REMOVE_WARNING_DUPLICATES_CMAKE)
return()
endif()
set(__INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE TRUE)
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
# `-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()

View File

@ -0,0 +1,32 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# Copyright (C) 2011-2025 (see AUTHORS file for a list of contributors)
# SPDX-License-Identifier: BSD-3-Clause
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR riscv64)
set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_C_FLAGS "$ENV{CFLAGS} -march=rv64gcv" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE)
set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -g" CACHE STRING "" FORCE)
set(CMAKE_OBJCOPY
${RISCV64_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}objcopy
CACHE INTERNAL "objcopy tool")
set(CMAKE_SIZE_UTIL
${RISCV64_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}size
CACHE INTERNAL "size tool")
set(CMAKE_FIND_ROOT_PATH ${BINUTILS_PATH})
set(QEMU_VLEN $ENV{VLEN})
if(NOT QEMU_VLEN)
set(QEMU_VLEN "128")
endif()
set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-riscv64-static -L /usr/riscv64-linux-gnu/ -cpu rv64,zba=true,zbb=true,v=on,vlen=${QEMU_VLEN},rvv_ta_all_1s=on,rvv_ma_all_1s=on")

View File

@ -50,7 +50,7 @@ InputFilter.grid_density=16
InputFilter.sampling_frequency=25000000
InputFilter.IF=6250000
InputFilter.dump = false
InputFilter.dump_filename=/home/dmiralles/Documents/gnss-sdr/src/tests/signal_samples/BdsB1IStr01_fs25e6_if0_4ms.dat
InputFilter.dump_filename=/home/dmiralles/Documents/gnss-sdr/tests/signal_samples/BdsB1IStr01_fs25e6_if0_4ms.dat
Resampler.implementation=Pass_Through
Resampler.sample_freq_in=25000000
Resampler.sample_freq_out=25000000

View File

@ -51,7 +51,7 @@ InputFilter.grid_density=16
InputFilter.sampling_frequency=50000000
InputFilter.IF=12500000
InputFilter.dump = false
InputFilter.dump_filename=/home/dmiralles/Documents/gnss-sdr/src/tests/signal_samples/BdsB3IStr01_fs50e6_if0_4ms.dat
InputFilter.dump_filename=/home/dmiralles/Documents/gnss-sdr/tests/signal_samples/BdsB3IStr01_fs50e6_if0_4ms.dat
Resampler.implementation=Pass_Through
Resampler.sample_freq_in=50000000
Resampler.sample_freq_out=50000000

View File

@ -12,7 +12,7 @@ GNSS-SDR.internal_fs_sps=30000000
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
;SignalSource.filename=/home/dmiralles/Documents/gnss-sdr/src/tests/signal_samples/USRP_BDS_B2a_201805171115_fs_25e6_if0e3_ishort_200ms.bin
;SignalSource.filename=/home/dmiralles/Documents/gnss-sdr/tests/signal_samples/USRP_BDS_B2a_201805171115_fs_25e6_if0e3_ishort_200ms.bin
SignalSource.filename=/archive/USRP_BDS_B3I_201805171118_fs_25e6_if0e3_ishort.bin
SignalSource.item_type=ishort
SignalSource.sampling_frequency=30000000

View File

@ -39,7 +39,7 @@ Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=../data/kalman/acq_dump
Acquisition_1C.dump_filename=./kalman/acq_dump
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_Gaussian_Tracking
@ -48,7 +48,7 @@ Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=4.0;
Tracking_1C.order=3;
Tracking_1C.dump=true
Tracking_1C.dump_filename=../data/kalman/epl_tracking_ch_
Tracking_1C.dump_filename=./kalman/epl_tracking_ch_
Tracking_1C.bce_run = true;
Tracking_1C.p_transient = 0;
Tracking_1C.s_transient = 100;

View File

@ -34,7 +34,7 @@ DataTypeAdapter.item_type=float
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
InputFilter.input_item_type=float
InputFilter.output_item_type=gr_complex
InputFilter.taps_item_type=float
@ -64,7 +64,7 @@ Resampler.item_type=gr_complex
Resampler.sample_freq_in=80000000
Resampler.sample_freq_out=4000000
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
@ -107,7 +107,7 @@ Tracking_1C.item_type=gr_complex
Tracking_1C.pll_bw_hz=20.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -30,14 +30,14 @@ SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter.implementation=Ishort_To_Complex
DataTypeAdapter.dump=false
DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
DataTypeAdapter.dump_filename=./data_type_adapter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Pass_Through
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
@ -46,7 +46,7 @@ Resampler.item_type=gr_complex
Resampler.sample_freq_in=4000000
Resampler.sample_freq_out=4000000
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############

View File

@ -30,7 +30,7 @@ SignalConditioner.implementation=Signal_Conditioner
DataTypeAdapter.implementation=Ishort_To_Complex
DataTypeAdapter.dump=false
DataTypeAdapter.dump_filename=../data/DataTypeAdapter.dat
DataTypeAdapter.dump_filename=./DataTypeAdapter.dat
InputFilter.implementation=Pass_Through
InputFilter.input_item_type=gr_complex
@ -67,7 +67,7 @@ Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=4.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_c
Tracking_1C.dump_filename=./epl_tracking_c
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -24,7 +24,7 @@ SignalSource.sampling_frequency=4000000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false

View File

@ -51,7 +51,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -86,7 +86,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
@ -103,7 +103,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
@ -153,7 +153,7 @@ Tracking_1C.dll_bw_narrow_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.early_late_space_chips=0.5;
Tracking_1C.dump=true
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -50,7 +50,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -85,7 +85,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
@ -102,7 +102,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex

View File

@ -51,7 +51,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -85,7 +85,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
@ -102,7 +102,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex

View File

@ -50,7 +50,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -85,7 +85,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
@ -102,7 +102,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex

View File

@ -50,7 +50,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -85,7 +85,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
@ -102,7 +102,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex

View File

@ -54,7 +54,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -93,7 +93,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter_ch1.dat
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -129,7 +129,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex

View File

@ -56,7 +56,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -95,7 +95,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter_ch1.dat
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -131,7 +131,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
@ -190,7 +190,7 @@ Acquisition_1C.dump_filename=./acq_dump.dat
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=1.5;
Tracking_1C.order=3;
@ -215,7 +215,7 @@ Tracking_2S.dll_bw_hz=0.3;
Tracking_2S.order=3;
Tracking_2S.early_late_space_chips=0.5;
Tracking_2S.dump=true
Tracking_2S.dump_filename=../data/epl_tracking_ch_
Tracking_2S.dump_filename=./epl_tracking_ch_
;# GALILEO E1B

View File

@ -56,7 +56,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter_ch0.dat
InputFilter0.dump_filename=./input_filter_ch0.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -95,7 +95,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter_ch1.dat
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -136,7 +136,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Freq_Xlating_Fir_Filter
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter_ch2.dat
InputFilter2.dump_filename=./input_filter_ch2.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
InputFilter2.taps_item_type=float
@ -271,7 +271,7 @@ Acquisition_5X.doppler_max=5000
Acquisition_5X.doppler_step=125
Acquisition_5X.bit_transition_flag=false
Acquisition_5X.max_dwells=1
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is desactivated. Recommended value 3000 Hz
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is deactivated. Recommended value 3000 Hz
Acquisition_5X.Zero_padding=0 ; **Only for E5a** Avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions. If set to 1 it is ON, if set to 0 it is OFF.
Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat
@ -286,7 +286,7 @@ Tracking_1C.dll_bw_hz=3.0;
Tracking_1C.order=3;
Tracking_1C.early_late_space_chips=0.5;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### GALILEO E1 TRK CONFIG ############
@ -298,7 +298,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############

View File

@ -56,7 +56,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter_ch0.dat
InputFilter0.dump_filename=./input_filter_ch0.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -94,7 +94,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter_ch1.dat
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -130,7 +130,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
InputFilter2.dump_filename=./input_filter.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
@ -212,7 +212,7 @@ Tracking_1C.dll_bw_hz=3.0;
Tracking_1C.order=3;
Tracking_1C.early_late_space_chips=0.5;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############

View File

@ -30,7 +30,7 @@ SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter.implementation=Ishort_To_Complex
DataTypeAdapter.dump=false
DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
DataTypeAdapter.dump_filename=./data_type_adapter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Pass_Through
@ -39,7 +39,7 @@ InputFilter.implementation=Pass_Through
;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
Resampler.item_type=gr_complex
@ -70,7 +70,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER CONFIG ############
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder

View File

@ -41,7 +41,7 @@ Resampler.item_type=gr_complex
Resampler.sample_freq_in=4000000
Resampler.sample_freq_out=4000000
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
@ -75,7 +75,7 @@ Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.track_pilot=true
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER CONFIG ############

View File

@ -25,7 +25,7 @@ SignalSource.sampling_frequency=20480000
SignalSource.samples=0 ; 0 means the entire file
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -62,7 +62,7 @@ InputFilter.sampling_frequency=20480000
InputFilter.IF=5499998.47412109
InputFilter.decimation_factor=8
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
@ -96,7 +96,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER CONFIG ############

View File

@ -35,7 +35,7 @@ SignalSource.sampling_frequency=50000000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -68,13 +68,13 @@ InputFilter.sampling_frequency=50000000
InputFilter.IF=-15345000
InputFilter.decimation_factor=1
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
@ -111,7 +111,7 @@ Acquisition_5X.doppler_max=10000
Acquisition_5X.doppler_step=250
Acquisition_5X.bit_transition_flag=false
Acquisition_5X.max_dwells=1
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is desactivated. Recommended value 3000 Hz
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is deactivated. Recommended value 3000 Hz
Acquisition_5X.Zero_padding=0 ; **Only for E5a** Avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions. If set to 1 it is ON, if set to 0 it is OFF.
Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat

View File

@ -81,7 +81,7 @@ Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=125
Acquisition_1B.bit_transition_flag=true
Acquisition_1B.dump=false
Acquisition_1B.dump_filename=../data/acq_dump.dat
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
@ -91,7 +91,7 @@ Tracking_1C.pll_bw_hz=30.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -109,7 +109,7 @@ Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.early_late_space_narrow_chips=0.06;
Tracking_1B.very_early_late_space_narrow_chips=0.25;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -25,7 +25,7 @@ SignalSource.sampling_frequency=16368000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -39,7 +39,7 @@ DataTypeAdapter.item_type=gr_complex
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
@ -110,7 +110,7 @@ Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=125
Acquisition_1B.bit_transition_flag=true
Acquisition_1B.dump=false
Acquisition_1B.dump_filename=../data/acq_dump.dat
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
@ -120,7 +120,7 @@ Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
@ -137,7 +137,7 @@ Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.early_late_space_narrow_chips=0.15;
Tracking_1B.very_early_late_space_narrow_chips=0.30;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -11,7 +11,7 @@ GNSS-SDR.num_sources=2
;######### SIGNAL_SOURCE CONFIG ############
SignalSource0.implementation=File_Signal_Source
SignalSource0.filename=../data/NT1065_L1_20160923_fs6625e6_if60e3_schar.bin ; <- PUT YOUR FILE HERE
SignalSource0.filename=./NT1065_L1_20160923_fs6625e6_if60e3_schar.bin ; <- PUT YOUR FILE HERE
SignalSource0.item_type=ibyte
SignalSource0.sampling_frequency=6625000
SignalSource0.samples=0
@ -19,7 +19,7 @@ SignalSource0.dump=false;
SignalSource0.dump_filename=/archive/signal_glonass.bin
SignalSource1.implementation=File_Signal_Source
SignalSource1.filename=../data/NT1065_GLONASS_L1_20160923_fs6625e6_if0e3_schar.bin ; <- PUT YOUR FILE HERE
SignalSource1.filename=./NT1065_GLONASS_L1_20160923_fs6625e6_if0e3_schar.bin ; <- PUT YOUR FILE HERE
SignalSource1.item_type=ibyte
SignalSource1.sampling_frequency=6625000
SignalSource1.samples=0

View File

@ -23,7 +23,7 @@ SignalSource.repeat=false
SignalSource.sample_type=iq
SignalSource.seconds_to_skip=0
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -69,7 +69,7 @@ Acquisition_1R.tong_max_dwells=20
Tracking_1R.implementation=GLONASS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1R.item_type=cshort
Tracking_1R.dump=false
Tracking_1R.dump_filename=../data/epl_tracking_ch_
Tracking_1R.dump_filename=./epl_tracking_ch_
Tracking_1R.pll_bw_hz=40.0;
Tracking_1R.dll_bw_hz=4.0;
Tracking_1R.order=3;

View File

@ -35,7 +35,7 @@ InputFilter.implementation=Pass_Through
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
@ -44,7 +44,7 @@ Resampler.item_type=gr_complex
Resampler.sample_freq_in=20000000
Resampler.sample_freq_out=20000000
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
@ -113,7 +113,7 @@ Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=1.5;
Tracking_1C.order=2;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -125,7 +125,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -22,7 +22,7 @@ SignalSource.sampling_frequency=4000000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -32,12 +32,12 @@ SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter.implementation=Ibyte_To_Complex
DataTypeAdapter.dump=false
DataTypeAdapter.dump_filename=../data/DataTypeAdapter.dat
DataTypeAdapter.dump_filename=./DataTypeAdapter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Pass_Through
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
@ -106,14 +106,14 @@ Tracking_1C.order=3;
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
Tracking_1B.pll_bw_hz=15.0;
Tracking_1B.dll_bw_hz=2.0;
Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -85,7 +85,7 @@ Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.dump=true
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -98,7 +98,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -56,7 +56,7 @@ InputFilter.output_item_type=gr_complex
Resampler.implementation=Pass_Through
Resampler.item_type=gr_complex
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
@ -111,7 +111,7 @@ Tracking_1C.pll_bw_hz=50.0;
Tracking_1C.dll_bw_hz=5.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -123,7 +123,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -57,7 +57,7 @@ DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter_ch0.dat
InputFilter0.dump_filename=./input_filter_ch0.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -96,7 +96,7 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter_ch1.dat
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -135,7 +135,7 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Freq_Xlating_Fir_Filter
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter_ch2.dat
InputFilter2.dump_filename=./input_filter_ch2.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
InputFilter2.taps_item_type=float
@ -266,7 +266,7 @@ Acquisition_5X.doppler_max=5000
Acquisition_5X.doppler_step=125
Acquisition_5X.bit_transition_flag=false
Acquisition_5X.max_dwells=1
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is desactivated. Recommended value 3000 Hz
Acquisition_5X.CAF_window_hz=0 ; **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is deactivated. Recommended value 3000 Hz
Acquisition_5X.Zero_padding=0 ; **Only for E5a** Avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions. If set to 1 it is ON, if set to 0 it is OFF.
Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat
@ -294,7 +294,7 @@ Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.early_late_space_chips=0.5;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### GALILEO E1 TRK CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
@ -305,7 +305,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############

View File

@ -45,7 +45,7 @@ DataTypeAdapter0.implementation=Ishort_To_Complex
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Pass_Through
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
@ -54,7 +54,7 @@ InputFilter0.output_item_type=gr_complex
;######### RESAMPLER 1 CONFIG ############
Resampler1.implementation=Pass_Through
Resampler1.dump=false
Resampler1.dump_filename=../data/resampler.dat
Resampler1.dump_filename=./resampler.dat
Resampler1.item_type=gr_complex
Resampler1.sample_freq_in=4000000
Resampler1.sample_freq_out=4000000
@ -73,7 +73,7 @@ InputFilter1.dump=false
;######### RESAMPLER 1 CONFIG ############
Resampler1.implementation=Pass_Through
Resampler1.dump=false
Resampler1.dump_filename=../data/resampler.dat.
Resampler1.dump_filename=./resampler.dat.
Resampler1.item_type=gr_complex
Resampler1.sample_freq_in=4000000
Resampler1.sample_freq_out=4000000
@ -126,7 +126,7 @@ Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=4.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -138,7 +138,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -48,7 +48,7 @@ DataTypeAdapter0.item_type=float
;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
InputFilter0.dump_filename=./input_filter.dat
InputFilter0.input_item_type=float
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
@ -83,7 +83,7 @@ DataTypeAdapter1.item_type=float
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
InputFilter1.dump_filename=./input_filter.dat
InputFilter1.input_item_type=float
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
@ -184,7 +184,7 @@ Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -196,7 +196,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -39,7 +39,7 @@ SignalSource.sampling_frequency=20480000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -53,7 +53,7 @@ DataTypeAdapter.item_type=float
;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
InputFilter.input_item_type=float
InputFilter.output_item_type=gr_complex
InputFilter.taps_item_type=float
@ -80,7 +80,7 @@ InputFilter.decimation_factor=8
;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through
Resampler.dump=false
Resampler.dump_filename=../data/resampler.dat
Resampler.dump_filename=./resampler.dat
Resampler.item_type=gr_complex
@ -120,7 +120,7 @@ Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
@ -130,7 +130,7 @@ Tracking_2S.dll_bw_hz=0.4;
Tracking_2S.order=2;
Tracking_2S.early_late_space_chips=0.5;
Tracking_2S.dump=true
Tracking_2S.dump_filename=../data/epl_tracking_ch_
Tracking_2S.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -37,7 +37,7 @@ SignalSource.repeat=false
;#dump: Dump the Signal source data to a file. Disable this option in this version
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
@ -72,12 +72,12 @@ InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.dump=false
;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
;#These options are based on parameters of gnuradio's function: gr_remez.
;#These function calculates the optimal (in the Chebyshev/minimax sense) FIR filter inpulse
;#reponse given a set of band edges, the desired reponse on those bands,
;#response given a set of band edges, the desired response on those bands,
;#and the weight given to the error in those bands.
;#input_item_type: Type and resolution for input signal samples. Use only gr_complex in this version.
@ -169,7 +169,7 @@ Tracking_1C.implementation=GPS_L1_CA_Gaussian_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.if=0
Tracking_1C.dump=true
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
Tracking_1C.pll_bw_hz=15.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;

View File

@ -22,7 +22,7 @@ SignalSource.sampling_frequency=20480000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -56,7 +56,7 @@ InputFilter.sampling_frequency=20480000
InputFilter.IF=5499998.47412109
InputFilter.decimation_factor=8
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
@ -129,7 +129,7 @@ Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=1.5;
Tracking_1C.order=2;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
@ -141,7 +141,7 @@ Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############

View File

@ -17,19 +17,23 @@
;GNSS-SDR.init_altitude_m=329.11968943169342
; Barcelona CTTC
GNSS-SDR.init_latitude_deg=41.27719585553101
GNSS-SDR.init_longitude_deg=1.988782985790802
GNSS-SDR.init_altitude_m=10
;GNSS-SDR.init_latitude_deg=41.27719585553101
;GNSS-SDR.init_longitude_deg=1.988782985790802
;GNSS-SDR.init_altitude_m=10
; Mozoncillo
;GNSS-SDR.init_latitude_deg=41.14534824586196
;GNSS-SDR.init_longitude_deg=-4.187125019737464
;GNSS-SDR.init_altitude_m=900
; ICEBAR - Jukkasjarvi
GNSS-SDR.init_latitude_deg=67.849722
GNSS-SDR.init_longitude_deg=20.594444
GNSS-SDR.init_altitude_m=325
;######### GLOBAL OPTIONS ##################
;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [samples per second].
GNSS-SDR.internal_fs_sps=2000000
GNSS-SDR.internal_fs_sps=2048000
;######### SUPL RRLP GPS assistance configuration #####
; Check https://www.mcc-mnc.com/
@ -40,10 +44,10 @@ GNSS-SDR.SUPL_gps_ephemeris_server=supl.google.com
GNSS-SDR.SUPL_gps_ephemeris_port=7275
GNSS-SDR.SUPL_gps_acquisition_server=supl.google.com
GNSS-SDR.SUPL_gps_acquisition_port=7275
GNSS-SDR.SUPL_MCC=217
GNSS-SDR.SUPL_MNC=7
GNSS-SDR.SUPL_LAC=861
GNSS-SDR.SUPL_CI=40184
GNSS-SDR.SUPL_MCC=240
GNSS-SDR.SUPL_MNC=08
GNSS-SDR.SUPL_LAC=46003
GNSS-SDR.SUPL_CI=425950
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
@ -52,7 +56,7 @@ SignalSource.freq=1575420000
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=2000000
SignalSource.sampling_frequency=2048000
;#gain: Front-end Gain in [dB]
SignalSource.gain=40
SignalSource.rf_gain=40
@ -81,7 +85,7 @@ SignalSource.repeat=false
;#dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
;######### SIGNAL_CONDITIONER CONFIG ############
;## It holds blocks to change data type, filter and resample input data.
@ -98,7 +102,7 @@ DataTypeAdapter.implementation=Pass_Through
;#dump: Dump the filtered data to a file.
DataTypeAdapter.dump=false
;#dump_filename: Log path and filename.
DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
DataTypeAdapter.dump_filename=./data_type_adapter.dat
;######### INPUT_FILTER CONFIG ############
;## Filter the input data. Can be combined with frequency translation for IF signals
@ -172,7 +176,7 @@ InputFilter.decimation_factor=1
InputFilter.dump=false
;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
InputFilter.dump_filename=./input_filter.dat
;######### RESAMPLER CONFIG ############
;## Resamples the input data.
@ -200,3 +204,4 @@ Acquisition.max_dwells=15
Acquisition.dump=false
;#filename: Log path and filename
Acquisition.dump_filename=./acq_dump.dat

View File

@ -21,7 +21,7 @@ SignalSource.item_type=gr_complex
SignalSource.samples=250000000
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.dump_filename=./signal_source.dat
SignalSource.enable_throttle_control=false
@ -51,7 +51,7 @@ Acquisition_1C.dump_filename=./acq_dump.dat
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking_GPU
Tracking_1C.item_type=gr_complex
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.dump_filename=./epl_tracking_ch_
Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;

Some files were not shown because too many files have changed in this diff Show More