aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2012-01-09 12:07:33 -0800
committerJosh Blum <josh@joshknows.com>2012-01-09 13:58:56 -0800
commitf72dc7bd5b1cc3049a431efa676382e2270000be (patch)
tree05fc5060f8fc63aec63dedc6aeb3d23493486fc0
parent607b9a360067727a849d3088d5efa531192411e2 (diff)
downloaduhd-f72dc7bd5b1cc3049a431efa676382e2270000be.tar.gz
uhd-f72dc7bd5b1cc3049a431efa676382e2270000be.tar.bz2
uhd-f72dc7bd5b1cc3049a431efa676382e2270000be.zip
usb: updated FindUSB1.cmake for standards compliance
Using cmake's recommended conventions for find scripts. Find script also handles different library name for freebsd.
-rw-r--r--host/cmake/Modules/FindUSB1.cmake57
-rw-r--r--host/docs/build.rst2
-rw-r--r--host/lib/transport/CMakeLists.txt2
3 files changed, 30 insertions, 31 deletions
diff --git a/host/cmake/Modules/FindUSB1.cmake b/host/cmake/Modules/FindUSB1.cmake
index efb2e288b..cf569d233 100644
--- a/host/cmake/Modules/FindUSB1.cmake
+++ b/host/cmake/Modules/FindUSB1.cmake
@@ -1,38 +1,37 @@
-# - Try to find the freetype library
-# Once done this defines
-#
-# LIBUSB_FOUND - system has libusb
-# LIBUSB_INCLUDE_DIR - the libusb include directory
-# LIBUSB_LIBRARIES - Link these to use libusb
-# Copyright (c) 2006, 2008 Laurent Montel, <montel@kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#find libusb 1.0 on various systems
+#sets LIBUSB_FOUND, LIBUSB_LIBRARIES, LIBUSB_INCLUDE_DIRS
+#override LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIRS to manually set
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(PC_LIBUSB QUIET libusb-1.0)
-if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
+FIND_PATH(LIBUSB_INCLUDE_DIRS
+ NAMES libusb.h
+ HINTS $ENV{LIBUSB_DIR}/include ${PC_LIBUSB_INCLUDEDIR}
+ PATHS /usr/local/include/libusb-1.0 /usr/local/include
+ /usr/include/libusb-1.0 /usr/include
- # in cache already
- set(LIBUSB_FOUND TRUE)
+ #non-conforming naming convention,
+ #backwards compatible with old script
+ ${LIBUSB_INCLUDE_DIR}
+)
-else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- find_package(PkgConfig)
- IF(PKG_CONFIG_FOUND)
- pkg_check_modules(PC_LIBUSB libusb-1.0)
- ENDIF(PKG_CONFIG_FOUND)
+#standard library name for libusb-1.0
+set(libusb1_library_names usb-1.0)
- FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
- PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
+#libusb-1.0 compatible library on freebsd
+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ list(APPEND libusb1_library_names usb)
+endif()
- FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0
- PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
+FIND_LIBRARY(LIBUSB_LIBRARIES
+ NAMES ${libusb1_library_names}
+ HINTS $ENV{LIBUSB_DIR}/lib ${PC_LIBUSB_LIBDIR}
+ PATHS /usr/local/lib /usr/lib
+)
- include(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIRS)
+MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIRS LIBUSB_LIBRARIES)
- MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
-
-endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
diff --git a/host/docs/build.rst b/host/docs/build.rst
index e5ea85ce0..fbd582880 100644
--- a/host/docs/build.rst
+++ b/host/docs/build.rst
@@ -171,7 +171,7 @@ On Windows, cmake does not have the advantage of pkg-config,
so we must manually tell cmake how to locate the LibUSB header and lib.
* From the cmake gui, select "Advanded View"
-* Set LIBUSB_INCLUDE_DIR to the directory with "libusb.h".
+* Set LIBUSB_INCLUDE_DIRS to the directory with "libusb.h".
* Set LIBUSB_LIBRARIES to the full path for "libusb-1.0.lib".
* Recommend the static libusb-1.0.lib to simplify runtime dependencies.
diff --git a/host/lib/transport/CMakeLists.txt b/host/lib/transport/CMakeLists.txt
index 6a8d65770..3cae6180a 100644
--- a/host/lib/transport/CMakeLists.txt
+++ b/host/lib/transport/CMakeLists.txt
@@ -29,7 +29,7 @@ LIBUHD_REGISTER_COMPONENT("USB" ENABLE_USB ON "ENABLE_LIBUHD;LIBUSB_FOUND" OFF)
IF(ENABLE_USB)
MESSAGE(STATUS "USB support enabled via libusb.")
- INCLUDE_DIRECTORIES(${LIBUSB_INCLUDE_DIR})
+ INCLUDE_DIRECTORIES(${LIBUSB_INCLUDE_DIRS})
LIBUHD_APPEND_LIBS(${LIBUSB_LIBRARIES})
LIBUHD_APPEND_SOURCES(
${CMAKE_CURRENT_SOURCE_DIR}/libusb1_control.cpp