diff --git a/CMakeLists.txt b/CMakeLists.txt index 89283867..87145b70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,9 +69,11 @@ endif() ######################################################################## find_package(PkgConfig) find_package(LibRTLSDR) -if(LIBRTLSDR_FOUND) - include_directories(${LIBRTLSDR_INCLUDE_DIRS}) - list(APPEND SDR_LIBRARIES ${LIBRTLSDR_LIBRARIES}) +find_package(LibUSB) +if(LIBRTLSDR_FOUND AND LIBUSB_FOUND) + message(STATUS "RTL-SDR device input will be compiled.") + include_directories(${LIBRTLSDR_INCLUDE_DIRS} ${LIBUSB_INCLUDE_DIRS}) + list(APPEND SDR_LIBRARIES ${LIBRTLSDR_LIBRARIES} ${LIBUSB_LIBRARIES}) ADD_DEFINITIONS(-DRTLSDR) else() message(STATUS "RTL-SDR development files not found, RTL-SDR device input won't be possible.") @@ -79,11 +81,12 @@ endif() find_package(SoapySDR "0.6" NO_MODULE) if(SoapySDR_FOUND) + message(STATUS "SoapySDR device input will be compiled.") include_directories(${SoapySDR_INCLUDE_DIRS}) list(APPEND SDR_LIBRARIES ${SoapySDR_LIBRARIES}) ADD_DEFINITIONS(-DSOAPYSDR) else() - message(STATUS "Soapy SDR development files not found, Soapy SDR device input won't be possible.") + message(STATUS "SoapySDR development files not found, SoapySDR device input won't be possible.") endif() # cmake -DCMAKE_BUILD_TYPE=Profile .. diff --git a/cmake/Modules/FindLibRTLSDR.cmake b/cmake/Modules/FindLibRTLSDR.cmake index ea63daa3..20443650 100644 --- a/cmake/Modules/FindLibRTLSDR.cmake +++ b/cmake/Modules/FindLibRTLSDR.cmake @@ -1,28 +1,33 @@ -INCLUDE(FindPkgConfig) -if(NOT LIBRTLSDR_FOUND) - pkg_check_modules (LIBRTLSDR_PKG librtlsdr) - find_path(LIBRTLSDR_INCLUDE_DIRS NAMES rtl-sdr.h - PATHS - ${LIBRTLSDR_PKG_INCLUDE_DIRS} - /usr/include - /usr/local/include - ) +# - Try to find LibRTLSDR +# Once done this will define +# LIBRTLSDR_FOUND - System has LibRTLSDR +# LIBRTLSDR_INCLUDE_DIRS - The LibRTLSDR include directories +# LIBRTLSDR_LIBRARIES - The libraries needed to use LibRTLSDR +# LIBRTLSDR_DEFINITIONS - Compiler switches required for using LibRTLSDR - find_library(LIBRTLSDR_LIBRARIES NAMES rtlsdr - PATHS - ${LIBRTLSDR_PKG_LIBRARY_DIRS} - /usr/lib - /usr/local/lib - ) +find_package(PkgConfig) +pkg_check_modules(LIBRTLSDR_PKG QUIET librtlsdr) +set(LIBRTLSDR_DEFINITIONS ${LIBRTLSDR_PKG_CFLAGS_OTHER}) -if(LIBRTLSDR_INCLUDE_DIRS AND LIBRTLSDR_LIBRARIES) - set(LIBRTLSDR_FOUND TRUE CACHE INTERNAL "librtlsdr found") - message(STATUS "Found librtlsdr: ${LIBRTLSDR_INCLUDE_DIRS}, ${LIBRTLSDR_LIBRARIES}") -else(LIBRTLSDR_INCLUDE_DIRS AND LIBRTLSDR_LIBRARIES) - set(LIBRTLSDR_FOUND FALSE CACHE INTERNAL "librtlsdr found") - message(STATUS "librtlsdr not found.") -endif(LIBRTLSDR_INCLUDE_DIRS AND LIBRTLSDR_LIBRARIES) +find_path(LIBRTLSDR_INCLUDE_DIR NAMES rtl-sdr.h + HINTS ${LIBRTLSDR_PKG_INCLUDE_DIRS} + PATHS + /usr/include + /usr/local/include ) -mark_as_advanced(LIBRTLSDR_LIBRARIES LIBRTLSDR_INCLUDE_DIRS) +find_library(LIBRTLSDR_LIBRARY NAMES rtlsdr + HINTS ${LIBRTLSDR_PKG_LIBRARY_DIRS} + PATHS + /usr/lib + /usr/local/lib ) -endif(NOT LIBRTLSDR_FOUND) +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LIBRTLSDR_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(LibRTLSDR DEFAULT_MSG + LIBRTLSDR_LIBRARY LIBRTLSDR_INCLUDE_DIR) + +mark_as_advanced(LIBRTLSDR_LIBRARY LIBRTLSDR_INCLUDE_DIR) + +set(LIBRTLSDR_LIBRARIES ${LIBRTLSDR_LIBRARY} ) +set(LIBRTLSDR_INCLUDE_DIRS ${LIBRTLSDR_INCLUDE_DIR} ) diff --git a/cmake/Modules/FindLibUSB.cmake b/cmake/Modules/FindLibUSB.cmake new file mode 100644 index 00000000..607e35bd --- /dev/null +++ b/cmake/Modules/FindLibUSB.cmake @@ -0,0 +1,43 @@ +# - Try to find LibUSB +# Once done this will define +# LIBUSB_FOUND - System has LibUSB +# LIBUSB_INCLUDE_DIRS - The LibUSB include directories +# LIBUSB_LIBRARIES - The libraries needed to use LibUSB +# LIBUSB_DEFINITIONS - Compiler switches required for using LibUSB + +find_package(PkgConfig) +pkg_check_modules(LIBUSB_PKG QUIET libusb-1.0) +set(LIBUSB_DEFINITIONS ${LIBUSB_PKG_CFLAGS_OTHER}) + +find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h + HINTS ${LIBUSB_PKG_INCLUDE_DIRS} + PATHS + /usr/include/libusb-1.0 + /usr/include + /usr/local/include ) + +#standard library name for libusb-1.0 +set(libusb1_library_names usb-1.0) + +#libusb-1.0 compatible library on freebsd +if((CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") OR (CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")) + list(APPEND libusb1_library_names usb) +endif() + +find_library(LIBUSB_LIBRARY + NAMES ${libusb1_library_names} + HINTS ${LIBUSB_PKG_LIBRARY_DIRS} + PATHS + /usr/lib + /usr/local/lib ) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LIBUSB_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(LibUSB DEFAULT_MSG + LIBUSB_LIBRARY LIBUSB_INCLUDE_DIR) + +mark_as_advanced(LIBUSB_LIBRARY LIBUSB_INCLUDE_DIR) + +set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY} ) +set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIR} )