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 |