From f168b4e83a7cc0e6469d3e77b24a1a3580ee01a1 Mon Sep 17 00:00:00 2001 From: stoffu Date: Fri, 26 Oct 2018 08:34:10 +0900 Subject: [PATCH] build: replace PCSC with HIDAPI --- CMakeLists.txt | 7 +++-- README.md | 2 +- cmake/FindHIDAPI.cmake | 60 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 cmake/FindHIDAPI.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 40a1800..375842f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,9 +126,9 @@ set(LIBRARIES ssl) if(APPLE) - set(LIBRARIES ${LIBRARIES} "-framework IOKit -framework PCSC") + set(LIBRARIES ${LIBRARIES} "-framework IOKit -framework Foundation") else() - set(LIBRARIES ${LIBRARIES} atomic pcsclite) + set(LIBRARIES ${LIBRARIES} atomic) endif() if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT WIN32) @@ -146,4 +146,7 @@ else() set(LIBRARIES ${LIBRARIES} dl) endif() +find_package(HIDAPI) +set(LIBRARIES ${LIBRARIES} ${HIDAPI_LIBRARIES}) + target_link_libraries(${PROJECT_NAME} ${LIBRARIES}) diff --git a/README.md b/README.md index eaaba63..742bd50 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ Download and compile recent Monero into your home folder: # first install monero dependecines sudo apt update -sudo apt install git build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libcurl4-openssl-dev libgtest-dev libreadline-dev libzmq3-dev libsodium-dev libpcsclite-dev +sudo apt install git build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libcurl4-openssl-dev libgtest-dev libreadline-dev libzmq3-dev libsodium-dev libhidapi-dev libhidapi-libusb0 # go to home folder cd ~ diff --git a/cmake/FindHIDAPI.cmake b/cmake/FindHIDAPI.cmake new file mode 100644 index 0000000..9b45dcc --- /dev/null +++ b/cmake/FindHIDAPI.cmake @@ -0,0 +1,60 @@ +# - try to find HIDAPI library +# from http://www.signal11.us/oss/hidapi/ +# +# Cache Variables: (probably not for direct use in your scripts) +# HIDAPI_INCLUDE_DIR +# HIDAPI_LIBRARY +# +# Non-cache variables you might use in your CMakeLists.txt: +# HIDAPI_FOUND +# HIDAPI_INCLUDE_DIRS +# HIDAPI_LIBRARIES +# +# Requires these CMake modules: +# FindPackageHandleStandardArgs (known included with CMake >=2.6.2) +# +# Original Author: +# 2009-2010 Ryan Pavlik +# http://academic.cleardefinition.com +# Iowa State University HCI Graduate Program/VRAC +# +# Copyright Iowa State University 2009-2010. +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +find_library(HIDAPI_LIBRARY + NAMES hidapi hidapi-libusb) + +find_path(HIDAPI_INCLUDE_DIR + NAMES hidapi.h + PATH_SUFFIXES + hidapi) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(HIDAPI + DEFAULT_MSG + HIDAPI_LIBRARY + HIDAPI_INCLUDE_DIR) + +if(HIDAPI_FOUND) + set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARY}") + if((STATIC AND UNIX AND NOT APPLE) OR (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux")) + find_library(LIBUSB-1.0_LIBRARY usb-1.0) + find_library(LIBUDEV_LIBRARY udev) + if(LIBUSB-1.0_LIBRARY) + set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARIES};${LIBUSB-1.0_LIBRARY}") + if(LIBUDEV_LIBRARY) + set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARIES};${LIBUDEV_LIBRARY}") + else() + message(WARNING "libudev library not found, binaries may fail to link.") + endif() + else() + message(WARNING "libusb-1.0 library not found, binaries may fail to link.") + endif() + endif() + + set(HIDAPI_INCLUDE_DIRS "${HIDAPI_INCLUDE_DIR}") +endif() + +mark_as_advanced(HIDAPI_INCLUDE_DIR HIDAPI_LIBRARY)