libusb dependency can be disabled using CMake files - but it remove PN531USB and PN533USB support - this is useful for Windows newer than XP. (Thanks to Fkooman)

This commit is contained in:
Romuald Conty 2009-09-10 09:28:17 +00:00
parent 9e60b6e392
commit 3ec00eb06c
4 changed files with 35 additions and 14 deletions

View file

@ -7,7 +7,8 @@ SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
SET(LIBNFC_VERBOSE_OUTPUT OFF CACHE BOOL "Verbose output of communication with the NFC chip") SET(LIBNFC_VERBOSE_OUTPUT OFF CACHE BOOL "Verbose output of communication with the NFC chip")
SET(LIBNFC_LANG_C99 OFF CACHE BOOL "Use C99 language standard (GCC only)") SET(LIBNFC_LANG_C99 OFF CACHE BOOL "Use C99 language standard (GCC only)")
SET(LIBNFC_PCSC ON CACHE BOOL "Enable PC/SC support") SET(LIBNFC_PCSC ON CACHE BOOL "Enable PC/SC support (PN532)")
SET(LIBNFC_USB OFF CACHE BOOL "Enable direct USB communication support (PN531 and PN533)")
SET(LIBNFC_DISABLE_SERIAL_AUTOPROBE OFF CACHE BOOL "Disable serial autoprobe") SET(LIBNFC_DISABLE_SERIAL_AUTOPROBE OFF CACHE BOOL "Disable serial autoprobe")
# Set some pkg-config variables # Set some pkg-config variables
@ -47,11 +48,11 @@ IF(MSVC)
ELSE(MSVC) ELSE(MSVC)
SET(CPACK_GENERATOR "TBZ2") SET(CPACK_GENERATOR "TBZ2")
ENDIF(MSVC) ENDIF(MSVC)
SET(CPACK_PACKAGE_FILE_NAME "libnfc-${VERSION}-bin-${CMAKE_SYSTEM_PROCESSOR}")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Near Field Communication (NFC) library") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Near Field Communication (NFC) library")
SET(CPACK_PACKAGE_VENDOR "Roel Verdult") SET(CPACK_PACKAGE_VENDOR "Roel Verdult")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LibNFC")
SET(CPACK_PACKAGE_VERSION_MAJOR "1") SET(CPACK_PACKAGE_VERSION_MAJOR "1")
SET(CPACK_PACKAGE_VERSION_MINOR "2") SET(CPACK_PACKAGE_VERSION_MINOR "2")
SET(CPACK_PACKAGE_VERSION_PATCH "2") SET(CPACK_PACKAGE_VERSION_PATCH "2")

View file

@ -1,10 +1,9 @@
Requirements - Running Requirements - Running
====================== ======================
In order to run the included tools, at least these dependencies should be In order to use the library and run included examples, at least this
installed: dependency should be installed:
- LibUsb-Win32 0.1.12.2 [1] - Microsoft Visual C++ 2008 SP1 Redistributable Package [1]
- Microsoft Visual C++ 2008 SP1 Redistributable Package [2]
These C++ 2008 SP1 libraries are also part of "Microsoft .NET Framework 3.5 These C++ 2008 SP1 libraries are also part of "Microsoft .NET Framework 3.5
Service Pack 1 and .NET Framework 3.5 Family" which can be obtained through Service Pack 1 and .NET Framework 3.5 Family" which can be obtained through
@ -13,6 +12,14 @@ Windows Update.
There are two versions of the redistributable package (one for x86 and one for There are two versions of the redistributable package (one for x86 and one for
x64). Be sure which one is needed. x64). Be sure which one is needed.
An optional requirement is:
- LibUsb-Win32 0.1.12.2 [2]
In case support for the PN531USB and PN533USB is needed. LibUsb has serious issues
on Windows systems newer than Windows XP (and on 64 bit). See LibUsb support
mailing lists for more information.
Requirements - Development Requirements - Development
========================== ==========================
This project uses CMake for creating a Visual Studio project from the This project uses CMake for creating a Visual Studio project from the
@ -23,7 +30,7 @@ The following software was used to create the libnfc distribution:
- CMake 2.6.4 [3] - CMake 2.6.4 [3]
- Microsoft Windows SDK for Windows 7 (7.0) [4] - Microsoft Windows SDK for Windows 7 (7.0) [4]
- Microsoft .NET framework 3.5 SP1 (Windows Update) - Microsoft .NET framework 3.5 SP1 (Windows Update)
- LibUsb-Win32 0.1.12.2 [1] - LibUsb-Win32 0.1.12.2 (only on Windows XP builds) [2]
- NSIS 2.45 (to create the installer) [5] - NSIS 2.45 (to create the installer) [5]
- 7-Zip 4.65 (for generating source archive) [6] - 7-Zip 4.65 (for generating source archive) [6]
@ -49,6 +56,11 @@ Now you can configure the build. Press "Configure", specify "NMake Makefiles"
and then you have the opportunity to set some configuration variables. If you and then you have the opportunity to set some configuration variables. If you
don't want a Debug build change the variable CMAKE_BUILD_TYPE to "Release". don't want a Debug build change the variable CMAKE_BUILD_TYPE to "Release".
If a non-GUI solution is preferred one can use:
C:\dev\libnfc-read-only\bin> cmake -G "NMake Makefiles"
-DCMAKE_BUILD_TYPE=Release ..
Now run NMake: Now run NMake:
C:\dev\libnfc-read-only\bin> nmake package C:\dev\libnfc-read-only\bin> nmake package
@ -95,8 +107,8 @@ however.
References References
========== ==========
[1] http://libusb-win32.sourceforge.net/ [1] http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2
[2] http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2 [2] http://libusb-win32.sourceforge.net/
[3] http://www.cmake.org [3] http://www.cmake.org
[4] http://msdn.microsoft.com/en-us/windows/bb980924.aspx [4] http://msdn.microsoft.com/en-us/windows/bb980924.aspx
[5] http://nsis.sourceforge.net/Main_Page [5] http://nsis.sourceforge.net/Main_Page

