From 161caf3db4e2ff1c18328c0f628614987e50ffcc Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Mon, 11 Sep 2023 10:04:01 +0200 Subject: [PATCH] CMake: rework findlibusb module Rename the module to FindLibUSB.cmake and use it as the only way of finding libusb. Bonus: perform CMake linting of the module. --- CMakeLists.txt | 14 +++----------- cmake/FindLibUSB.cmake | 38 ++++++++++++++++++++++++++++++++++++++ cmake/FindUSB1.cmake | 37 ------------------------------------- 3 files changed, 41 insertions(+), 48 deletions(-) create mode 100644 cmake/FindLibUSB.cmake delete mode 100644 cmake/FindUSB1.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 39857a2..947fb34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,17 +44,9 @@ if(${CMAKE_BUILD_TYPE} STREQUAL Debug) add_definitions(-DDEBUG) endif(${CMAKE_BUILD_TYPE} STREQUAL Debug) -# find libusb -find_package( PkgConfig ) -if (PkgConfig_FOUND) - pkg_check_modules( LIBUSB libusb-1.0 ) - if (LIBUSB_FOUND) - include_directories ( ${LIBUSB_INCLUDE_DIRS} ) - else() - find_package ( USB1 REQUIRED ) - include_directories ( ${LIBUSB_INCLUDE_DIR} ) - endif() -endif() +# Find libusb +find_package ( LibUSB REQUIRED ) +include_directories ( ${LIBUSB_INCLUDE_DIR} ) # Find Boost if (FTDIPP OR BUILD_TESTS) diff --git a/cmake/FindLibUSB.cmake b/cmake/FindLibUSB.cmake new file mode 100644 index 0000000..766fc82 --- /dev/null +++ b/cmake/FindLibUSB.cmake @@ -0,0 +1,38 @@ +# - Try to find the libusb 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, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + + # in cache already + set(LIBUSB_FOUND TRUE) + +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) + pkg_check_modules(PC_LIBUSB libusb-1.0) + + find_path(LIBUSB_INCLUDE_DIR libusb.h + PATH_SUFFIXES libusb-1.0 + PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) + + find_library(LIBUSB_LIBRARIES NAMES usb-1.0 + PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args( + LibUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR + ) + + mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) + +endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) diff --git a/cmake/FindUSB1.cmake b/cmake/FindUSB1.cmake deleted file mode 100644 index b90e297..0000000 --- a/cmake/FindUSB1.cmake +++ /dev/null @@ -1,37 +0,0 @@ -# - 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, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) - - # in cache already - set(LIBUSB_FOUND TRUE) - -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) - pkg_check_modules(PC_LIBUSB libusb-1.0) - - FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h - PATH_SUFFIXES libusb-1.0 - PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) - - FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 - PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) - - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) - - MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) - -endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) -- 1.7.1