From fa1e9209c5a4318d55388252bf671b17f69120be Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 16 Feb 2025 22:10:20 +0100 Subject: [PATCH] CMake: centralize find paths in a single file Improve Macports/Homebrew detection. Do not hardcode /opt/local or /opt/homebrew --- CMakeLists.txt | 50 +++++----- README.md | 7 +- cmake/Modules/AvoidAccelerate.cmake | 10 +- cmake/Modules/DetectMacOSVersion.cmake | 7 +- cmake/Modules/FindCPUFEATURES.cmake | 12 +-- cmake/Modules/FindGFLAGS.cmake | 15 ++- cmake/Modules/FindGFORTRAN.cmake | 4 +- cmake/Modules/FindGLOG.cmake | 21 ++--- cmake/Modules/FindGMP.cmake | 19 ++-- cmake/Modules/FindGNSSSIMULATOR.cmake | 9 +- cmake/Modules/FindGNSSTK.cmake | 22 ++--- cmake/Modules/FindGNUPLOT.cmake | 9 +- cmake/Modules/FindGNURADIO.cmake | 29 ++---- cmake/Modules/FindGOOGLETEST.cmake | 22 +++-- cmake/Modules/FindGPERFTOOLS.cmake | 30 ++---- cmake/Modules/FindGRDBFCTTC.cmake | 16 ++-- cmake/Modules/FindGRIIO.cmake | 22 ++--- cmake/Modules/FindGRLIMESDR.cmake | 14 ++- cmake/Modules/FindGROSMOSDR.cmake | 14 ++- cmake/Modules/FindLIBAD9361.cmake | 14 ++- cmake/Modules/FindLIBIIO.cmake | 14 ++- cmake/Modules/FindLIBUNWIND.cmake | 20 +--- cmake/Modules/FindLOG4CPP.cmake | 18 ++-- cmake/Modules/FindMATIO.cmake | 8 +- cmake/Modules/FindORC.cmake | 45 ++------- cmake/Modules/FindPCAP.cmake | 12 +-- cmake/Modules/FindPUGIXML.cmake | 22 ++--- cmake/Modules/FindTELEORBIT.cmake | 16 ++-- cmake/Modules/FindUHD.cmake | 14 ++- cmake/Modules/FindVOLK.cmake | 14 ++- cmake/Modules/FindVOLKGNSSSDR.cmake | 16 ++-- cmake/Modules/FindZEROMQ.cmake | 16 ++-- cmake/Modules/GnsssdrCrypto.cmake | 9 +- cmake/Modules/GnsssdrFindPaths.cmake | 93 +++++++++++++++++++ cmake/Modules/GnsssdrLibPaths.cmake | 43 --------- docs/CHANGELOG.md | 1 + .../conditioner/adapters/CMakeLists.txt | 7 ++ .../volk_gnsssdr/CMakeLists.txt | 1 + .../cmake/Modules/DetectMacOSPackaging.cmake | 26 ++++++ .../cmake/Modules/FindCPUFEATURES.cmake | 46 ++------- .../volk_gnsssdr/cmake/Modules/FindORC.cmake | 82 +++------------- .../cmake/Modules/VolkGnsssdrFindPaths.cmake | 80 ++++++++++++++++ src/main/CMakeLists.txt | 9 +- tests/CMakeLists.txt | 2 +- utils/front-end-cal/CMakeLists.txt | 8 +- utils/rinex2assist/CMakeLists.txt | 4 +- 46 files changed, 471 insertions(+), 501 deletions(-) create mode 100644 cmake/Modules/GnsssdrFindPaths.cmake delete mode 100644 cmake/Modules/GnsssdrLibPaths.cmake create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/DetectMacOSPackaging.cmake create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrFindPaths.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ca872b2a9..44cff2978 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -611,9 +611,9 @@ set_package_properties(Threads PROPERTIES ################################################################################ -# Set GNSSSDR_LIB_PATHS +# Set GNSSSDR_LIB_PATHS and GNSSSDR_INCLUDE_PATHS ################################################################################ -include(GnsssdrLibPaths) +include(GnsssdrFindPaths) @@ -2234,21 +2234,21 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) # Fix for macOS find_library(ARPACK_LIBRARY NAMES arpack - PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /opt/local/lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 + PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} ${GNSSSDR_LIB_PATHS} ) if(ARPACK_LIBRARY) target_link_libraries(Armadillo::armadillo INTERFACE ${ARPACK_LIBRARY}) endif() find_library(FLEXIBLAS_LIBRARY NAMES flexiblas - PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /opt/local/lib /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 + PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} ${GNSSSDR_LIB_PATHS} ) if(FLEXIBLAS_LIBRARY) target_link_libraries(Armadillo::armadillo INTERFACE ${FLEXIBLAS_LIBRARY}) endif() find_library(SUPERLU_LIBRARY NAMES superlu - PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /opt/local/lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 + PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} ${GNSSSDR_LIB_PATHS} ) if(SUPERLU_LIBRARY) target_link_libraries(Armadillo::armadillo INTERFACE ${SUPERLU_LIBRARY}) @@ -2375,23 +2375,23 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - if((NOT EXISTS /usr/local/bin/glibtoolize AND NOT EXISTS /opt/local/bin/glibtoolize) OR - (NOT EXISTS /usr/local/bin/aclocal AND NOT EXISTS /opt/local/bin/aclocal)) + if((NOT EXISTS /usr/local/bin/glibtoolize AND NOT EXISTS ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize) OR + (NOT EXISTS /usr/local/bin/aclocal AND NOT EXISTS ${MACOS_PACKAGES_PREFIX}/bin/aclocal)) message(" libtool/automake tools have not been found.") message(" You can try to install them by typing:") message(" 'sudo port install libtool automake', if you use Macports, or 'brew install libtool automake', if you use Homebrew") message(FATAL_ERROR "libtool/automake tools are required to build matio from source") endif() if(CMAKE_GENERATOR STREQUAL Xcode) - if(EXISTS /opt/local/bin/glibtoolize OR EXISTS /opt/local/bin/aclocal) + if(EXISTS ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize OR EXISTS ${MACOS_PACKAGES_PREFIX}/bin/aclocal) if(NOT EXISTS /usr/local/bin/glibtoolize OR NOT EXISTS /usr/local/bin/aclocal) message(" WARNING: libtool/atomake binaries cannot be found by Xcode. Please do:") - message("sudo ln -s /opt/local/bin/glibtoolize /usr/local/bin/") - message("sudo ln -s /opt/local/bin/aclocal /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autom4te /usr/local/bin/") - message("sudo ln -s /opt/local/bin/automake /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autoconf /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autoreconf /usr/local/bin/") # not needed by Matio, but by Protocol Buffers + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/aclocal /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autom4te /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/automake /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autoconf /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autoreconf /usr/local/bin/") # not needed by Matio, but by Protocol Buffers message(FATAL_ERROR "libtool/automake tools cannot be found by Xcode") endif() endif() @@ -2402,8 +2402,8 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS get_filename_component(HDF5_BASE_DIR2 ${HDF5_FIRST_DIR} DIRECTORY) get_filename_component(HDF5_BASE_DIR ${HDF5_BASE_DIR2} DIRECTORY) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - if(EXISTS /opt/local/include/hdf5.h) - set(HDF5_BASE_DIR /opt/local) + if(EXISTS ${MACOS_PACKAGES_PREFIX}/include/hdf5.h) + set(HDF5_BASE_DIR ${MACOS_PACKAGES_PREFIX}) endif() if(EXISTS /usr/local/include/hdf5.h) set(HDF5_BASE_DIR /usr/local) @@ -2785,23 +2785,23 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI endif() endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - if((NOT EXISTS /usr/local/bin/glibtoolize AND NOT EXISTS /opt/local/bin/glibtoolize) OR - (NOT EXISTS /usr/local/bin/aclocal AND NOT EXISTS /opt/local/bin/aclocal)) + if((NOT EXISTS /usr/local/bin/glibtoolize AND NOT EXISTS ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize) OR + (NOT EXISTS /usr/local/bin/aclocal AND NOT EXISTS ${MACOS_PACKAGES_PREFIX}/bin/aclocal)) message(" libtool/automake tools have not been found.") message(" You can try to install them by typing:") message(" 'sudo port install libtool automake', if you use Macports, or 'brew install libtool automake', if you use Homebrew") message(FATAL_ERROR "libtool/automake tools are required to build Protocol Buffers from source") endif() if(CMAKE_GENERATOR STREQUAL Xcode) - if(EXISTS /opt/local/bin/glibtoolize OR EXISTS /opt/local/bin/aclocal) + if(EXISTS ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize OR EXISTS ${MACOS_PACKAGES_PREFIX}/bin/aclocal) if(NOT EXISTS /usr/local/bin/glibtoolize OR NOT EXISTS /usr/local/bin/aclocal) message(" WARNING: libtool/automake binaries cannot be found by Xcode. Please do:") - message("sudo ln -s /opt/local/bin/glibtoolize /usr/local/bin/") - message("sudo ln -s /opt/local/bin/aclocal /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autom4te /usr/local/bin/") - message("sudo ln -s /opt/local/bin/automake /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autoconf /usr/local/bin/") - message("sudo ln -s /opt/local/bin/autoreconf /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/glibtoolize /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/aclocal /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autom4te /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/automake /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autoconf /usr/local/bin/") + message("sudo ln -s ${MACOS_PACKAGES_PREFIX}/bin/autoreconf /usr/local/bin/") message(FATAL_ERROR "libtool/automake tools cannot be found by Xcode") endif() endif() diff --git a/README.md b/README.md index 5b6970bcc..9e304e36f 100644 --- a/README.md +++ b/README.md @@ -127,13 +127,14 @@ This section describes how to set up the compilation environment in GNU/Linux or - Tested distributions: Ubuntu 14.04 LTS and above; Debian 9.0 "stretch" and 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. @@ -792,7 +793,7 @@ $ sudo port selfupdate $ sudo port upgrade outdated $ 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 +$ sudo port install boost matio libad9361-iio libiio abseil $ sudo port install py313-mako $ sudo port install doxygen +docs ``` diff --git a/cmake/Modules/AvoidAccelerate.cmake b/cmake/Modules/AvoidAccelerate.cmake index 5d052296d..27d9bd6b5 100644 --- a/cmake/Modules/AvoidAccelerate.cmake +++ b/cmake/Modules/AvoidAccelerate.cmake @@ -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 diff --git a/cmake/Modules/DetectMacOSVersion.cmake b/cmake/Modules/DetectMacOSVersion.cmake index c66491c94..361d3422f 100644 --- a/cmake/Modules/DetectMacOSVersion.cmake +++ b/cmake/Modules/DetectMacOSVersion.cmake @@ -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) @@ -78,6 +78,7 @@ 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) @@ -87,6 +88,7 @@ if(${DETECT_MACPORTS} EQUAL 0) 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 @@ -94,4 +96,5 @@ execute_process(COMMAND brew --prefix RESULT_VARIABLE DETECT_HOMEBREW OUTPUT_VAR 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}") -endif() \ No newline at end of file + set(MACOS_PACKAGES_PREFIX ${HOMEBREW_PREFIX}) +endif() diff --git a/cmake/Modules/FindCPUFEATURES.cmake b/cmake/Modules/FindCPUFEATURES.cmake index 6f4f0e58f..89587e6eb 100644 --- a/cmake/Modules/FindCPUFEATURES.cmake +++ b/cmake/Modules/FindCPUFEATURES.cmake @@ -1,13 +1,13 @@ # 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(GnsssdrLibPaths) + include(GnsssdrFindPaths) endif() find_library(CPUFEATURES_LIBRARIES @@ -18,13 +18,7 @@ find_library(CPUFEATURES_LIBRARIES 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 ) diff --git a/cmake/Modules/FindGFLAGS.cmake b/cmake/Modules/FindGFLAGS.cmake index cbfa07cd3..afc7ebb68 100644 --- a/cmake/Modules/FindGFLAGS.cmake +++ b/cmake/Modules/FindGFLAGS.cmake @@ -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 @@ -26,7 +26,7 @@ if(NOT COMMAND feature_summary) endif() if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) + include(GnsssdrFindPaths) endif() if(NOT GFLAGS_ROOT) @@ -46,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 @@ -68,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 diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake index 26764a688..c6e175b41 100644 --- a/cmake/Modules/FindGFORTRAN.cmake +++ b/cmake/Modules/FindGFORTRAN.cmake @@ -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(NOT COMMAND feature_summary) @@ -9,7 +9,7 @@ if(NOT COMMAND feature_summary) endif() if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) + include(GnsssdrFindPaths) endif() if(NOT GFORTRAN_ROOT) diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake index 8f6c880a0..ef7878a10 100644 --- a/cmake/Modules/FindGLOG.cmake +++ b/cmake/Modules/FindGLOG.cmake @@ -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 @@ -24,14 +24,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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() @@ -74,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 @@ -82,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() diff --git a/cmake/Modules/FindGMP.cmake b/cmake/Modules/FindGMP.cmake index 3f4db49c6..840324f44 100644 --- a/cmake/Modules/FindGMP.cmake +++ b/cmake/Modules/FindGMP.cmake @@ -1,31 +1,28 @@ # GNSS-SDR is a Global Navigation Satellite System software-defined receiver. # This file is part of GNSS-SDR. # -# SPDX-FileCopyrightText: 2024 C. Fernandez-Prades cfernandez(at)cttc.es +# 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(GnsssdrLibPaths) -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 ${CMAKE_INSTALL_PREFIX}/include - /usr/local/include - /usr/include - /opt/local/include + PATHS ${GNSSSDR_INCLUDE_PATHS} ) set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR}) @@ -35,16 +32,12 @@ find_library(GMPXX_LIBRARY NAMES gmpxx HINTS ${PC_GMP_LIBDIR} PATHS ${GNSSSDR_LIB_PATHS} - ${CMAKE_INSTALL_PREFIX}/lib - ${CMAKE_INSTALL_PREFIX}/lib64 ) find_library(GMP_LIBRARY NAMES gmp HINTS ${PC_GMP_LIBDIR} PATHS ${GNSSSDR_LIB_PATHS} - ${CMAKE_INSTALL_PREFIX}/lib - ${CMAKE_INSTALL_PREFIX}/lib64 ) set(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY}) diff --git a/cmake/Modules/FindGNSSSIMULATOR.cmake b/cmake/Modules/FindGNSSSIMULATOR.cmake index 6a193746d..abeee05ce 100644 --- a/cmake/Modules/FindGNSSSIMULATOR.cmake +++ b/cmake/Modules/FindGNSSSIMULATOR.cmake @@ -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 ) diff --git a/cmake/Modules/FindGNSSTK.cmake b/cmake/Modules/FindGNSSTK.cmake index e810ebee7..d49a1bc53 100644 --- a/cmake/Modules/FindGNSSTK.cmake +++ b/cmake/Modules/FindGNSSTK.cmake @@ -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) diff --git a/cmake/Modules/FindGNUPLOT.cmake b/cmake/Modules/FindGNUPLOT.cmake index c464bc6b6..dbbcd04f7 100644 --- a/cmake/Modules/FindGNUPLOT.cmake +++ b/cmake/Modules/FindGNUPLOT.cmake @@ -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 ) diff --git a/cmake/Modules/FindGNURADIO.cmake b/cmake/Modules/FindGNURADIO.cmake index d976d0e28..01553d725 100644 --- a/cmake/Modules/FindGNURADIO.cmake +++ b/cmake/Modules/FindGNURADIO.cmake @@ -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 ######################################################################## @@ -12,14 +12,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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 @@ -97,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 @@ -107,8 +105,7 @@ 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 + PATHS ${GNURADIO_INSTALL_PREFIX_USER_PROVIDED}/${CMAKE_INSTALL_LIBDIR} ${GNSSSDR_LIB_PATHS} ) list(APPEND ${LIBVAR_NAME} ${${LIBVAR_NAME}_${libname}}) @@ -197,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+") @@ -208,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+") @@ -278,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 diff --git a/cmake/Modules/FindGOOGLETEST.cmake b/cmake/Modules/FindGOOGLETEST.cmake index cf47a7062..268d8580a 100644 --- a/cmake/Modules/FindGOOGLETEST.cmake +++ b/cmake/Modules/FindGOOGLETEST.cmake @@ -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) diff --git a/cmake/Modules/FindGPERFTOOLS.cmake b/cmake/Modules/FindGPERFTOOLS.cmake index 4d6dd135b..63516e9a2 100644 --- a/cmake/Modules/FindGPERFTOOLS.cmake +++ b/cmake/Modules/FindGPERFTOOLS.cmake @@ -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}) diff --git a/cmake/Modules/FindGRDBFCTTC.cmake b/cmake/Modules/FindGRDBFCTTC.cmake index 72bbe8d90..09a4bbd2b 100644 --- a/cmake/Modules/FindGRDBFCTTC.cmake +++ b/cmake/Modules/FindGRDBFCTTC.cmake @@ -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) diff --git a/cmake/Modules/FindGRIIO.cmake b/cmake/Modules/FindGRIIO.cmake index 6a4352fc0..600401c42 100644 --- a/cmake/Modules/FindGRIIO.cmake +++ b/cmake/Modules/FindGRIIO.cmake @@ -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 # @@ -13,14 +13,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -28,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) @@ -62,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() diff --git a/cmake/Modules/FindGRLIMESDR.cmake b/cmake/Modules/FindGRLIMESDR.cmake index a0ca9a565..ff4615a14 100644 --- a/cmake/Modules/FindGRLIMESDR.cmake +++ b/cmake/Modules/FindGRLIMESDR.cmake @@ -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. @@ -31,14 +31,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -61,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 diff --git a/cmake/Modules/FindGROSMOSDR.cmake b/cmake/Modules/FindGROSMOSDR.cmake index 15a36c32b..5184fb548 100644 --- a/cmake/Modules/FindGROSMOSDR.cmake +++ b/cmake/Modules/FindGROSMOSDR.cmake @@ -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. @@ -31,14 +31,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -61,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 diff --git a/cmake/Modules/FindLIBAD9361.cmake b/cmake/Modules/FindLIBAD9361.cmake index 175a81af2..55fcd6e58 100644 --- a/cmake/Modules/FindLIBAD9361.cmake +++ b/cmake/Modules/FindLIBAD9361.cmake @@ -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 # @@ -13,14 +13,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -43,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 diff --git a/cmake/Modules/FindLIBIIO.cmake b/cmake/Modules/FindLIBIIO.cmake index add9215de..83aab4b81 100644 --- a/cmake/Modules/FindLIBIIO.cmake +++ b/cmake/Modules/FindLIBIIO.cmake @@ -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 # @@ -13,14 +13,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -44,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( diff --git a/cmake/Modules/FindLIBUNWIND.cmake b/cmake/Modules/FindLIBUNWIND.cmake index b5c6a68a8..8d6adbada 100644 --- a/cmake/Modules/FindLIBUNWIND.cmake +++ b/cmake/Modules/FindLIBUNWIND.cmake @@ -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 @@ -18,30 +18,22 @@ if(NOT COMMAND feature_summary) endif() if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) + 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" @@ -75,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}") diff --git a/cmake/Modules/FindLOG4CPP.cmake b/cmake/Modules/FindLOG4CPP.cmake index f351ebf3a..d6d5eb9b4 100644 --- a/cmake/Modules/FindLOG4CPP.cmake +++ b/cmake/Modules/FindLOG4CPP.cmake @@ -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 @@ -19,14 +19,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -52,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} ) @@ -77,8 +75,8 @@ find_library(LOG4CPP_LIBRARY NAMES ${LOG4CPP_NAMES} HINTS ${PC_LOG4CPP_LIBDIR} PATHS ${LOG4CPP_ROOT_USER_PROVIDED}/lib - ${LOG4CPP_ROOT_USER_PROVIDED}/lib64 - ${GNSSSDR_LIB_PATHS} + ${LOG4CPP_ROOT_USER_PROVIDED}/lib64 + ${GNSSSDR_LIB_PATHS} ) if(LOG4CPP_INCLUDE_DIR AND LOG4CPP_LIBRARY) diff --git a/cmake/Modules/FindMATIO.cmake b/cmake/Modules/FindMATIO.cmake index 73f8d053d..da256e21f 100644 --- a/cmake/Modules/FindMATIO.cmake +++ b/cmake/Modules/FindMATIO.cmake @@ -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 @@ -56,7 +56,7 @@ if(NOT COMMAND feature_summary) endif() if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) + include(GnsssdrFindPaths) endif() if(NOT MATIO_ROOT) @@ -76,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" ) diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake index 600d0ac35..e16632c2b 100644 --- a/cmake/Modules/FindORC.cmake +++ b/cmake/Modules/FindORC.cmake @@ -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) @@ -13,14 +13,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -47,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 ) @@ -67,8 +63,6 @@ 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 ${GNSSSDR_LIB_PATHS} ) @@ -76,8 +70,6 @@ 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 ${GNSSSDR_LIB_PATHS} ) @@ -85,30 +77,9 @@ find_library(ORC_LIBRARY_STATIC ${CMAKE_STATIC_LIBRARY_PREFIX}orc-0.4${CMAKE_STA 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/lib/riscv64-linux-gnu - /usr/lib/loongarch64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /opt/local/lib + ${GNSSSDR_LIB_PATHS} ) if(PC_ORC_VERSION) diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake index 2a3db3aff..aba931218 100644 --- a/cmake/Modules/FindPCAP.cmake +++ b/cmake/Modules/FindPCAP.cmake @@ -23,14 +23,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -81,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 diff --git a/cmake/Modules/FindPUGIXML.cmake b/cmake/Modules/FindPUGIXML.cmake index 4ff6419cc..6c6b34a63 100644 --- a/cmake/Modules/FindPUGIXML.cmake +++ b/cmake/Modules/FindPUGIXML.cmake @@ -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. @@ -20,14 +20,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -54,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 @@ -71,8 +69,8 @@ find_library(PUGIXML_LIBRARY ${PUGIXML_ROOT_USER_DEFINED}}/lib/pugixml-1.9 ${PUGIXML_ROOT_USER_DEFINED}/lib64/pugixml-1.9 ${GNSSSDR_LIB_PATHS} - /usr/local/lib/pugixml-${PC_PUGIXML_VERSION} - /usr/local/lib/pugixml-1.9 + ${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. diff --git a/cmake/Modules/FindTELEORBIT.cmake b/cmake/Modules/FindTELEORBIT.cmake index db888984a..fa315cd32 100644 --- a/cmake/Modules/FindTELEORBIT.cmake +++ b/cmake/Modules/FindTELEORBIT.cmake @@ -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) @@ -40,9 +44,7 @@ find_path(TELEORBIT_INCLUDE_DIRS 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 @@ -50,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) diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake index d30313535..356af6593 100644 --- a/cmake/Modules/FindUHD.cmake +++ b/cmake/Modules/FindUHD.cmake @@ -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 # @@ -16,14 +16,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -54,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 diff --git a/cmake/Modules/FindVOLK.cmake b/cmake/Modules/FindVOLK.cmake index 2247f8247..70286fbf0 100644 --- a/cmake/Modules/FindVOLK.cmake +++ b/cmake/Modules/FindVOLK.cmake @@ -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 # @@ -16,14 +16,14 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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) @@ -52,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 diff --git a/cmake/Modules/FindVOLKGNSSSDR.cmake b/cmake/Modules/FindVOLKGNSSSDR.cmake index 64ab621d3..9de60ce30 100644 --- a/cmake/Modules/FindVOLKGNSSSDR.cmake +++ b/cmake/Modules/FindVOLKGNSSSDR.cmake @@ -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) diff --git a/cmake/Modules/FindZEROMQ.cmake b/cmake/Modules/FindZEROMQ.cmake index d42a68d2d..9d2254cd6 100644 --- a/cmake/Modules/FindZEROMQ.cmake +++ b/cmake/Modules/FindZEROMQ.cmake @@ -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 # @@ -13,26 +13,26 @@ if(NOT COMMAND feature_summary) include(FeatureSummary) endif() -if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) -endif() - 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 + HINTS ${PC_ZEROMQ_LIBDIR} PATHS ${GNSSSDR_LIB_PATHS} ) diff --git a/cmake/Modules/GnsssdrCrypto.cmake b/cmake/Modules/GnsssdrCrypto.cmake index a9d89e6be..36f2be03a 100644 --- a/cmake/Modules/GnsssdrCrypto.cmake +++ b/cmake/Modules/GnsssdrCrypto.cmake @@ -1,7 +1,7 @@ # GNSS-SDR is a Global Navigation Satellite System software-defined receiver. # This file is part of GNSS-SDR. # -# SPDX-FileCopyrightText: 2024 C. Fernandez-Prades cfernandez(at)cttc.es +# SPDX-FileCopyrightText: 2024-2025 C. Fernandez-Prades cfernandez(at)cttc.es # SPDX-License-Identifier: BSD-3-Clause if(NOT COMMAND feature_summary) @@ -9,7 +9,7 @@ if(NOT COMMAND feature_summary) endif() if(NOT GNSSSDR_LIB_PATHS) - include(GnsssdrLibPaths) + include(GnsssdrFindPaths) endif() ################################################################################ @@ -65,10 +65,7 @@ else() find_path(GNUTLS_INCLUDE_DIR NAMES gnutls/gnutls.h PATHS - /usr/include - /usr/local/include - /opt/local/include # default location in Macports - /opt/homebrew/opt/gnutls/include/ + ${GNSSSDR_INCLUDE_PATHS} ${GNUTLS_ROOT_DIR}/include/ ) diff --git a/cmake/Modules/GnsssdrFindPaths.cmake b/cmake/Modules/GnsssdrFindPaths.cmake new file mode 100644 index 000000000..1ebda4f58 --- /dev/null +++ b/cmake/Modules/GnsssdrFindPaths.cmake @@ -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) diff --git a/cmake/Modules/GnsssdrLibPaths.cmake b/cmake/Modules/GnsssdrLibPaths.cmake deleted file mode 100644 index 9f76e362f..000000000 --- a/cmake/Modules/GnsssdrLibPaths.cmake +++ /dev/null @@ -1,43 +0,0 @@ -# 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(GNSSSDR_LIB_PATHS) - return() -endif() - -set(GNSSSDR_LIB_PATHS - /usr/lib - /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/lib64 - /usr/local/lib - /usr/local/lib/i386 - /usr/local/lib64 - /opt/local/lib -) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 34896899e..5f14a5255 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -109,6 +109,7 @@ All notable changes to GNSS-SDR will be documented in this file. place and, if not found, then it looks for GnuTLS as a fallback. - Allow linking against Boost 1.87.0. - Replace the System V queues by boost::interprocess, improving portability. +- Improve detection of Homebrew or Macports in macOS. ### Reliability diff --git a/src/algorithms/conditioner/adapters/CMakeLists.txt b/src/algorithms/conditioner/adapters/CMakeLists.txt index 59432f3e9..fe0bc95f6 100644 --- a/src/algorithms/conditioner/adapters/CMakeLists.txt +++ b/src/algorithms/conditioner/adapters/CMakeLists.txt @@ -39,6 +39,13 @@ target_link_libraries(conditioner_adapters Gnuradio::runtime ) +if(GNURADIO_VERSION VERSION_LESS 3.9) + target_link_libraries(conditioner_adapters + PUBLIC + Boost::headers + ) +endif() + if(ENABLE_GLOG_AND_GFLAGS) target_link_libraries(conditioner_adapters PRIVATE Gflags::gflags Glog::glog) target_compile_definitions(conditioner_adapters PRIVATE -DUSE_GLOG_AND_GFLAGS=1) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt index 7331e0fea..258110f96 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt @@ -208,6 +208,7 @@ set(VERSION_INFO_MAJOR_VERSION 0) set(VERSION_INFO_MINOR_VERSION 0) set(VERSION_INFO_MAINT_VERSION 19) include(VolkGnsssdrVersion) # setup version info +include(VolkGnsssdrFindPaths) # set VOLK_GNSSSDR_LIB_PATHS and VOLK_GNSSSDR_INCLUDE_PATHS diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/DetectMacOSPackaging.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/DetectMacOSPackaging.cmake new file mode 100644 index 000000000..5be83478e --- /dev/null +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/DetectMacOSPackaging.cmake @@ -0,0 +1,26 @@ +# GNSS-SDR is a Global Navigation Satellite System software-defined receiver. +# This file is part of GNSS-SDR. +# +# SPDX-FileCopyrightText: 2025 C. Fernandez-Prades cfernandez(at)cttc.es +# SPDX-License-Identifier: BSD-3-Clause + +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() diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake index 7c25e69c2..0cf9c286d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindCPUFEATURES.cmake @@ -1,55 +1,25 @@ # 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 VOLK_GNSSSDR_LIB_PATHS) + include(VolkGnsssdrFindPaths) +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/lib/loongarch64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /opt/local/lib + PATHS $ENV{CPUFEATURES_DIR}/lib + ${VOLK_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 + ${VOLK_GNSSSDR_INCLUDE_PATHS} PATH_SUFFIXES cpu_features ) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake index 9ac9f5ccb..22e7f943b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake @@ -1,13 +1,18 @@ # GNSS-SDR is a Global Navigation Satellite System software-defined receiver. # This file is part of GNSS-SDR. # -# Copyright (C) 2015-2020 (see AUTHORS file for a list of contributors) +# Copyright (C) 2015-2025 (see AUTHORS file for a list of contributors) # SPDX-License-Identifier: BSD-3-Clause set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) set(FPHSA_NAME_MISMATCHED ON) include(FindPkgConfig) + +if(NOT VOLK_GNSSSDR_LIB_PATHS) + include(VolkGnsssdrFindPaths) +endif() + pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22") if(NOT ORC_ROOT) @@ -36,16 +41,14 @@ find_program(ORCC_EXECUTABLE orcc HINTS ${ORC_ROOT_USER_PROVIDED}/bin PATHS /usr/bin /usr/local/bin - /opt/local/bin + ${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 + ${VOLK_GNSSSDR_INCLUDE_PATHS} PATH_SUFFIXES orc-0.4 ) @@ -54,86 +57,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/lib/riscv64-linux-gnu - /usr/lib/loongarch64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /opt/local/lib + ${VOLK_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/lib/riscv64-linux-gnu - /usr/lib/loongarch64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /opt/local/lib + ${VOLK_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/lib/riscv64-linux-gnu - /usr/lib/loongarch64-linux-gnu - /usr/local/lib - /usr/local/lib64 - /opt/local/lib + ${VOLK_GNSSSDR_LIB_PATHS} ) if(PC_ORC_VERSION) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrFindPaths.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrFindPaths.cmake new file mode 100644 index 000000000..6ce8d50f1 --- /dev/null +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrFindPaths.cmake @@ -0,0 +1,80 @@ +# 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(VOLK_GNSSSDR_LIB_PATHS) + return() +endif() + +if(NOT CMAKE_INSTALL_LIBDIR) + include(GNUInstallDirs) +endif() + +set(VOLK_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(VOLK_GNSSSDR_INCLUDE_PATHS + /usr/include + /usr/local/include + ${CMAKE_INSTALL_FULL_INCLUDEDIR} + ${CMAKE_SYSTEM_PREFIX_PATH}/include + ${CMAKE_INSTALL_PREFIX}/include +) + +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + if(NOT MACOS_PACKAGES_PREFIX) + include(DetectMacOSPackaging) + endif() + set(VOLK_GNSSSDR_LIB_PATHS + ${VOLK_GNSSSDR_LIB_PATHS} + ${MACOS_PACKAGES_PREFIX}/${CMAKE_INSTALL_LIBDIR} + ${MACOS_PACKAGES_PREFIX}/lib + ${MACOS_PACKAGES_PREFIX}/lib64 + ) + set(VOLK_GNSSSDR_INCLUDE_PATHS ${VOLK_GNSSSDR_INCLUDE_PATHS} + ${MACOS_PACKAGES_PREFIX}/include + ~/Library/Frameworks + /Library/Frameworks + /sw/include # Fink + /opt/csw/include # Blastwave + ) +endif() + +list(REMOVE_DUPLICATES VOLK_GNSSSDR_LIB_PATHS) +list(REMOVE_DUPLICATES VOLK_GNSSSDR_INCLUDE_PATHS) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index c58266231..a5e68b546 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -120,13 +120,8 @@ if(NOT VOLKGNSSSDR_FOUND) ) endif() -find_program(GZIP - gzip - /bin - /usr/bin - /usr/local/bin - /opt/local/bin - /sbin +find_program(GZIP gzip + ${GNSSSDR_BIN_PATHS} ) if(NOT GZIP_NOTFOUND) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 78171ae9d..4d93fcf01 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -318,7 +318,7 @@ if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) GIT_TAG ${GNSSSDR_GNSS_SIM_LOCAL_VERSION} SOURCE_DIR ${GNSSSDR_BINARY_DIR}/thirdparty/gnss-sim BINARY_DIR ${GNSSSDR_BINARY_DIR}/gnss-sim - CMAKE_ARGS ${GTEST_COMPILER} ${TOOLCHAIN_ARG} ${CROSS_INSTALL_DIR} ${TOOLCHAIN_ARG_GNSS_SIM} + CMAKE_ARGS ${GTEST_COMPILER} ${TOOLCHAIN_ARG} ${CROSS_INSTALL_DIR} ${TOOLCHAIN_ARG_GNSS_SIM} -DBoost_DIR=${Boost_DIR} BUILD_COMMAND ${GNSS_SIM_BUILD_COMMAND} UPDATE_COMMAND "" PATCH_COMMAND "" diff --git a/utils/front-end-cal/CMakeLists.txt b/utils/front-end-cal/CMakeLists.txt index 8e328b089..1dd300b1f 100644 --- a/utils/front-end-cal/CMakeLists.txt +++ b/utils/front-end-cal/CMakeLists.txt @@ -1,7 +1,7 @@ # GNSS-SDR is a Global Navigation Satellite System software-defined receiver. # This file is part of GNSS-SDR. # -# SPDX-FileCopyrightText: 2010-2020 C. Fernandez-Prades cfernandez(at)cttc.es +# SPDX-FileCopyrightText: 2010-2025 C. Fernandez-Prades cfernandez(at)cttc.es # SPDX-License-Identifier: BSD-3-Clause @@ -140,11 +140,7 @@ install(TARGETS front-end-cal ) find_program(GZIP gzip - /bin - /usr/bin - /usr/local/bin - /opt/local/bin - /sbin + ${GNSSSDR_BIN_PATHS} ) if(NOT GZIP_NOTFOUND) diff --git a/utils/rinex2assist/CMakeLists.txt b/utils/rinex2assist/CMakeLists.txt index 277a924b1..6337b9319 100644 --- a/utils/rinex2assist/CMakeLists.txt +++ b/utils/rinex2assist/CMakeLists.txt @@ -54,9 +54,7 @@ if(CMAKE_VERSION VERSION_LESS 3.5) endif() find_program(UNCOMPRESS_EXECUTABLE uncompress - PATHS /bin - /usr/bin - /usr/sbin + PATHS ${GNSSSDR_BIN_PATHS} ) if(TARGET Boost::iostreams AND TARGET Boost::serialization)