From 12e26fe3186497f09f3ffbadf5ac3aba1bcea410 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 21 Jun 2019 02:49:41 +0200 Subject: [PATCH] Move package DESCRIPTION and URL data to CMake modules --- CMakeLists.txt | 166 ++-------------------------- cmake/Modules/FindGFLAGS.cmake | 20 ++++ cmake/Modules/FindGFORTRAN.cmake | 9 ++ cmake/Modules/FindGLOG.cmake | 18 +++ cmake/Modules/FindGNURADIO.cmake | 15 +++ cmake/Modules/FindGOOGLETEST.cmake | 15 +++ cmake/Modules/FindGPERFTOOLS.cmake | 9 ++ cmake/Modules/FindGPSTK.cmake | 18 +++ cmake/Modules/FindGRIIO.cmake | 17 +++ cmake/Modules/FindGROSMOSDR.cmake | 17 +++ cmake/Modules/FindLIBIIO.cmake | 18 +++ cmake/Modules/FindLOG4CPP.cmake | 18 +++ cmake/Modules/FindMATIO.cmake | 18 +++ cmake/Modules/FindOPENCL.cmake | 9 ++ cmake/Modules/FindORC.cmake | 18 +++ cmake/Modules/FindPCAP.cmake | 18 +++ cmake/Modules/FindPUGIXML.cmake | 18 +++ cmake/Modules/FindUHD.cmake | 18 +++ cmake/Modules/FindVOLK.cmake | 17 +++ cmake/Modules/FindVOLKGNSSSDR.cmake | 7 ++ src/tests/CMakeLists.txt | 10 -- 21 files changed, 307 insertions(+), 166 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b8fe91e0..a995094f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -589,19 +589,9 @@ endif() find_package(GOOGLETEST) set_package_properties(GOOGLETEST PROPERTIES - URL "https://github.com/google/googletest" PURPOSE "Used for Unit and System Tests." TYPE REQUIRED ) -if(GOOGLETEST_FOUND AND GOOGLETEST_VERSION) - set_package_properties(GOOGLETEST PROPERTIES - DESCRIPTION "Source code of Google's Testing Framework (found: ${GOOGLETEST_VERSION})" - ) -else() - set_package_properties(GOOGLETEST PROPERTIES - DESCRIPTION "Source code of Google's Testing Framework" - ) -endif() if(NOT GOOGLETEST_FOUND) set_package_properties(GOOGLETEST PROPERTIES PURPOSE "Googletest v${GNSSSDR_GTEST_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." @@ -617,38 +607,19 @@ set(GR_REQUIRED_COMPONENTS RUNTIME PMT BLOCKS FFT FILTER ANALOG) find_package(UHD) set_package_properties(UHD PROPERTIES - URL "https://www.ettus.com/sdr-software/detail/usrp-hardware-driver" PURPOSE "Used for communication with front-ends of the USRP family." TYPE OPTIONAL ) if(ENABLE_UHD) if(NOT UHD_FOUND) set(ENABLE_UHD OFF) - set_package_properties(UHD PROPERTIES - DESCRIPTION "USRP Hardware Driver" - ) else() set(GR_REQUIRED_COMPONENTS ${GR_REQUIRED_COMPONENTS} UHD) - if(UHD_VERSION) - set_package_properties(UHD PROPERTIES - DESCRIPTION "USRP Hardware Driver (found: v${UHD_VERSION})" - ) - else() - set_package_properties(UHD PROPERTIES - DESCRIPTION "USRP Hardware Driver" - ) - endif() endif() -else() - set_package_properties(UHD PROPERTIES - DESCRIPTION "USRP Hardware Driver" - ) endif() find_package(GNURADIO) set_package_properties(GNURADIO PROPERTIES - URL "https://www.gnuradio.org/" - DESCRIPTION "The free and open software radio ecosystem (found: v${GNURADIO_VERSION})" PURPOSE "Implements flowgraph scheduler, provides some processing blocks and classes to create new ones." TYPE REQUIRED ) @@ -660,8 +631,6 @@ set_package_properties(GNURADIO PROPERTIES ################################################################################ find_package(LOG4CPP) set_package_properties(LOG4CPP PROPERTIES - URL "http://log4cpp.sourceforge.net/" - DESCRIPTION "Library of C++ classes for flexible logging to files" PURPOSE "Required by GNU Radio." TYPE REQUIRED ) @@ -836,19 +805,9 @@ if(NOT VOLK_FOUND) message(FATAL_ERROR "*** VOLK is required to build gnss-sdr") endif() set_package_properties(VOLK PROPERTIES - URL "http://libvolk.org" PURPOSE "Provides an abstraction of optimized math routines targeting several SIMD processors." TYPE REQUIRED ) -if(VOLK_VERSION) - set_package_properties(VOLK PROPERTIES - DESCRIPTION "Vector-Optimized Library of Kernels (found: ${VOLK_VERSION})" - ) -else() - set_package_properties(VOLK PROPERTIES - DESCRIPTION "Vector-Optimized Library of Kernels" - ) -endif() @@ -857,7 +816,6 @@ endif() ################################################################################ find_package(VOLKGNSSSDR) set_package_properties(VOLKGNSSSDR PROPERTIES - DESCRIPTION "Vector-Optimized Library of Kernels for GNSS-SDR." PURPOSE "Accelerates math routines targeting several SIMD processors." TYPE REQUIRED ) @@ -1009,19 +967,10 @@ if(NOT VOLKGNSSSDR_FOUND) endif() find_package(ORC) set_package_properties(ORC PROPERTIES - URL "https://gstreamer.freedesktop.org/modules/orc.html" PURPOSE "Used by volk_gnsssdr." TYPE OPTIONAL ) - if(ORC_FOUND AND ORC_VERSION) - set_package_properties(ORC PROPERTIES - DESCRIPTION "The Optimized Inner Loops Runtime Compiler (found: v${ORC_VERSION})" - ) - else() - set_package_properties(ORC PROPERTIES - DESCRIPTION "The Optimized Inner Loops Runtime Compiler" - ) - endif() + if(NOT ORC_FOUND) set(ORC_LIBRARIES "") set(ORC_INCLUDE_DIRS "") @@ -1076,14 +1025,10 @@ endif() set(LOCAL_GFLAGS false) find_package(GFLAGS) set_package_properties(GFLAGS PROPERTIES - URL "https://github.com/gflags/gflags" PURPOSE "Used for commandline flags management." TYPE REQUIRED ) if(NOT GFLAGS_FOUND) - set_package_properties(GFLAGS PROPERTIES - DESCRIPTION "C++ library that implements commandline flags processing" - ) message(STATUS " gflags library has not been found.") message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built automatically ") message(STATUS " when doing 'make'.") @@ -1142,16 +1087,6 @@ if(NOT GFLAGS_FOUND) set_package_properties(GFLAGS PROPERTIES PURPOSE "Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) -else() - if(GFLAGS_VERSION) - set_package_properties(GFLAGS PROPERTIES - DESCRIPTION "C++ library that implements commandline flags processing (found: v${GFLAGS_VERSION})" - ) - else() - set_package_properties(GFLAGS PROPERTIES - DESCRIPTION "C++ library that implements commandline flags processing" - ) - endif() endif() @@ -1166,14 +1101,10 @@ if(NOT ${ENABLE_OWN_GLOG}) endif() endif() set_package_properties(GLOG PROPERTIES - URL "https://github.com/google/glog" PURPOSE "Used for runtime internal logging." TYPE REQUIRED ) if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS}) - set_package_properties(GLOG PROPERTIES - DESCRIPTION "C++ implementation of the Google logging module" - ) message(STATUS " glog library has not been found") if(NOT GFLAGS_FOUND) message(STATUS " or it is likely not linked to gflags.") @@ -1330,16 +1261,6 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c set_package_properties(GLOG PROPERTIES PURPOSE "Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built when doing 'make'." ) -else() - if(GLOG_VERSION) - set_package_properties(GLOG PROPERTIES - DESCRIPTION "C++ implementation of the Google logging module (found: v${GLOG_VERSION})" - ) - else() - set_package_properties(GLOG PROPERTIES - DESCRIPTION "C++ implementation of the Google logging module" - ) - endif() endif() if(NOT ENABLE_LOG) @@ -1453,8 +1374,6 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) if(NOT OS_IS_MACOSX) find_package(GFORTRAN) set_package_properties(GFORTRAN PROPERTIES - URL "http://gcc.gnu.org/wiki/GFortran" - DESCRIPTION "GNU Fortran project" PURPOSE "Required by Armadillo." TYPE REQUIRED ) @@ -1533,10 +1452,18 @@ endif() find_package(GnuTLS) set_package_properties(GnuTLS PROPERTIES URL "https://www.gnutls.org/" - DESCRIPTION "Transport Layer Security Library" PURPOSE "Used for the SUPL protocol implementation." 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 HINTS /usr/lib /usr/lib64 @@ -1615,7 +1542,6 @@ endif() ################################################################################ find_package(MATIO) set_package_properties(MATIO PROPERTIES - URL "https://github.com/tbeu/matio" PURPOSE "Used to store processing block's results in MAT files readable from MATLAB/Octave." TYPE REQUIRED ) @@ -1625,9 +1551,6 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS endif() message(STATUS " Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built automatically") message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") - set_package_properties(MATIO PROPERTIES - DESCRIPTION "MATLAB MAT File I/O Library" - ) find_package(ZLIB) set_package_properties(ZLIB PROPERTIES URL "https://www.zlib.net/" @@ -1774,10 +1697,6 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS set_package_properties(MATIO PROPERTIES PURPOSE "Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) -else() - set_package_properties(MATIO PROPERTIES - DESCRIPTION "MATLAB MAT File I/O Library (found: v${MATIO_VERSION_STRING})" - ) endif() @@ -1787,14 +1706,10 @@ endif() ################################################################################ find_package(PUGIXML) set_package_properties(PUGIXML PROPERTIES - URL "https://pugixml.org/" PURPOSE "Used to handle Galileo almanac XML files published by the European GNSS Service Centre." TYPE REQUIRED ) if(NOT PUGIXML_FOUND) - set_package_properties(PUGIXML PROPERTIES - DESCRIPTION "Light-weight, simple and fast XML parser for C++" - ) message(STATUS " PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") set(PUGIXML_COMPILER -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}) set(TOOLCHAIN_ARG "") @@ -1844,16 +1759,6 @@ if(NOT PUGIXML_FOUND) set_package_properties(PUGIXML PROPERTIES PURPOSE "PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." ) -else() - if(PUGIXML_VERSION) - set_package_properties(PUGIXML PROPERTIES - DESCRIPTION "Light-weight, simple and fast XML parser for C++ (found: ${PUGIXML_VERSION})" - ) - else() - set_package_properties(PUGIXML PROPERTIES - DESCRIPTION "Light-weight, simple and fast XML parser for C++" - ) - endif() endif() @@ -2171,8 +2076,6 @@ endif() ################################################################################ find_package(OPENCL QUIET) set_package_properties(OPENCL PROPERTIES - URL "https://www.khronos.org/opencl/" - DESCRIPTION "Library for parallel programming" PURPOSE "Used in some processing block implementations." TYPE OPTIONAL ) @@ -2232,19 +2135,9 @@ endif() ################################################################################ find_package(PCAP) set_package_properties(PCAP PROPERTIES - URL "https://www.tcpdump.org" PURPOSE "Used for the custom UDP IP packet source." TYPE OPTIONAL ) -if(PCAP_FOUND AND PCAP_VERSION) - set_package_properties(PCAP PROPERTIES - DESCRIPTION "A portable C/C++ library for network traffic capture (found: ${PCAP_VERSION})" - ) -else() - set_package_properties(PCAP PROPERTIES - DESCRIPTION "A portable C/C++ library for network traffic capture" - ) -endif() if(ENABLE_RAW_UDP) message(STATUS "High-optimized custom UDP IP packet source is enabled.") @@ -2284,7 +2177,6 @@ endif() find_package(GROSMOSDR) set_package_properties(GROSMOSDR PROPERTIES - URL "https://osmocom.org/projects/gr-osmosdr/wiki" PURPOSE "Used for communication with OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based dongles, etc.)." TYPE OPTIONAL ) @@ -2292,19 +2184,7 @@ if(ENABLE_OSMOSDR) if(GROSMOSDR_FOUND) message(STATUS "The driver for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based dongles, etc.) will be compiled.") message(STATUS " You can disable it with 'cmake -DENABLE_OSMOSDR=OFF ..'") - if(GROSMOSDR_VERSION) - set_package_properties(GROSMOSDR PROPERTIES - DESCRIPTION "osmocom GNU Radio blocks (found: ${GROSMOSDR_VERSION})" - ) - else() - set_package_properties(GROSMOSDR PROPERTIES - DESCRIPTION "osmocom GNU Radio blocks" - ) - endif() else() - set_package_properties(GROSMOSDR PROPERTIES - DESCRIPTION "osmocom GNU Radio blocks" - ) if(ENABLE_PACKAGING) message(WARNING "gr-osmosdr has not been found. Source blocks depending on it will NOT be built.") else() @@ -2312,9 +2192,6 @@ if(ENABLE_OSMOSDR) endif() endif() else() - set_package_properties(GROSMOSDR PROPERTIES - DESCRIPTION "osmocom GNU Radio blocks" - ) message(STATUS "The (optional) driver for OsmoSDR and related front-ends is not enabled.") message(STATUS " Enable it with 'cmake -DENABLE_OSMOSDR=ON ..' to add support for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based USB dongles, etc.)") endif() @@ -2327,20 +2204,9 @@ endif() ############################################## find_package(GRIIO) set_package_properties(GRIIO PROPERTIES - URL "https://github.com/analogdevicesinc/gr-iio" PURPOSE "Used for communication with PlutoSDR and FMCOMMS devices." TYPE OPTIONAL ) -if(GRIIO_FOUND AND GRIIO_VERSION) - set_package_properties(GRIIO PROPERTIES - DESCRIPTION "IIO blocks for GNU Radio (found: v${GRIIO_VERSION})" - ) -else() - set_package_properties(GRIIO PROPERTIES - DESCRIPTION "IIO blocks for GNU Radio" - ) -endif() - ##################################################################### @@ -2350,19 +2216,9 @@ endif() ##################################################################### find_package(LIBIIO) set_package_properties(LIBIIO PROPERTIES - URL "https://github.com/analogdevicesinc/libiio" PURPOSE "Used for communication with the AD9361 chipset." TYPE OPTIONAL ) -if(LIBIIO_FOUND AND LIBIIO_VERSION) - set_package_properties(LIBIIO PROPERTIES - DESCRIPTION "A library for interfacing with Linux IIO devices (found: v${LIBIIO_VERSION})" - ) -else() - set_package_properties(LIBIIO PROPERTIES - DESCRIPTION "A library for interfacing with Linux IIO devices" - ) -endif() ############################################## @@ -2457,8 +2313,6 @@ endif() ################################################################################ find_package(GPERFTOOLS) set_package_properties(GPERFTOOLS PROPERTIES - URL "https://github.com/gperftools/gperftools" - DESCRIPTION "Collection of performance analysis tools" PURPOSE "Used for performance analysis." TYPE OPTIONAL ) diff --git a/cmake/Modules/FindGFLAGS.cmake b/cmake/Modules/FindGFLAGS.cmake index ffa302bfe..e4d2c204d 100644 --- a/cmake/Modules/FindGFLAGS.cmake +++ b/cmake/Modules/FindGFLAGS.cmake @@ -31,6 +31,11 @@ # Gflags::gflags # + +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + if(APPLE) find_path(GFlags_ROOT_DIR libgflags.dylib @@ -119,10 +124,25 @@ if(GFLAGS_FOUND) endif() if(PACKAGE_VERSION) set(GFLAGS_VERSION ${PACKAGE_VERSION}) + set_package_properties(GFLAGS PROPERTIES + DESCRIPTION "C++ library that implements commandline flags processing (found: v${GFLAGS_VERSION})" + ) + else() + set_package_properties(GFLAGS PROPERTIES + DESCRIPTION "C++ library that implements commandline flags processing" + ) endif() unset(PACKAGE_VERSION) +else() + set_package_properties(GFLAGS PROPERTIES + DESCRIPTION "C++ library that implements commandline flags processing" + ) endif() +set_package_properties(GFLAGS PROPERTIES + URL "https://github.com/gflags/gflags" +) + if(GFLAGS_FOUND AND NOT TARGET Gflags::gflags) add_library(Gflags::gflags SHARED IMPORTED) set_target_properties(Gflags::gflags PROPERTIES diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake index 395639c9a..af49e3c48 100644 --- a/cmake/Modules/FindGFORTRAN.cmake +++ b/cmake/Modules/FindGFORTRAN.cmake @@ -15,6 +15,10 @@ # You should have received a copy of the GNU General Public License # along with GNSS-SDR. If not, see . +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + find_library(GFORTRAN NAMES gfortran PATHS /usr/lib /usr/lib64 @@ -189,5 +193,10 @@ find_library(GFORTRAN NAMES gfortran $ENV{GFORTRAN_ROOT}/lib ) +set_package_properties(GFORTRAN PROPERTIES + URL "http://gcc.gnu.org/wiki/GFortran" + DESCRIPTION "GNU Fortran library" +) + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GFORTRAN DEFAULT_MSG GFORTRAN) diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake index c702d4a04..50eda3d96 100644 --- a/cmake/Modules/FindGLOG.cmake +++ b/cmake/Modules/FindGLOG.cmake @@ -31,6 +31,10 @@ # Glog::glog # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + if(NOT DEFINED GLOG_ROOT) set(GLOG_ROOT /usr /usr/local) endif() @@ -148,6 +152,20 @@ else() string(REGEX REPLACE "/libglog.so" "" GLOG_LIBRARIES_DIR ${GLOG_LIBRARIES}) endif() +if(GLOG_FOUND AND GLOG_VERSION) + set_package_properties(GLOG PROPERTIES + DESCRIPTION "C++ implementation of the Google logging module (found: v${GLOG_VERSION})" + ) +else() + set_package_properties(GLOG PROPERTIES + DESCRIPTION "C++ implementation of the Google logging module" + ) +endif() + +set_package_properties(GLOG PROPERTIES + URL "https://github.com/google/glog" +) + if(GLOG_FOUND AND NOT TARGET Glog::glog) add_library(Glog::glog SHARED IMPORTED) set_target_properties(Glog::glog PROPERTIES diff --git a/cmake/Modules/FindGNURADIO.cmake b/cmake/Modules/FindGNURADIO.cmake index 1ed44391f..11e173fc9 100644 --- a/cmake/Modules/FindGNURADIO.cmake +++ b/cmake/Modules/FindGNURADIO.cmake @@ -19,6 +19,10 @@ # Find GNU Radio ######################################################################## +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) include(FindPackageHandleStandardArgs) @@ -256,4 +260,15 @@ if(GNURADIO_VERSION) endif() message(FATAL_ERROR "GNU Radio v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr.") endif() + set_package_properties(GNURADIO PROPERTIES + DESCRIPTION "The free and open software radio ecosystem (found: v${GNURADIO_VERSION})" + ) +else() + set_package_properties(GNURADIO PROPERTIES + DESCRIPTION "The free and open software radio ecosystem" + ) endif() + +set_package_properties(GNURADIO PROPERTIES + URL "https://www.gnuradio.org/" +) diff --git a/cmake/Modules/FindGOOGLETEST.cmake b/cmake/Modules/FindGOOGLETEST.cmake index 462864449..669cdfc72 100644 --- a/cmake/Modules/FindGOOGLETEST.cmake +++ b/cmake/Modules/FindGOOGLETEST.cmake @@ -26,6 +26,10 @@ # LIBGTEST_DEV_DIR # GTEST_INCLUDE_DIRS +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_GTEST gtest) @@ -56,6 +60,17 @@ find_package_handle_standard_args(GOOGLETEST DEFAULT_MSG LIBGTEST_DEV_DIR GTEST_ if(GOOGLETEST_FOUND AND PC_GTEST_VERSION) set(GOOGLETEST_VERSION ${PC_GTEST_VERSION}) + set_package_properties(GOOGLETEST PROPERTIES + DESCRIPTION "Source code of Google's Testing Framework (found: ${GOOGLETEST_VERSION})" + ) +else() + set_package_properties(GOOGLETEST PROPERTIES + DESCRIPTION "Source code of Google's Testing Framework" + ) endif() +set_package_properties(GOOGLETEST PROPERTIES + URL "https://github.com/google/googletest" +) + mark_as_advanced(LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS) diff --git a/cmake/Modules/FindGPERFTOOLS.cmake b/cmake/Modules/FindGPERFTOOLS.cmake index 1c778574f..455164b26 100644 --- a/cmake/Modules/FindGPERFTOOLS.cmake +++ b/cmake/Modules/FindGPERFTOOLS.cmake @@ -40,6 +40,10 @@ # Gperftools::gperftools # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + find_library(GPERFTOOLS_TCMALLOC NAMES tcmalloc HINTS ${Gperftools_ROOT_DIR}/lib @@ -124,6 +128,11 @@ if(GPERFTOOLS_FOUND AND NOT TARGET Gperftools::gperftools) ) endif() +set_package_properties(GPERFTOOLS PROPERTIES + URL "https://github.com/gperftools/gperftools" + DESCRIPTION "Collection of performance analysis tools" +) + mark_as_advanced( GPERFTOOLS_TCMALLOC GPERFTOOLS_PROFILER diff --git a/cmake/Modules/FindGPSTK.cmake b/cmake/Modules/FindGPSTK.cmake index b0024f333..5d7d1bb7a 100644 --- a/cmake/Modules/FindGPSTK.cmake +++ b/cmake/Modules/FindGPSTK.cmake @@ -22,6 +22,10 @@ # GPSTK_FOUND, If false, do not try to use GPSTK. # GPSTK_LIBRARY, where to find the GPSTK library. +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + find_path(GPSTK_INCLUDE_DIR gpstk/Rinex3ObsBase.hpp HINTS /usr/include /usr/local/include @@ -59,6 +63,20 @@ if(GPSTK_FOUND) unset(PACKAGE_VERSION) endif() +if(GPSTK_FOUND AND GPSTK_VERSION) + set_package_properties(GPSTK PROPERTIES + DESCRIPTION "Library and suite of applications for satellite navigation (found: v${GPSTK_VERSION})" + ) +else() + set_package_properties(GPSTK PROPERTIES + DESCRIPTION "Library and suite of applications for satellite navigation" + ) +endif() + +set_package_properties(GPSTK PROPERTIES + URL "http://www.gpstk.org" +) + mark_as_advanced(GPSTK_LIBRARY GPSTK_INCLUDE_DIR) if(GPSTK_FOUND AND NOT TARGET Gpstk::gpstk) diff --git a/cmake/Modules/FindGRIIO.cmake b/cmake/Modules/FindGRIIO.cmake index 1baf6fc6c..9ac0af750 100644 --- a/cmake/Modules/FindGRIIO.cmake +++ b/cmake/Modules/FindGRIIO.cmake @@ -20,6 +20,10 @@ # Gnuradio::iio # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_IIO gnuradio-iio) @@ -96,6 +100,19 @@ if(PC_IIO_VERSION) set(GRIIO_VERSION ${PC_IIO_VERSION}) endif() +set_package_properties(GRIIO PROPERTIES + URL "https://github.com/analogdevicesinc/gr-iio" +) +if(GRIIO_FOUND AND GRIIO_VERSION) + set_package_properties(GRIIO PROPERTIES + DESCRIPTION "IIO blocks for GNU Radio (found: v${GRIIO_VERSION})" + ) +else() + set_package_properties(GRIIO PROPERTIES + DESCRIPTION "IIO blocks for GNU Radio" + ) +endif() + if(GRIIO_FOUND AND NOT TARGET Gnuradio::iio) add_library(Gnuradio::iio SHARED IMPORTED) set_target_properties(Gnuradio::iio PROPERTIES diff --git a/cmake/Modules/FindGROSMOSDR.cmake b/cmake/Modules/FindGROSMOSDR.cmake index 777effb57..6bdc4d143 100644 --- a/cmake/Modules/FindGROSMOSDR.cmake +++ b/cmake/Modules/FindGROSMOSDR.cmake @@ -38,6 +38,9 @@ # Gnuradio::osmosdr # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) @@ -100,6 +103,20 @@ if(GROSMOSDR_PKG_VERSION) set(GROSMOSDR_VERSION ${GROSMOSDR_PKG_VERSION}) endif() +set_package_properties(GROSMOSDR PROPERTIES + URL "https://osmocom.org/projects/gr-osmosdr/wiki" +) + +if(GROSMOSDR_FOUND AND GROSMOSDR_VERSION) + set_package_properties(GROSMOSDR PROPERTIES + DESCRIPTION "osmocom GNU Radio blocks (found: ${GROSMOSDR_VERSION})" + ) +else() + set_package_properties(GROSMOSDR PROPERTIES + DESCRIPTION "osmocom GNU Radio blocks" + ) +endif() + if(GROSMOSDR_FOUND AND NOT TARGET Gnuradio::osmosdr) add_library(Gnuradio::osmosdr SHARED IMPORTED) set_target_properties(Gnuradio::osmosdr PROPERTIES diff --git a/cmake/Modules/FindLIBIIO.cmake b/cmake/Modules/FindLIBIIO.cmake index dddf7e750..bbc645450 100644 --- a/cmake/Modules/FindLIBIIO.cmake +++ b/cmake/Modules/FindLIBIIO.cmake @@ -20,6 +20,10 @@ # Iio::iio # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_LIBIIO libiio) @@ -90,6 +94,20 @@ if(PC_LIBIIO_VERSION) set(LIBIIO_VERSION ${PC_LIBIIO_VERSION}) endif() +if(LIBIIO_FOUND AND LIBIIO_VERSION) + set_package_properties(LIBIIO PROPERTIES + DESCRIPTION "A library for interfacing with Linux IIO devices (found: v${LIBIIO_VERSION})" + ) +else() + set_package_properties(LIBIIO PROPERTIES + DESCRIPTION "A library for interfacing with Linux IIO devices" + ) +endif() + +set_package_properties(LIBIIO PROPERTIES + URL "https://github.com/analogdevicesinc/libiio" +) + if(LIBIIO_FOUND AND NOT TARGET Iio::iio) add_library(Iio::iio SHARED IMPORTED) set_target_properties(Iio::iio PROPERTIES diff --git a/cmake/Modules/FindLOG4CPP.cmake b/cmake/Modules/FindLOG4CPP.cmake index 83d6532ac..81de00826 100644 --- a/cmake/Modules/FindLOG4CPP.cmake +++ b/cmake/Modules/FindLOG4CPP.cmake @@ -26,6 +26,10 @@ # Log4cpp::log4cpp # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + if(LOG4CPP_INCLUDE_DIR) # Already in cache, be silent set(LOG4CPP_FIND_QUIETLY TRUE) @@ -107,6 +111,20 @@ endif() 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/" +) + +if(LOG4CPP_FOUND AND LOG4CPP_READY_FOR_CXX17) + set_package_properties(LOG4CPP PROPERTIES + DESCRIPTION "Library of C++ classes for flexible logging to files (the version found is C++17-ready)" + ) +else() + set_package_properties(LOG4CPP PROPERTIES + DESCRIPTION "Library of C++ classes for flexible logging to files" + ) +endif() + if (LOG4CPP_FOUND AND NOT TARGET Log4cpp::log4cpp) add_library(Log4cpp::log4cpp SHARED IMPORTED) set_target_properties(Log4cpp::log4cpp PROPERTIES diff --git a/cmake/Modules/FindMATIO.cmake b/cmake/Modules/FindMATIO.cmake index 623939690..da4a2b017 100644 --- a/cmake/Modules/FindMATIO.cmake +++ b/cmake/Modules/FindMATIO.cmake @@ -62,6 +62,10 @@ #============================================================================= # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + # Look for the header file. find_path(MATIO_INCLUDE_DIR NAMES matio.h @@ -131,6 +135,20 @@ else() set(MATIO_INCLUDE_DIRS) endif() +if(MATIO_FOUND AND MATIO_VERSION_STRING) + set_package_properties(MATIO PROPERTIES + DESCRIPTION "MATLAB MAT File I/O Library (found: v${MATIO_VERSION_STRING})" + ) +else() + set_package_properties(MATIO PROPERTIES + DESCRIPTION "MATLAB MAT File I/O Library" + ) +endif() + +set_package_properties(MATIO PROPERTIES + URL "https://github.com/tbeu/matio" +) + if(MATIO_FOUND AND NOT TARGET Matio::matio) add_library(Matio::matio SHARED IMPORTED) set_target_properties(Matio::matio PROPERTIES diff --git a/cmake/Modules/FindOPENCL.cmake b/cmake/Modules/FindOPENCL.cmake index 988360c29..61e43799d 100644 --- a/cmake/Modules/FindOPENCL.cmake +++ b/cmake/Modules/FindOPENCL.cmake @@ -29,6 +29,10 @@ # # WIN32 should work, but is untested +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + include(FindPackageHandleStandardArgs) set(OPENCL_VERSION_STRING "0.1.0") @@ -101,6 +105,11 @@ mark_as_advanced( OPENCL_INCLUDE_DIRS ) +set_package_properties(OPENCL PROPERTIES + URL "https://www.khronos.org/opencl/" + DESCRIPTION "Library for parallel programming" +) + if(OPENCL_INCLUDE_DIRS AND OPENCL_LIBRARIES) set( OPENCL_FOUND TRUE ) add_definitions( -DOPENCL=1 ) diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake index e2b2ef4e8..353264663 100644 --- a/cmake/Modules/FindORC.cmake +++ b/cmake/Modules/FindORC.cmake @@ -15,6 +15,10 @@ # You should have received a copy of the GNU General Public License # along with GNSS-SDR. If not, see . +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22") @@ -77,4 +81,18 @@ set(ORC_LIBRARY_DIRS ${ORC_LIBRARY_DIR}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ORC "orc files" ORC_LIBRARY ORC_INCLUDE_DIR ORCC_EXECUTABLE) +set_package_properties(ORC PROPERTIES + URL "https://gstreamer.freedesktop.org/modules/orc.html" +) + +if(ORC_FOUND AND ORC_VERSION) + set_package_properties(ORC PROPERTIES + DESCRIPTION "The Optimized Inner Loops Runtime Compiler (found: v${ORC_VERSION})" + ) +else() + set_package_properties(ORC PROPERTIES + DESCRIPTION "The Optimized Inner Loops Runtime Compiler" + ) +endif() + mark_as_advanced(ORC_INCLUDE_DIR ORC_LIBRARY ORCC_EXECUTABLE) diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake index 94350b229..880df6869 100644 --- a/cmake/Modules/FindPCAP.cmake +++ b/cmake/Modules/FindPCAP.cmake @@ -48,6 +48,10 @@ # Pcap::pcap # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_PCAP libpcap) @@ -136,6 +140,20 @@ if(PCAP_FOUND AND PC_PCAP_VERSION) set(PCAP_VERSION ${PC_PCAP_VERSION}) endif() +set_package_properties(PCAP PROPERTIES + URL "https://www.tcpdump.org" +) + +if(PCAP_FOUND AND PCAP_VERSION) + set_package_properties(PCAP PROPERTIES + DESCRIPTION "A portable C/C++ library for network traffic capture (found: ${PCAP_VERSION})" + ) +else() + set_package_properties(PCAP PROPERTIES + DESCRIPTION "A portable C/C++ library for network traffic capture" + ) +endif() + if(PCAP_FOUND AND NOT TARGET Pcap::pcap) add_library(Pcap::pcap SHARED IMPORTED) set_target_properties(Pcap::pcap PROPERTIES diff --git a/cmake/Modules/FindPUGIXML.cmake b/cmake/Modules/FindPUGIXML.cmake index 95c8d3273..bf66cfe86 100644 --- a/cmake/Modules/FindPUGIXML.cmake +++ b/cmake/Modules/FindPUGIXML.cmake @@ -27,6 +27,10 @@ # Pugixml::pugixml # +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_PUGIXML pugixml QUIET) @@ -93,6 +97,20 @@ else() message(STATUS "PugiXML not found.") endif() +set_package_properties(PUGIXML PROPERTIES + URL "https://pugixml.org/" +) + +if(PUGIXML_FOUND AND PUGIXML_VERSION) + set_package_properties(PUGIXML PROPERTIES + DESCRIPTION "Light-weight, simple and fast XML parser for C++ (found: ${PUGIXML_VERSION})" + ) +else() + set_package_properties(PUGIXML PROPERTIES + DESCRIPTION "Light-weight, simple and fast XML parser for C++" + ) +endif() + mark_as_advanced(PUGIXML_LIBRARY PUGIXML_INCLUDE_DIR) if(PUGIXML_FOUND AND NOT TARGET Pugixml::pugixml) diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake index 81e3879b9..b75532472 100644 --- a/cmake/Modules/FindUHD.cmake +++ b/cmake/Modules/FindUHD.cmake @@ -23,6 +23,10 @@ ######################################################################## # Find the library for the USRP Hardware Driver ######################################################################## +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() + set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) pkg_check_modules(PC_UHD uhd) @@ -93,6 +97,20 @@ if(NOT PC_UHD_VERSION) unset(PACKAGE_VERSION) endif() +set_package_properties(UHD PROPERTIES + URL "https://www.ettus.com/sdr-software/detail/usrp-hardware-driver" +) + +if(UHD_FOUND AND UHD_VERSION) + set_package_properties(UHD PROPERTIES + DESCRIPTION "USRP Hardware Driver (found: v${UHD_VERSION})" + ) +else() + set_package_properties(UHD PROPERTIES + DESCRIPTION "USRP Hardware Driver" + ) +endif() + if(UHD_FOUND AND NOT TARGET Uhd::uhd) add_library(Uhd::uhd SHARED IMPORTED) set_target_properties(Uhd::uhd PROPERTIES diff --git a/cmake/Modules/FindVOLK.cmake b/cmake/Modules/FindVOLK.cmake index e04afd1ca..fc35ebdff 100644 --- a/cmake/Modules/FindVOLK.cmake +++ b/cmake/Modules/FindVOLK.cmake @@ -23,6 +23,9 @@ ######################################################################## # Find VOLK (Vector-Optimized Library of Kernels) ######################################################################## +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) @@ -96,6 +99,20 @@ if(NOT VOLK_VERSION) unset(PACKAGE_VERSION) endif() +set_package_properties(VOLK PROPERTIES + URL "http://libvolk.org" +) + +if(VOLK_FOUND AND VOLK_VERSION) + set_package_properties(VOLK PROPERTIES + DESCRIPTION "Vector-Optimized Library of Kernels (found: v${VOLK_VERSION})" + ) +else() + set_package_properties(VOLK PROPERTIES + DESCRIPTION "Vector-Optimized Library of Kernels" + ) +endif() + mark_as_advanced(VOLK_LIBRARIES VOLK_INCLUDE_DIRS VOLK_VERSION) if(VOLK_FOUND AND NOT TARGET Volk::volk) diff --git a/cmake/Modules/FindVOLKGNSSSDR.cmake b/cmake/Modules/FindVOLKGNSSSDR.cmake index 7f0ab1ff3..be5d76d7f 100644 --- a/cmake/Modules/FindVOLKGNSSSDR.cmake +++ b/cmake/Modules/FindVOLKGNSSSDR.cmake @@ -24,6 +24,9 @@ ######################################################################## # Find VOLK (Vector-Optimized Library of Kernels) GNSS-SDR library ######################################################################## +if(NOT COMMAND feature_summary) + include(FeatureSummary) +endif() set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) include(FindPkgConfig) @@ -59,6 +62,10 @@ include(FindPackageHandleStandardArgs) find_package_handle_standard_args(VOLKGNSSSDR DEFAULT_MSG VOLK_GNSSSDR_LIBRARIES VOLK_GNSSSDR_INCLUDE_DIRS) mark_as_advanced(VOLK_GNSSSDR_LIBRARIES VOLK_GNSSSDR_INCLUDE_DIRS) +set_package_properties(VOLKGNSSSDR PROPERTIES + DESCRIPTION "Vector-Optimized Library of Kernels for GNSS-SDR." +) + if(VOLKGNSSSDR_FOUND AND NOT TARGET Volkgnsssdr::volkgnsssdr) add_library(Volkgnsssdr::volkgnsssdr SHARED IMPORTED) diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index e03a45db8..d69924200 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -198,19 +198,9 @@ add_feature_info(ENABLE_GNSS_SIM_INSTALL ENABLE_GNSS_SIM_INSTALL "Enables downlo find_package(GPSTK) set_package_properties(GPSTK PROPERTIES - URL "http://www.gpstk.org" PURPOSE "Used in some Extra Tests." TYPE OPTIONAL ) -if(GPSTK_FOUND AND GPSTK_VERSION) - set_package_properties(GPSTK PROPERTIES - DESCRIPTION "Library and suite of applications for satellite navigation (found: v${GPSTK_VERSION})" - ) -else() - set_package_properties(GPSTK PROPERTIES - DESCRIPTION "Library and suite of applications for satellite navigation" - ) -endif() if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) if(ENABLE_FPGA)