diff options
| -rw-r--r-- | host/cmake/Modules/FindUSB1.cmake | 57 | ||||
| -rw-r--r-- | host/docs/build.rst | 2 | ||||
| -rw-r--r-- | host/lib/transport/CMakeLists.txt | 2 | 
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 | 
