From 1cac345b5c7b6d576da87dc321af4223d515df51 Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Thu, 16 Apr 2015 16:12:40 -0500 Subject: gps: gpsd: Adding gpsd_iface to interface with gpsd. The gpsd_iface class might be useful for more than just e3x0, it therefore belongs into lib/usrp instead of lib/usrp/e300. A new UHD component is being registered, to cope with the additional dependency. If libgps is not found, UHD and E300 will be compiled without GPS support. This has several consequences: - The E310 GPSDO should now work transparently over network - Users can use the GPS through gpsd for other applications *while* running UHD applications - We now have a dependency on libgps We need currently at least version 3.11 (while running 3.14), on the device. Older versions do work if 3.10 runs on both sides e.g Reviewed-by: Martin Braun Reviewed-by: Ashish Chaudhari Signed-off-by: Moritz Fischer --- host/cmake/Modules/FindGPSD.cmake | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 host/cmake/Modules/FindGPSD.cmake (limited to 'host/cmake/Modules') diff --git a/host/cmake/Modules/FindGPSD.cmake b/host/cmake/Modules/FindGPSD.cmake new file mode 100644 index 000000000..0d56a5380 --- /dev/null +++ b/host/cmake/Modules/FindGPSD.cmake @@ -0,0 +1,62 @@ +# +# Copyright 2015 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# - Find libgps +# Find the Gpsd includes and client library +# This module defines +# LIBGPS_INCLUDE_DIR, where to find gps.h +# LIBGPS_LIBRARIES, the libraries needed by a GPSD client. +# LIBGPS_FOUND, If false, do not try to use GPSD. +# also defined, but not for general use are +# LIBGPS_LIBRARY, where to find the GPSD library. + +INCLUDE(FindPkgConfig) +PKG_CHECK_MODULES(PC_GPSD "libgps") +PKG_CHECK_MODULES(PC_GPSD_V3_11 "libgps > 3.11") + +IF(PC_GPSD_FOUND AND NOT PC_GPSD_V3_11_FOUND) + MESSAGE(WARNING "GPSD version found is too old") +ENDIF(PC_GPSD_FOUND AND NOT PC_GPSD_V3_11_FOUND) + +IF(PC_GPSD_V3_11_FOUND) + FIND_PATH( + LIBGPS_INCLUDE_DIR + NAMES gps.h + HINTS ${PC_GPSD_INCLUDE_DIR} + ) + + SET( + LIBGPS_NAMES + ${LIBGPS_NAMES} gps + ) + + FIND_LIBRARY( + LIBGPS_LIBRARY + NAMES ${LIBGPS_NAMES} + HINTS ${PC_GPSD_LIBDIR} + ) +ENDIF(PC_GPSD_V3_11_FOUND) + +# handle the QUIETLY and REQUIRED arguments and set LIBGPS_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBGPS DEFAULT_MSG LIBGPS_LIBRARY LIBGPS_INCLUDE_DIR) + +IF(LIBGPS_FOUND) + SET(LIBGPS_LIBRARIES ${LIBGPS_LIBRARY}) +ENDIF(LIBGPS_FOUND) + +MARK_AS_ADVANCED(LIBGPS_LIBRARY LIBGPS_INCLUDE_DIR) -- cgit v1.2.3