Skip to content

Commit e5bb5ff

Browse files
committed
Fix CMake issues
1 parent df0a3be commit e5bb5ff

File tree

9 files changed

+125
-212
lines changed

9 files changed

+125
-212
lines changed

CMakeLists.txt

Lines changed: 78 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
cmake_minimum_required (VERSION 2.6)
22

3-
if (NOT DEFINED CMAKE_BUILD_TYPE)
4-
set (CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
5-
endif ()
6-
73
project (libnfc C)
84

95
SET(VERSION_MAJOR "1")
@@ -15,6 +11,9 @@ SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
1511
SET(PACKAGE_NAME "libnfc")
1612
SET(PACKAGE_VERSION ${VERSION})
1713
SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
14+
SET(PACKAGE_DESCRIPTION "Near Field Communication (NFC) library")
15+
16+
INCLUDE(GNUInstallDirs)
1817

1918
# config.h
2019
IF(WIN32)
@@ -67,31 +66,23 @@ ENDIF(LIBNFC_CONFFILES_MODE)
6766
option (BUILD_EXAMPLES "build examples ON/OFF" ON)
6867
option (BUILD_UTILS "build utils ON/OFF" ON)
6968

70-
option (BUILD_DEBPKG "build debian package ON/OFF" OFF)
69+
if(MSVC)
70+
option (BUILD_MANUAL "build man-pages ON/OFF" OFF)
71+
else(MSVC)
72+
option (BUILD_MANUAL "build man-pages ON/OFF" ON)
73+
endif(MSVC)
7174

75+
option (INSTALL_BUNDLE "Assemble a standalone bundle application" OFF)
7276

7377
# Doxygen
7478
SET(builddir "${CMAKE_BINARY_DIR}")
7579
SET(top_srcdir "${CMAKE_SOURCE_DIR}")
7680
INCLUDE(UseDoxygen)
7781

78-
IF(DEFINED CMAKE_INSTALL_LIBDIR)
79-
SET(libdir ${CMAKE_INSTALL_LIBDIR})
80-
ELSE(DEFINED CMAKE_INSTALL_LIBDIR)
81-
SET(CMAKE_INSTALL_LIBDIR lib)
82-
SET(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
83-
ENDIF(DEFINED CMAKE_INSTALL_LIBDIR)
84-
85-
IF(DEFINED INCLUDE_INSTALL_DIR)
86-
SET(includedir ${INCLUDE_INSTALL_DIR})
87-
ELSE(DEFINED INCLUDE_INSTALL_DIR)
88-
SET(INCLUDE_INSTALL_DIR include)
89-
SET(includedir ${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR})
90-
ENDIF(DEFINED INCLUDE_INSTALL_DIR)
91-
92-
IF(NOT DEFINED SHARE_INSTALL_PREFIX)
93-
SET(SHARE_INSTALL_PREFIX share)
94-
ENDIF(NOT DEFINED SHARE_INSTALL_PREFIX)
82+
SET(prefix ${CMAKE_INSTALL_PREFIX})
83+
SET(exec_prefix ${CMAKE_INSTALL_PREFIX})
84+
SET(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
85+
SET(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
9586

9687
# Additonnal GCC flags
9788
IF(CMAKE_COMPILER_IS_GNUCC)
@@ -126,28 +117,36 @@ IF(MINGW)
126117
ENDIF (NOT DLLTOOL)
127118
ENDIF(MINGW)
128119

120+
# pkg-config
129121
IF(NOT WIN32)
130-
# Set some pkg-config variables
131-
SET(prefix ${CMAKE_INSTALL_PREFIX})
132-
SET(exec_prefix ${CMAKE_INSTALL_PREFIX})
133-
SET(PACKAGE "libnfc")
134-
IF(LIBNFC_DRIVER_PN53X_USB)
135-
SET(PKG_REQ ${PKG_REQ} "libusb")
136-
ENDIF(LIBNFC_DRIVER_PN53X_USB)
137-
IF(LIBNFC_DRIVER_ACR122_USB)
138-
SET(PKG_REQ ${PKG_REQ} "libusb")
139-
ENDIF(LIBNFC_DRIVER_ACR122_USB)
122+
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
123+
IF(LIBNFC_DRIVER_PN53X_USB)
124+
SET(PKG_REQ ${PKG_REQ} "libusb-0.1")
125+
ENDIF(LIBNFC_DRIVER_PN53X_USB)
126+
IF(LIBNFC_DRIVER_ACR122_USB)
127+
SET(PKG_REQ ${PKG_REQ} "libusb-0.1")
128+
ENDIF(LIBNFC_DRIVER_ACR122_USB)
129+
ELSE(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
130+
IF(LIBNFC_DRIVER_PN53X_USB)
131+
SET(PKG_REQ ${PKG_REQ} "libusb")
132+
ENDIF(LIBNFC_DRIVER_PN53X_USB)
133+
IF(LIBNFC_DRIVER_ACR122_USB)
134+
SET(PKG_REQ ${PKG_REQ} "libusb")
135+
ENDIF(LIBNFC_DRIVER_ACR122_USB)
136+
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
140137
IF(LIBNFC_DRIVER_PCSC)
141138
SET(PKG_REQ ${PKG_REQ} "libpcsclite")
142139
ENDIF(LIBNFC_DRIVER_PCSC)
143140
IF(LIBNFC_DRIVER_ACR122_PCSC)
144141
SET(PKG_REQ ${PKG_REQ} "libpcsclite")
145142
ENDIF(LIBNFC_DRIVER_ACR122_PCSC)
146-
# CMake lists are separated by a semi colon, replace with colon
147-
STRING(REPLACE ";" "," PKG_CONFIG_REQUIRES "${PKG_REQ}")
148-
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libnfc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc @ONLY)
149-
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
150143
ENDIF(NOT WIN32)
144+
LIST(SORT PKG_REQ)
145+
LIST(REMOVE_DUPLICATES PKG_REQ)
146+
# CMake lists are separated by a semi colon, replace with colon
147+
STRING(REPLACE ";" "," PKG_CONFIG_REQUIRES "${PKG_REQ}")
148+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libnfc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc @ONLY)
149+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
151150

152151
INCLUDE(LibnfcDrivers)
153152

@@ -167,16 +166,15 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
167166
ENDIF(I2C_REQUIRED)
168167
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
169168

170-
IF(PCSC_INCLUDE_DIRS)
169+
IF(PCSC_FOUND)
171170
INCLUDE_DIRECTORIES(${PCSC_INCLUDE_DIRS})
172171
LINK_DIRECTORIES(${PCSC_LIBRARY_DIRS})
173-
ENDIF(PCSC_INCLUDE_DIRS)
172+
ENDIF(PCSC_FOUND)
174173

175-
IF(LIBUSB_INCLUDE_DIRS)
174+
IF(LIBUSB_FOUND)
176175
INCLUDE_DIRECTORIES(${LIBUSB_INCLUDE_DIRS})
177176
LINK_DIRECTORIES(${LIBUSB_LIBRARY_DIRS})
178-
SET(LIBUSB_FOUND TRUE)
179-
ENDIF(LIBUSB_INCLUDE_DIRS)
177+
ENDIF(LIBUSB_FOUND)
180178

181179
# version.rc for Windows
182180
IF(WIN32)
@@ -202,72 +200,40 @@ if (BUILD_EXAMPLES)
202200
add_subdirectory (examples)
203201
endif ()
204202

205-
if (NOT MSVC)
206-
# config script install path
207-
if ( NOT DEFINED LIBNFC_CMAKE_CONFIG_DIR )
208-
set ( LIBNFC_CMAKE_CONFIG_DIR lib${LIB_SUFFIX}/cmake/libnfc )
209-
endif ()
210-
211-
set ( LIBNFC_INCLUDE_DIR ${includedir} )
212-
set ( LIBNFC_INCLUDE_DIRS ${LIBNFC_INCLUDE_DIR} )
213-
list ( APPEND LIBNFC_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} )
214-
set ( LIBNFC_LIBRARY nfc )
215-
set ( LIBNFC_LIBRARIES ${LIBNFC_LIBRARY} )
216-
list ( APPEND LIBNFC_LIBRARIES ${LIBUSB_LIBRARIES} )
217-
set ( LIBNFC_LIBRARY_DIRS ${libdir} )
218-
set ( LIBNFC_ROOT_DIR ${prefix} )
219-
set ( LIBNFC_VERSION_STRING ${VERSION} )
220-
set ( LIBNFC_VERSION_MAJOR ${VERSION_MAJOR} )
221-
set ( LIBNFC_VERSION_MINOR ${VERSION_MINOR} )
222-
set ( LIBNFC_VERSION_PATCH ${VERSION_PATCH} )
223-
224-
set ( LIBNFC_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBNFC_CMAKE_CONFIG_DIR}/UseLibNFC.cmake )
225-
226-
227-
228-
if(CMAKE_VERSION VERSION_LESS 2.8.8)
229-
configure_file ( cmake/LibNFCConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfig.cmake @ONLY )
230-
configure_file ( cmake/LibNFCConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfigVersion.cmake @ONLY )
231-
else ()
232-
include(CMakePackageConfigHelpers)
233-
configure_package_config_file (
234-
cmake/LibNFCConfig.cmake.in
235-
${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfig.cmake
236-
INSTALL_DESTINATION ${LIBNFC_CMAKE_CONFIG_DIR}
237-
PATH_VARS
238-
LIBNFC_USE_FILE
239-
LIBNFC_ROOT_DIR
240-
LIBNFC_INCLUDE_DIR
241-
LIBNFC_INCLUDE_DIRS
242-
LIBNFC_LIBRARY_DIRS
243-
NO_CHECK_REQUIRED_COMPONENTS_MACRO
244-
)
245-
write_basic_package_version_file (
246-
LibNFCConfigVersion.cmake
247-
VERSION ${LIBNFC_VERSION_STRING}
248-
COMPATIBILITY AnyNewerVersion
249-
)
250-
endif ()
251-
252-
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfig.cmake
253-
${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfigVersion.cmake
254-
cmake/UseLibNFC.cmake
255-
DESTINATION ${LIBNFC_CMAKE_CONFIG_DIR}
256-
)
257-
258-
endif ()
259-
260-
# Binary Package
261-
IF(WIN32)
262-
SET(CPACK_GENERATOR "ZIP")
263-
ELSE(WIN32)
264-
SET(CPACK_GENERATOR "TBZ2")
265-
IF(BUILD_DEBPKG)
266-
SET(CPACK_GENERATOR "DEB")
267-
ENDIF(BUILD_DEBPKG)
268-
ENDIF(WIN32)
269-
270-
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Near Field Communication (NFC) library")
203+
set(INCLUDE_INSTALL_DIRS ${includedir})
204+
set(LIBNFC_CMAKE_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PACKAGE_NAME})
205+
set(LIBNFC_DEFINITIONS "")
206+
set(LIBNFC_LIBRARIES ${LIBNFC_LIBRARY})
207+
list(APPEND LIBNFC_LIBRARIES ${PKG_REQ})
208+
set(LIBNFC_LIBRARY nfc)
209+
set(LIBNFC_USE_FILE UseLibNFC.cmake)
210+
set(LIBRARY_INSTALL_DIRS ${libdir})
211+
212+
include(CMakePackageConfigHelpers)
213+
configure_package_config_file(
214+
cmake/LibNFCConfig.cmake.in
215+
${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfig.cmake
216+
INSTALL_DESTINATION ${LIBNFC_CMAKE_CONFIG_DIR}
217+
PATH_VARS INCLUDE_INSTALL_DIRS LIBRARY_INSTALL_DIRS
218+
)
219+
write_basic_package_version_file(
220+
LibNFCConfigVersion.cmake
221+
VERSION ${VERSION}
222+
COMPATIBILITY AnyNewerVersion
223+
)
224+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfig.cmake
225+
${CMAKE_CURRENT_BINARY_DIR}/LibNFCConfigVersion.cmake
226+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/UseLibNFC.cmake
227+
DESTINATION ${LIBNFC_CMAKE_CONFIG_DIR}
228+
)
229+
230+
#install required libraries
231+
IF(INSTALL_BUNDLE)
232+
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
233+
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
234+
ENDIF(INSTALL_BUNDLE)
235+
236+
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PACKAGE_DESCRIPTION})
271237
SET(CPACK_PACKAGE_VENDOR "Roel Verdult")
272238
SET(CPACK_PACKAGE_CONTACT "Roel Verdult <[email protected]>")
273239

