Improve dependency version identification in CMake modules

This commit is contained in:
Carles Fernandez 2019-06-24 00:24:08 +02:00
parent bfae31390f
commit bbe7707282
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
6 changed files with 61 additions and 12 deletions

View File

@ -2242,7 +2242,6 @@ else()
endif()
find_package(TELEORBIT)
set_package_properties(TELEORBIT PROPERTIES
DESCRIPTION "The Teleorbit's Flexiband GNU Radio block."
PURPOSE "Used for communication with the Flexiband front-end."
TYPE OPTIONAL
)

View File

@ -30,6 +30,10 @@ if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_LOG4CPP log4cpp QUIET)
if(LOG4CPP_INCLUDE_DIR)
# Already in cache, be silent
set(LOG4CPP_FIND_QUIETLY TRUE)
@ -41,6 +45,7 @@ find_path(LOG4CPP_INCLUDE_DIR log4cpp/Category.hh
/usr/include
${LOG4CPP_ROOT}/include
$ENV{LOG4CPP_ROOT}/include
${PC_LOG4CPP_INCLUDEDIR}
)
if(LOG4CPP_INCLUDE_DIR)
@ -61,7 +66,7 @@ set(LOG4CPP_NAMES log4cpp)
find_library(LOG4CPP_LIBRARY
NAMES ${LOG4CPP_NAMES}
HINTS $ENV{GNURADIO_RUNTIME_DIR}/lib
${PC_LIBDIR}
${PC_LOG4CPP_LIBDIR}
${CMAKE_INSTALL_PREFIX}/lib/
PATHS /usr/local/lib
/usr/lib/x86_64-linux-gnu
@ -115,13 +120,23 @@ 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)"
)
if(LOG4CPP_FOUND AND PC_LOG4CPP_VERSION)
set(LOG4CPP_VERSION ${PC_LOG4CPP_VERSION})
endif()
if(LOG4CPP_FOUND AND LOG4CPP_VERSION)
if(LOG4CPP_READY_FOR_CXX17)
set_package_properties(LOG4CPP PROPERTIES
DESCRIPTION "Library of C++ classes for flexible logging (found: v${LOG4CPP_VERSION}, C++17-ready)"
)
else()
set_package_properties(LOG4CPP PROPERTIES
DESCRIPTION "Library of C++ classes for flexible logging (found: v${LOG4CPP_VERSION})"
)
endif()
else()
set_package_properties(LOG4CPP PROPERTIES
DESCRIPTION "Library of C++ classes for flexible logging to files"
DESCRIPTION "Library of C++ classes for flexible logging"
)
endif()

View File

@ -54,7 +54,7 @@ endif()
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_PCAP libpcap)
pkg_check_modules(PC_PCAP libpcap QUIET)
if(EXISTS $ENV{PCAPDIR})
find_path(PCAP_INCLUDE_DIR

View File

@ -41,11 +41,14 @@ find_path(PUGIXML_INCLUDE_DIR
/usr/include
/usr/local/include
/usr/local/include/pugixml-1.9
/usr/local/include/pugixml-${PC_PUGIXML_VERSION}
/opt/local/include
${PUGIXML_ROOT}/include
$ENV{PUGIXML_ROOT}/include
${PUGIXML_ROOT}/include/pugixml-1.9
$ENV{PUGIXML_ROOT}/include/pugixml-1.9
${PUGIXML_ROOT}/include/pugixml-${PC_PUGIXML_VERSION}
$ENV{PUGIXML_ROOT}/include/pugixml-${PC_PUGIXML_VERSION}
${PC_PUGIXML_INCLUDEDIR}
)
@ -64,6 +67,7 @@ find_library(PUGIXML_LIBRARY
/usr/lib/s390x-linux-gnu
/usr/local/lib
/usr/local/lib/pugixml-1.9
/usr/local/lib/pugixml-${PC_PUGIXML_VERSION}
/opt/local/lib
/usr/lib
/usr/lib64
@ -76,6 +80,10 @@ find_library(PUGIXML_LIBRARY
$ENV{PUGIXML_ROOT}/lib/pugixml-1.9
${PUGIXML_ROOT}/lib64/pugixml-1.9
$ENV{PUGIXML_ROOT}/lib64/pugixml-1.9
${PUGIXML_ROOT}/lib/pugixml-${PC_PUGIXML_VERSION}
$ENV{PUGIXML_ROOT}/lib/pugixml-${PC_PUGIXML_VERSION}
${PUGIXML_ROOT}/lib64/pugixml-${PC_PUGIXML_VERSION}
$ENV{PUGIXML_ROOT}/lib64/pugixml-${PC_PUGIXML_VERSION}
${PC_PUGIXML_LIBDIR}
)

View File

@ -15,9 +15,13 @@
# You should have received a copy of the GNU General Public License
# along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>.
if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_TELEORBIT teleorbit)
pkg_check_modules(PC_TELEORBIT teleorbit QUIET)
find_path(TELEORBIT_INCLUDE_DIRS
NAMES teleorbit/api.h
@ -49,6 +53,20 @@ find_library(TELEORBIT_LIBRARIES
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(TELEORBIT DEFAULT_MSG TELEORBIT_LIBRARIES TELEORBIT_INCLUDE_DIRS)
if(PC_TELEORBIT_VERSION)
set(TELEORBIT_VERSION ${PC_TELEORBIT_VERSION})
endif()
if(TELEORBIT_FOUND AND TELEORBIT_VERSION)
set_package_properties(TELEORBIT PROPERTIES
DESCRIPTION "The Teleorbit's Flexiband GNU Radio block (found: v${TELEORBIT_VERSION})"
)
else()
set_package_properties(TELEORBIT PROPERTIES
DESCRIPTION "The Teleorbit's Flexiband GNU Radio block."
)
endif()
if(TELEORBIT_FOUND AND NOT TARGET Gnuradio::teleorbit)
add_library(Gnuradio::teleorbit SHARED IMPORTED)
set_target_properties(Gnuradio::teleorbit PROPERTIES

View File

@ -62,10 +62,19 @@ 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(PC_VOLK_GNSSSDR_VERSION)
set(VOLKGNSSSDR_VERSION ${PC_VOLK_GNSSSDR_VERSION})
endif()
if(VOLKGNSSSDR_FOUND AND VOLKGNSSSDR_VERSION)
set_package_properties(VOLKGNSSSDR PROPERTIES
DESCRIPTION "Vector-Optimized Library of Kernels for GNSS-SDR (found: v${VOLKGNSSSDR_VERSION})."
)
else()
set_package_properties(VOLKGNSSSDR PROPERTIES
DESCRIPTION "Vector-Optimized Library of Kernels for GNSS-SDR."
)
endif()
if(VOLKGNSSSDR_FOUND AND NOT TARGET Volkgnsssdr::volkgnsssdr)
add_library(Volkgnsssdr::volkgnsssdr SHARED IMPORTED)