aboutsummaryrefslogtreecommitdiffstats
path: root/host/cmake
diff options
context:
space:
mode:
authorMoritz Fischer <moritz.fischer@ettus.com>2015-04-16 16:12:40 -0500
committerMartin Braun <martin.braun@ettus.com>2015-07-29 18:13:45 -0700
commit1cac345b5c7b6d576da87dc321af4223d515df51 (patch)
tree0da09b7bde4e215674c8c31c4b5a0c4830811034 /host/cmake
parent463fc8985e29d12e2edba25008e7c0def5ce60cd (diff)
downloaduhd-1cac345b5c7b6d576da87dc321af4223d515df51.tar.gz
uhd-1cac345b5c7b6d576da87dc321af4223d515df51.tar.bz2
uhd-1cac345b5c7b6d576da87dc321af4223d515df51.zip
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 <martin.braun@ettus.com> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com> Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Diffstat (limited to 'host/cmake')
-rw-r--r--host/cmake/Modules/FindGPSD.cmake62
1 files changed, 62 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+#
+# - 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)