@@ -295,13 +261,12 @@ SET(CPACK_COMPONENT_HEADERS_DISABLED TRUE)
295261
SET(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
296262
SET(CPACK_COMPONENT_EXAMPLES_DEPENDS libraries)
297263

264+
# Binary Package
265+
SET(CPACK_GENERATOR "ZIP" CACHE STRING "Default binary package generator")
298266
# Source Package
299-
IF(WIN32)
300-
SET(CPACK_SOURCE_GENERATOR "ZIP")
301-
ELSE(WIN32)
302-
SET(CPACK_SOURCE_GENERATOR "ZIP;TBZ2")
303-
ENDIF(WIN32)
304-
267+
SET(CPACK_SOURCE_GENERATOR "SOURCE_ZIP" CACHE STRING "Default source package generator")
305268
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "libnfc-${VERSION}")
306269
SET(CPACK_SOURCE_IGNORE_FILES "~$" "/\\\\.git/" "bin/")
270+
271+
INCLUDE(InstallRequiredSystemLibraries)
307272
INCLUDE(CPack)

cmake/FixBundle.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ SET(bundle "${CMAKE_INSTALL_PREFIX}/bin/nfc-list@CMAKE_EXECUTABLE_SUFFIX@")
66
# set other_libs to a list of additional libs that cannot be reached by dependency analysis
77
SET(other_libs "")
88

