diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba83d3762..7b8fe91e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -590,10 +590,18 @@ endif()
find_package(GOOGLETEST)
set_package_properties(GOOGLETEST PROPERTIES
URL "https://github.com/google/googletest"
- DESCRIPTION "Source code of Google's Testing Framework"
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}'."
@@ -1002,10 +1010,18 @@ if(NOT VOLKGNSSSDR_FOUND)
find_package(ORC)
set_package_properties(ORC PROPERTIES
URL "https://gstreamer.freedesktop.org/modules/orc.html"
- DESCRIPTION "The Optimized Inner Loops Runtime Compiler"
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 "")
@@ -1615,10 +1631,18 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS
find_package(ZLIB)
set_package_properties(ZLIB PROPERTIES
URL "https://www.zlib.net/"
- DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
PURPOSE "Required to build Matio."
TYPE REQUIRED
)
+ if(ZLIB_FOUND AND ZLIB_VERSION_STRING)
+ set_package_properties(ZLIB PROPERTIES
+ DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library (found: ${ZLIB_VERSION_STRING})"
+ )
+ else()
+ set_package_properties(ZLIB PROPERTIES
+ DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
+ )
+ endif()
if(ZLIB_FOUND)
get_filename_component(ZLIB_BASE_DIR ${ZLIB_INCLUDE_DIRS} DIRECTORY)
if(OS_IS_LINUX)
@@ -1658,10 +1682,18 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS
find_package(HDF5)
set_package_properties(HDF5 PROPERTIES
URL "https://support.hdfgroup.org/HDF5/"
- DESCRIPTION "A versatile data model, a portable file format and a software library"
PURPOSE "Required to build Matio."
TYPE REQUIRED
)
+ if(HDF5_FOUND AND HDF5_VERSION)
+ set_package_properties(HDF5 PROPERTIES
+ DESCRIPTION "A versatile data model, a portable file format and a software library (found: ${HDF5_VERSION})"
+ )
+ else()
+ set_package_properties(HDF5 PROPERTIES
+ DESCRIPTION "A versatile data model, a portable file format and a software library"
+ )
+ endif()
if(HDF5_FOUND)
list(GET HDF5_LIBRARIES 0 HDF5_FIRST_DIR)
get_filename_component(HDF5_BASE_DIR2 ${HDF5_FIRST_DIR} DIRECTORY)
@@ -2056,10 +2088,18 @@ endif()
find_package(Doxygen)
set_package_properties(Doxygen PROPERTIES
URL "http://www.doxygen.nl"
- DESCRIPTION "Generates documentation from annotated C++ sources"
PURPOSE "Used to generate code documentation by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'"
TYPE OPTIONAL
)
+if(DOXYGEN_FOUND AND DOXYGEN_VERSION)
+ set_package_properties(Doxygen PROPERTIES
+ DESCRIPTION "Generates documentation from annotated C++ sources (found: v${DOXYGEN_VERSION})"
+ )
+else()
+ set_package_properties(Doxygen PROPERTIES
+ DESCRIPTION "Generates documentation from annotated C++ sources"
+ )
+endif()
find_package(LATEX)
set_package_properties(LATEX PROPERTIES
URL "https://www.latex-project.org"
@@ -2193,10 +2233,19 @@ endif()
find_package(PCAP)
set_package_properties(PCAP PROPERTIES
URL "https://www.tcpdump.org"
- DESCRIPTION "A portable C/C++ library for network traffic capture"
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.")
message(STATUS " You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ..'")
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index 2ac5ab7fb..c702d4a04 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -41,6 +41,7 @@ else()
set(LIB_PATHS ${GLOG_ROOT} ${GLOG_ROOT}/lib)
endif()
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_GLOG libglog)
diff --git a/cmake/Modules/FindGNURADIO.cmake b/cmake/Modules/FindGNURADIO.cmake
index 39bc0fcd2..1ed44391f 100644
--- a/cmake/Modules/FindGNURADIO.cmake
+++ b/cmake/Modules/FindGNURADIO.cmake
@@ -19,6 +19,7 @@
# Find GNU Radio
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
include(FindPackageHandleStandardArgs)
diff --git a/cmake/Modules/FindGOOGLETEST.cmake b/cmake/Modules/FindGOOGLETEST.cmake
index 4544f5127..462864449 100644
--- a/cmake/Modules/FindGOOGLETEST.cmake
+++ b/cmake/Modules/FindGOOGLETEST.cmake
@@ -26,6 +26,9 @@
# LIBGTEST_DEV_DIR
# GTEST_INCLUDE_DIRS
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
+include(FindPkgConfig)
+pkg_check_modules(PC_GTEST gtest)
find_path(LIBGTEST_DEV_DIR
NAMES src/gtest-all.cc
@@ -33,6 +36,7 @@ find_path(LIBGTEST_DEV_DIR
${GTEST_DIR}
${GTEST_DIR}/googletest
/usr/src/googletest/googletest
+ /usr/local/src/googletest/googletest
/usr/src/gtest
/usr/include/gtest
/opt/local/src/gtest-1.7.0
@@ -44,8 +48,14 @@ find_path(GTEST_INCLUDE_DIRS
${GTEST_DIR}/googletest/include
/usr/include
/opt/local/src/gtest-1.7.0/include
+ ${PC_GTEST_INCLUDEDIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GOOGLETEST DEFAULT_MSG LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS)
+
+if(GOOGLETEST_FOUND AND PC_GTEST_VERSION)
+ set(GOOGLETEST_VERSION ${PC_GTEST_VERSION})
+endif()
+
mark_as_advanced(LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS)
diff --git a/cmake/Modules/FindGPSTK.cmake b/cmake/Modules/FindGPSTK.cmake
index 1959c3ff6..b0024f333 100644
--- a/cmake/Modules/FindGPSTK.cmake
+++ b/cmake/Modules/FindGPSTK.cmake
@@ -44,10 +44,21 @@ find_library(GPSTK_LIBRARY NAMES ${GPSTK_NAMES}
$ENV{GPSTK_ROOT}/${CMAKE_INSTALL_LIBDIR}
)
-# handle the QUIETLY and REQUIRED arguments and set GPSTK_FOUND to TRUE if
+# handle the QUIET and REQUIRED arguments and set GPSTK_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GPSTK DEFAULT_MSG GPSTK_LIBRARY GPSTK_INCLUDE_DIR)
+
+if(GPSTK_FOUND)
+ if(EXISTS ${CMAKE_INSTALL_FULL_DATADIR}/cmake/GPSTK/GPSTKConfigVersion.cmake)
+ include(${CMAKE_INSTALL_FULL_DATADIR}/cmake/GPSTK/GPSTKConfigVersion.cmake)
+ endif()
+ if(PACKAGE_VERSION)
+ set(GPSTK_VERSION ${PACKAGE_VERSION})
+ endif()
+ unset(PACKAGE_VERSION)
+endif()
+
mark_as_advanced(GPSTK_LIBRARY GPSTK_INCLUDE_DIR)
if(GPSTK_FOUND AND NOT TARGET Gpstk::gpstk)
diff --git a/cmake/Modules/FindGRDBFCTTC.cmake b/cmake/Modules/FindGRDBFCTTC.cmake
index 64c838af1..81cd9869b 100644
--- a/cmake/Modules/FindGRDBFCTTC.cmake
+++ b/cmake/Modules/FindGRDBFCTTC.cmake
@@ -19,6 +19,7 @@
# Find GR-DBFCTTC Module
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_GR_DBFCTTC gr-dbfcttc)
diff --git a/cmake/Modules/FindGRGN3S.cmake b/cmake/Modules/FindGRGN3S.cmake
index 4664a6edb..8b407544b 100644
--- a/cmake/Modules/FindGRGN3S.cmake
+++ b/cmake/Modules/FindGRGN3S.cmake
@@ -19,6 +19,7 @@
# Find GR-GN3S Module
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_GR_GN3S gr-gn3s)
diff --git a/cmake/Modules/FindGRIIO.cmake b/cmake/Modules/FindGRIIO.cmake
index 720313b15..1baf6fc6c 100644
--- a/cmake/Modules/FindGRIIO.cmake
+++ b/cmake/Modules/FindGRIIO.cmake
@@ -20,7 +20,7 @@
# Gnuradio::iio
#
-
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_IIO gnuradio-iio)
diff --git a/cmake/Modules/FindGROSMOSDR.cmake b/cmake/Modules/FindGROSMOSDR.cmake
index e655a20d8..25a2763f2 100644
--- a/cmake/Modules/FindGROSMOSDR.cmake
+++ b/cmake/Modules/FindGROSMOSDR.cmake
@@ -39,6 +39,7 @@
#
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(GROSMOSDR_PKG gnuradio-osmosdr)
diff --git a/cmake/Modules/FindLIBIIO.cmake b/cmake/Modules/FindLIBIIO.cmake
index 4c94bb9dd..dddf7e750 100644
--- a/cmake/Modules/FindLIBIIO.cmake
+++ b/cmake/Modules/FindLIBIIO.cmake
@@ -20,6 +20,7 @@
# Iio::iio
#
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_LIBIIO libiio)
diff --git a/cmake/Modules/FindLIBOSMOSDR.cmake b/cmake/Modules/FindLIBOSMOSDR.cmake
index 5db152d21..7ecf41a61 100644
--- a/cmake/Modules/FindLIBOSMOSDR.cmake
+++ b/cmake/Modules/FindLIBOSMOSDR.cmake
@@ -32,6 +32,7 @@
# Osmosdr::osmosdr
#
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(LIBOSMOSDR_PKG libosmosdr)
diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake
index fea12b98f..e2b2ef4e8 100644
--- a/cmake/Modules/FindORC.cmake
+++ b/cmake/Modules/FindORC.cmake
@@ -15,7 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with GNSS-SDR. If not, see .
-find_package(PkgConfig)
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
+include(FindPkgConfig)
pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22")
find_program(ORCC_EXECUTABLE orcc
@@ -63,6 +64,10 @@ find_library(ORC_LIB orc-0.4
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
)
+if(PC_ORC_VERSION)
+ set(ORC_VERSION ${PC_ORC_VERSION})
+endif()
+
list(APPEND ORC_LIBRARY ${ORC_LIB})
set(ORC_INCLUDE_DIRS ${ORC_INCLUDE_DIR})
diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake
index f6f806817..100ebbf48 100644
--- a/cmake/Modules/FindPCAP.cmake
+++ b/cmake/Modules/FindPCAP.cmake
@@ -48,6 +48,10 @@
# Pcap::pcap
#
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
+include(FindPkgConfig)
+pkg_check_modules(PC_PCAP libpcap)
+
if(EXISTS $ENV{PCAPDIR})
find_path(PCAP_INCLUDE_DIR
NAMES
@@ -57,6 +61,7 @@ if(EXISTS $ENV{PCAPDIR})
$ENV{PCAPDIR}
${PCAP_ROOT}/include
$ENV{PCAP_ROOT}/include
+ ${PC_PCAP_INCLUDEDIR}
NO_DEFAULT_PATH
)
find_library(PCAP_LIBRARY
@@ -66,6 +71,7 @@ if(EXISTS $ENV{PCAPDIR})
$ENV{PCAPDIR}
${PCAP_ROOT}/lib
$ENV{PCAP_ROOT}/lib
+ ${PC_PCAP_LIBDIR}
NO_DEFAULT_PATH
)
else()
@@ -76,6 +82,7 @@ else()
HINTS
${PCAP_ROOT}/include
$ENV{PCAP_ROOT}/include
+ ${PC_PCAP_INCLUDEDIR}
)
find_library(PCAP_LIBRARY
NAMES
@@ -83,6 +90,7 @@ else()
HINTS
${PCAP_ROOT}/lib
$ENV{PCAP_ROOT}/lib
+ ${PC_PCAP_LIBDIR}
)
endif()
@@ -103,8 +111,13 @@ endif()
#Functions
include(CheckFunctionExists)
+include(CheckVariableExists)
+
+set(OLD_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
+set(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${PCAP_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES})
+check_variable_exists("pcap_version" HAVE_PCAP_VERSION)
check_function_exists("pcap_breakloop" HAVE_PCAP_BREAKLOOP)
check_function_exists("pcap_datalink_name_to_val" HAVE_PCAP_DATALINK_NAME_TO_VAL)
check_function_exists("pcap_datalink_val_to_name" HAVE_PCAP_DATALINK_VAL_TO_NAME)
@@ -115,10 +128,21 @@ check_function_exists("pcap_lib_version" HAVE_PCAP_LIB_VERSION)
check_function_exists("pcap_list_datalinks" HAVE_PCAP_LIST_DATALINKS)
check_function_exists("pcap_open_dead" HAVE_PCAP_OPEN_DEAD)
check_function_exists("pcap_set_datalink" HAVE_PCAP_SET_DATALINK)
+set(CMAKE_REQUIRED_INCLUDES ${OLD_CMAKE_REQUIRED_INCLUDES})
+set(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PCAP DEFAULT_MSG PCAP_INCLUDE_DIRS PCAP_LIBRARIES)
+if(${HAVE_PCAP_VERSION})
+ set(PCAP_VERSION ${HAVE_PCAP_VERSION})
+endif()
+if(NOT PCAP_VERSION)
+ if(PC_PCAP_VERSION)
+ set(PCAP_VERSION ${PC_PCAP_VERSION})
+ endif()
+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 2868b63bd..95c8d3273 100644
--- a/cmake/Modules/FindPUGIXML.cmake
+++ b/cmake/Modules/FindPUGIXML.cmake
@@ -27,6 +27,7 @@
# Pugixml::pugixml
#
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_PUGIXML pugixml QUIET)
diff --git a/cmake/Modules/FindTELEORBIT.cmake b/cmake/Modules/FindTELEORBIT.cmake
index bdb3d861c..a99cab845 100644
--- a/cmake/Modules/FindTELEORBIT.cmake
+++ b/cmake/Modules/FindTELEORBIT.cmake
@@ -15,6 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with GNSS-SDR. If not, see .
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_TELEORBIT teleorbit)
diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake
index 286a1cacb..81e3879b9 100644
--- a/cmake/Modules/FindUHD.cmake
+++ b/cmake/Modules/FindUHD.cmake
@@ -23,6 +23,7 @@
########################################################################
# Find the library for the USRP Hardware Driver
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_UHD uhd)
diff --git a/cmake/Modules/FindVOLK.cmake b/cmake/Modules/FindVOLK.cmake
index e788e509c..e04afd1ca 100644
--- a/cmake/Modules/FindVOLK.cmake
+++ b/cmake/Modules/FindVOLK.cmake
@@ -24,6 +24,7 @@
# Find VOLK (Vector-Optimized Library of Kernels)
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_VOLK volk QUIET)
diff --git a/cmake/Modules/FindVOLKGNSSSDR.cmake b/cmake/Modules/FindVOLKGNSSSDR.cmake
index 57abd1d99..7f0ab1ff3 100644
--- a/cmake/Modules/FindVOLKGNSSSDR.cmake
+++ b/cmake/Modules/FindVOLKGNSSSDR.cmake
@@ -25,6 +25,7 @@
# Find VOLK (Vector-Optimized Library of Kernels) GNSS-SDR library
########################################################################
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_VOLK_GNSSSDR volk_gnsssdr)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 12f65f0fd..e03a45db8 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -172,10 +172,18 @@ if(GNUPLOT_FOUND)
endif()
set_package_properties(Gnuplot PROPERTIES
URL "http://www.gnuplot.info"
- DESCRIPTION "A portable command-line driven graphing utility"
PURPOSE "Used to generate plots in some tests."
TYPE OPTIONAL
)
+if(GNUPLOT_FOUND AND GNUPLOT_VERSION_STRING)
+ set_package_properties(Gnuplot PROPERTIES
+ DESCRIPTION "A portable command-line driven graphing utility (found: v${GNUPLOT_VERSION_STRING})"
+ )
+else()
+ set_package_properties(Gnuplot PROPERTIES
+ DESCRIPTION "A portable command-line driven graphing utility"
+ )
+endif()
if(ENABLE_UNIT_TESTING_MINIMAL)
add_definitions(-DUNIT_TESTING_MINIMAL=1)
@@ -191,10 +199,19 @@ 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"
- DESCRIPTION "Library and suite of applications for satellite navigation"
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)
set(CROSS_INSTALL_DIR "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")