Make findwinhid mostly MinGW compatible

This commit is contained in:
Ryan Pavlik
2011-05-02 11:37:12 -05:00
parent e8853ee660
commit 75048bb986

View File

@@ -31,9 +31,10 @@ if(NOT WIN32)
WIN32) WIN32)
return() return()
endif() endif()
if(MSVC)
if( (NOT WINHID_ROOT_DIR) AND (NOT ENV{DDKROOT} STREQUAL "") ) if( (NOT WINHID_ROOT_DIR) AND (NOT ENV{DDKROOT} STREQUAL "") )
set(WINHID_ROOT_DIR "$ENV{DDKROOT}") set(WINHID_ROOT_DIR "$ENV{DDKROOT}")
endif()
endif() endif()
set(WINHID_ROOT_DIR set(WINHID_ROOT_DIR
"${WINHID_ROOT_DIR}" "${WINHID_ROOT_DIR}"
@@ -47,14 +48,15 @@ else()
set(_arch i386) set(_arch i386)
endif() endif()
include(PrefixListGlob) if(MSVC)
include(CleanDirectoryList) include(PrefixListGlob)
prefix_list_glob(_prefixed "*/" "$ENV{SYSTEMDRIVE}/WinDDK/" "c:/WinDDK/") include(CleanDirectoryList)
clean_directory_list(_prefixed) prefix_list_glob(_prefixed "*/" "$ENV{SYSTEMDRIVE}/WinDDK/" "c:/WinDDK/")
clean_directory_list(_prefixed)
find_library(WINHID_LIBRARY find_library(WINHID_LIBRARY
NAMES NAMES
hid hid
libhid
HINTS HINTS
"${WINHID_ROOT_DIR}" "${WINHID_ROOT_DIR}"
${_prefixed} ${_prefixed}
@@ -65,25 +67,11 @@ find_library(WINHID_LIBRARY
"lib/wlh/${_arch}" # Win Vista ("Long Horn") min requirement "lib/wlh/${_arch}" # Win Vista ("Long Horn") min requirement
"lib/win7/${_arch}" # Win 7 min requirement "lib/win7/${_arch}" # Win 7 min requirement
) )
# Might want to look close to the library first for the includes.
get_filename_component(_libdir "${WINHID_LIBRARY}" PATH)
get_filename_component(_basedir "${_libdir}/../../.." ABSOLUTE)
# Might want to look close to the library first for the includes. find_path(WINHID_CRT_INCLUDE_DIR # otherwise you get weird compile errors
get_filename_component(_libdir "${WINHID_LIBRARY}" PATH)
get_filename_component(_basedir "${_libdir}/../../.." ABSOLUTE)
find_path(WINHID_INCLUDE_DIR
NAMES
hidsdi.h
HINTS
"${_basedir}"
PATHS
"${WINHID_ROOT_DIR}"
PATH_SUFFIXES
inc/api
inc/w2k
inc/wxp
inc/wnet)
find_path(WINHID_CRT_INCLUDE_DIR # otherwise you get weird compile errors
NAMES NAMES
stdio.h stdio.h
HINTS HINTS
@@ -93,15 +81,47 @@ find_path(WINHID_CRT_INCLUDE_DIR # otherwise you get weird compile errors
PATH_SUFFIXES PATH_SUFFIXES
inc/crt inc/crt
NO_DEFAULT_PATH) NO_DEFAULT_PATH)
find_path(WINHID_INCLUDE_DIR
NAMES
hidsdi.h
HINTS
"${_basedir}"
PATHS
"${WINHID_ROOT_DIR}"
PATH_SUFFIXES
inc/ddk
inc/api
inc/w2k
inc/wxp
inc/wnet)
else()
find_library(WINHID_LIBRARY
NAMES
libhid
HINTS
"${WINHID_ROOT_DIR}"
PATH_SUFFIXES
lib
lib/w32api)
find_path(WINHID_INCLUDE_DIR
NAMES
hidsdi.h
PATHS
"${WINHID_ROOT_DIR}"
PATH_SUFFIXES
include/w32api/ddk
include/ddk
ddk)
endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(WinHID find_package_handle_standard_args(WinHID
DEFAULT_MSG DEFAULT_MSG
WINHID_LIBRARY WINHID_LIBRARY
WINHID_INCLUDE_DIR WINHID_INCLUDE_DIR)
WINHID_CRT_INCLUDE_DIR)
if(WINHID_FOUND) if(WINHID_FOUND)
if(MSVC)
set(_winreq "Unknown") set(_winreq "Unknown")
if(WINHID_LIBRARY MATCHES "lib/w2k") if(WINHID_LIBRARY MATCHES "lib/w2k")
set(_winreq "Windows 2000") set(_winreq "Windows 2000")
@@ -120,6 +140,7 @@ if(WINHID_FOUND)
endif() endif()
set(WINHID_MIN_WINDOWS_VER "${_winreq}" CACHE INTERNAL "" FORCE) set(WINHID_MIN_WINDOWS_VER "${_winreq}" CACHE INTERNAL "" FORCE)
endif() endif()
endif()
set(WINHID_LIBRARIES "${WINHID_LIBRARY}") set(WINHID_LIBRARIES "${WINHID_LIBRARY}")
set(WINHID_INCLUDE_DIRS "${WINHID_CRT_INCLUDE_DIR}" "${WINHID_INCLUDE_DIR}") set(WINHID_INCLUDE_DIRS "${WINHID_CRT_INCLUDE_DIR}" "${WINHID_INCLUDE_DIR}")
mark_as_advanced(WINHID_ROOT_DIR) mark_as_advanced(WINHID_ROOT_DIR)