9-
SET(dirs "@LIBUSB_LIBRARY_DIR@")
9+
SET(dirs "@LIBUSB_LIBRARY_DIRS@")
1010

1111
fixup_bundle("${bundle}" "${other_libs}" "${dirs}")

cmake/LibNFCConfig.cmake.in

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,27 @@
55
# LIBNFC_FOUND - True if LibNFC was found on your system
66
# LIBNFC_USE_FILE - The file making LibNFC usable
77
# LIBNFC_DEFINITIONS - Definitions needed to build with LibNFC
8-
# LIBNFC_INCLUDE_DIR - Directory where nfc/nfc.h can be found
98
# LIBNFC_INCLUDE_DIRS - List of directories of LibNFC and it's dependencies
109
# LIBNFC_LIBRARY - LibNFC library location
1110
# LIBNFC_LIBRARIES - List of libraries to link against LibNFC library
1211
# LIBNFC_LIBRARY_DIRS - List of directories containing LibNFC' libraries
13-
# LIBNFC_ROOT_DIR - The base directory of LibNFC
1412
# LIBNFC_VERSION_STRING - A human-readable string containing the version
1513
# LIBNFC_VERSION_MAJOR - The major version of LibNFC
1614
# LIBNFC_VERSION_MINOR - The minor version of LibNFC
1715
# LIBNFC_VERSION_PATCH - The patch version of LibNFC
1816

