FindOpenHMD: Handle transitive link of libhidapi better.

This commit is contained in:
Ryan Pavlik 2019-12-03 15:48:56 -06:00
parent 67a561d0ea
commit 4687955b17

View file

@ -66,30 +66,38 @@ find_library(OPENHMD_LIBRARY
PATH_SUFFIXES PATH_SUFFIXES
lib lib
) )
find_library(OPENHMD_LIBRT rt)
find_library(OPENHMD_LIBM m)
if(NOT WIN32)
find_library(OPENHMD_LIBRT rt)
find_library(OPENHMD_LIBM m)
endif()
find_package(Threads QUIET) find_package(Threads QUIET)
set(_ohmd_extra_deps) set(_ohmd_extra_deps)
set(OPENHMD_HIDAPI_TYPE) set(OPENHMD_HIDAPI_TYPE)
if(PC_OPENHMD_FOUND) if(OPENHMD_LIBRARY AND "${OPENHMD_LIBRARY}" MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}")
# See if we need a particular hidapi. # Looks like a static library
list(REMOVE_ITEM PC_OPENHMD_LIBRARIES openhmd) if(PC_OPENHMD_FOUND)
if("${PC_OPENHMD_LIBRARIES}" MATCHES hidapi-libusb) # See if we need a particular hidapi.
set(OPENHMD_HIDAPI_TYPE libusb) list(REMOVE_ITEM PC_OPENHMD_LIBRARIES openhmd)
find_package(HIDAPI QUIET COMPONENTS libusb) if("${PC_OPENHMD_LIBRARIES}" MATCHES hidapi-libusb)
list(APPEND _ohmd_extra_deps HIDAPI_libusb_FOUND) set(OPENHMD_HIDAPI_TYPE libusb)
elseif("${PC_OPENHMD_LIBRARIES}" MATCHES hidapi-hidraw) find_package(HIDAPI QUIET COMPONENTS libusb)
set(OPENHMD_HIDAPI_TYPE hidraw) list(APPEND _ohmd_extra_deps HIDAPI_libusb_FOUND)
find_package(HIDAPI QUIET COMPONENTS hidraw) elseif("${PC_OPENHMD_LIBRARIES}" MATCHES hidapi-hidraw)
list(APPEND _ohmd_extra_deps HIDAPI_hidraw_FOUND) set(OPENHMD_HIDAPI_TYPE hidraw)
elseif("${PC_OPENHMD_LIBRARIES}" MATCHES hidapi) find_package(HIDAPI QUIET COMPONENTS hidraw)
# Undifferentiated list(APPEND _ohmd_extra_deps HIDAPI_hidraw_FOUND)
set(OPENHMD_HIDAPI_TYPE undifferentiated) endif()
find_package(HIDAPI QUIET) endif()
list(APPEND _ohmd_extra_deps HIDAPI_FOUND) if(NOT PC_OPENHMD_FOUND OR NOT OPENHMD_HIDAPI_TYPE)
# Undifferentiated
set(OPENHMD_HIDAPI_TYPE undifferentiated)
find_package(HIDAPI QUIET)
list(APPEND _ohmd_extra_deps HIDAPI_FOUND)
endif() endif()
endif() endif()