From 25154ec0661014bfae721c21dee4f013676e795b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 19 Jun 2019 23:42:46 +0200 Subject: [PATCH] Add more package version identifications --- CMakeLists.txt | 54 +++++++++++++++++++++++++----- cmake/Modules/FindGOOGLETEST.cmake | 10 ++++++ cmake/Modules/FindORC.cmake | 7 +++- src/tests/CMakeLists.txt | 10 +++++- 4 files changed, 71 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38a4f6d62..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" @@ -2205,9 +2245,7 @@ else() DESCRIPTION "A portable C/C++ library for network traffic capture" ) endif() -if(PCAP_FOUND) - set(ENABLE_RAW_UDP ON) -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/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/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/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 3cb9382e3..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)