17+
@PACKAGE_INIT@
18+
1919
set ( LIBNFC_FOUND 1 )
20-
set ( LIBNFC_USE_FILE "@LIBNFC_USE_FILE@" )
20+
set ( LIBNFC_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/@LIBNFC_USE_FILE@" )
2121

2222
set ( LIBNFC_DEFINITIONS "@LIBNFC_DEFINITIONS@" )
23-
set ( LIBNFC_INCLUDE_DIR "@LIBNFC_INCLUDE_DIR@" )
24-
set ( LIBNFC_INCLUDE_DIRS "@LIBNFC_INCLUDE_DIRS@" )
23+
set ( LIBNFC_INCLUDE_DIRS "@PACKAGE_INCLUDE_INSTALL_DIRS@" )
2524
set ( LIBNFC_LIBRARY "@LIBNFC_LIBRARY@" )
2625
set ( LIBNFC_LIBRARIES "@LIBNFC_LIBRARIES@" )
27-
set ( LIBNFC_LIBRARY_DIRS "@LIBNFC_LIBRARY_DIRS@" )
28-
set ( LIBNFC_ROOT_DIR "@LIBNFC_ROOT_DIR@" )
29-
30-
set ( LIBNFC_VERSION_STRING "@LIBNFC_VERSION_STRING@" )
31-
set ( LIBNFC_VERSION_MAJOR "@LIBNFC_VERSION_MAJOR@" )
32-
set ( LIBNFC_VERSION_MINOR "@LIBNFC_VERSION_MINOR@" )
33-
set ( LIBNFC_VERSION_PATCH "@LIBNFC_VERSION_PATCH@" )
26+
set ( LIBNFC_LIBRARY_DIRS "@PACKAGE_LIBRARY_INSTALL_DIRS@" )
3427

28+
set ( LIBNFC_VERSION_STRING "@VERSION@" )
29+
set ( LIBNFC_VERSION_MAJOR @VERSION_MAJOR@ )
30+
set ( LIBNFC_VERSION_MINOR @VERSION_MINOR@ )
31+
set ( LIBNFC_VERSION_PATCH @VERSION_PATCH@ )

cmake/modules/FindLIBUSB.cmake

Lines changed: 22 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,29 @@
1-
# This CMake script wants to use libusb functionality, therefore it looks
2-
# for libusb include files and libraries.
1+
# - Try to find libusb or libusb-win32
2+
# Once done this will define
33
#
4-
# Operating Systems Supported:
5-
# - Unix (requires pkg-config)
6-
# Tested with Ubuntu 9.04 and Fedora 11
7-
# - Windows (requires MinGW)
8-
# Tested with Windows XP/Windows 7
9-
#
10-
# This should work for both 32 bit and 64 bit systems.
11-
#
12-
# Author: F. Kooman <[email protected]>
4+
# LIBUSB_FOUND - True if libusb found
5+
# LIBUSB_INCLUDE_DIRS - The path to the libusb headers
6+
# LIBUSB_LIBRARY_DIRS - The path to the libusb library
7+
# LIBUSB_LIBRARIES - The libraries needed by libusb
138
#
149

15-
# FreeBSD has built-in libusb since 800069
16-
IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
17-
EXEC_PROGRAM(sysctl ARGS -n kern.osreldate OUTPUT_VARIABLE FREEBSD_VERSION)
18-
SET(MIN_FREEBSD_VERSION 800068)
19-
IF(FREEBSD_VERSION GREATER ${MIN_FREEBSD_VERSION})
20-
SET(LIBUSB_FOUND TRUE)
21-
SET(LIBUSB_INCLUDE_DIRS "/usr/include")
22-
SET(LIBUSB_LIBRARIES "usb")
23-
SET(LIBUSB_LIBRARY_DIRS "/usr/lib/")
24-
ENDIF(FREEBSD_VERSION GREATER ${MIN_FREEBSD_VERSION})
25-
ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
10+
FIND_PACKAGE(PkgConfig)
11+
# Skip searching for libusb-0.1 on Windows, use libusb-win32 instead
12+
IF(PKG_CONFIG_FOUND AND NOT WIN32)
13+
PKG_SEARCH_MODULE(LIBUSB libusb libusb-0.1)
14+
PKG_CHECK_MODULES(LIBUSB ${LIBUSB_MODULE_NAME})
15+
ENDIF(PKG_CONFIG_FOUND AND NOT WIN32)
2616

2717
IF(NOT LIBUSB_FOUND)
28-
IF(WIN32)
29-
IF(MINGW)
30-
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
31-
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/lib/gcc")
32-
SET(LIBUSB_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/bin/x86/")
33-
ELSE(MINGW)
34-
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "$ENV{ProgramW6432}/libusb-win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
35-
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "$ENV{ProgramW6432}/libusb-win32/lib/msvc_x64")
36-
SET(LIBUSB_LIBRARY_DIR "$ENV{ProgramW6432}/libusb-win32/bin/amd64/")
37-
ENDIF(MINGW)
38-
# Must fix up variable to avoid backslashes during packaging
39-
STRING(REGEX REPLACE "\\\\" "/" LIBUSB_LIBRARY_DIR ${LIBUSB_LIBRARY_DIR})
40-
ELSE(WIN32)
41-
# If not under Windows we use PkgConfig
42-
FIND_PACKAGE (PkgConfig)
43-
IF(PKG_CONFIG_FOUND)
44-
PKG_CHECK_MODULES(LIBUSB REQUIRED libusb)
45-
ELSE(PKG_CONFIG_FOUND)
46-
MESSAGE(FATAL_ERROR "Could not find PkgConfig")
47-
ENDIF(PKG_CONFIG_FOUND)
48-
ENDIF(WIN32)
49-
50-
IF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
51-
SET(LIBUSB_FOUND TRUE)
52-
ENDIF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
18+
FIND_PATH(LIBUSB_INCLUDE_DIRS NAMES usb.h lusb0_usb.h)
19+
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb libusb0)
20+
GET_FILENAME_COMPONENT(LIBUSB_LIBRARY_DIRS ${LIBUSB_LIBRARIES} PATH CACHE)
5321
ENDIF(NOT LIBUSB_FOUND)
5422

55-
IF(LIBUSB_FOUND)
56-
IF(NOT LIBUSB_FIND_QUIETLY)
57-
MESSAGE(STATUS "Found LIBUSB: ${LIBUSB_LIBRARIES} ${LIBUSB_INCLUDE_DIRS}")
58-
ENDIF (NOT LIBUSB_FIND_QUIETLY)
59-
ELSE(LIBUSB_FOUND)
60-
IF(LIBUSB_FIND_REQUIRED)
61-
MESSAGE(FATAL_ERROR "Could not find LIBUSB")
62-
ENDIF(LIBUSB_FIND_REQUIRED)
63-
ENDIF(LIBUSB_FOUND)
23+
INCLUDE(FindPackageHandleStandardArgs)
24+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB REQUIRED_VARS
25+
LIBUSB_INCLUDE_DIRS
26+
LIBUSB_LIBRARIES
27+
LIBUSB_LIBRARY_DIRS
28+
)
29+
MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIRS LIBUSB_LIBRARIES LIBUSB_LIBRARY_DIRS)

0 commit comments

Comments
 (0)