View file

@ -1,4 +1,4 @@
SET(LIBRARY-SOURCES libnfc dev_pn531 dev_pn533 rs232 bitutils dev_arygon) SET(LIBRARY-SOURCES libnfc rs232 bitutils dev_arygon)
SET(TOOLS-SOURCES list mftool mfultool initiator target anticol emulate relay) SET(TOOLS-SOURCES list mftool mfultool initiator target anticol emulate relay)
# find PCSC library and headers # find PCSC library and headers
@ -9,7 +9,11 @@ IF(LIBNFC_PCSC)
ENDIF(LIBNFC_PCSC) ENDIF(LIBNFC_PCSC)
# find libusb library and headers # find libusb library and headers
FIND_PACKAGE(LIBUSB REQUIRED) IF(LIBNFC_USB)
FIND_PACKAGE(LIBUSB REQUIRED)
ADD_DEFINITIONS("-DHAVE_LIBUSB=1")
SET(LIBRARY-SOURCES ${LIBRARY-SOURCES} "dev_pn531 dev_pn533")
ENDIF(LIBNFC_USB)
IF(LIBNFC_VERBOSE_OUTPUT) IF(LIBNFC_VERBOSE_OUTPUT)
ADD_DEFINITIONS("-DDEBUG") ADD_DEFINITIONS("-DDEBUG")

View file

@ -26,8 +26,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
#ifdef HAVE_PCSC_LITE #ifdef HAVE_PCSC_LITE
#include "dev_acr122.h" #include "dev_acr122.h"
#endif #endif
#include "dev_pn531.h" #ifdef HAVE_LIBUSB
#include "dev_pn533.h" #include "dev_pn531.h"
#include "dev_pn533.h"
#endif HAVE_LIBUSB
#include "dev_arygon.h" #include "dev_arygon.h"
const static struct dev_callbacks dev_callbacks_list[] = { const static struct dev_callbacks dev_callbacks_list[] = {
@ -35,8 +37,10 @@ const static struct dev_callbacks dev_callbacks_list[] = {
#ifdef HAVE_PCSC_LITE #ifdef HAVE_PCSC_LITE
{ "ACR122", dev_acr122_connect, dev_acr122_transceive, dev_acr122_disconnect }, { "ACR122", dev_acr122_connect, dev_acr122_transceive, dev_acr122_disconnect },
#endif #endif
#ifdef HAVE_LIBUSB
{ "PN531USB", dev_pn531_connect, dev_pn531_transceive, dev_pn531_disconnect }, { "PN531USB", dev_pn531_connect, dev_pn531_transceive, dev_pn531_disconnect },
{ "PN533USB", dev_pn533_connect, dev_pn533_transceive, dev_pn533_disconnect }, { "PN533USB", dev_pn533_connect, dev_pn533_transceive, dev_pn533_disconnect },
#endif HAVE_LIBUSB
{ "ARYGON", dev_arygon_connect, dev_arygon_transceive, dev_arygon_disconnect } { "ARYGON", dev_arygon_connect, dev_arygon_transceive, dev_arygon_disconnect }
}; };