101 lines
3.6 KiB
CMake
101 lines
3.6 KiB
CMake
PROJECT(libnfc C)
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
|
SET(VERSION_MAJOR "1")
|
|
SET(VERSION_MINOR "3")
|
|
SET(VERSION_PATCH "0")
|
|
|
|
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
|
|
SET(PACKAGE_NAME "libnfc")
|
|
SET(PACKAGE_VERSION ${VERSION})
|
|
SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/config.h)
|
|
|
|
# make it easy to locate CMake modules for finding libraries
|
|
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
|
|
|
|
SET(LIBNFC_DEBUG_OUTPUT OFF CACHE BOOL "Debug output of communication with the NFC chip")
|
|
SET(LIBNFC_PCSC ON CACHE BOOL "Enable PC/SC support (ACR122)")
|
|
SET(LIBNFC_USB ON CACHE BOOL "Enable direct USB communication support (PN531 and PN533)")
|
|
SET(LIBNFC_DISABLE_SERIAL_AUTOPROBE OFF CACHE BOOL "Disable serial autoprobe")
|
|
|
|
IF(DEFINED CMAKE_INSTALL_LIBDIR)
|
|
SET(libdir ${CMAKE_INSTALL_LIBDIR})
|
|
ELSE(DEFINED CMAKE_INSTALL_LIBDIR)
|
|
SET(CMAKE_INSTALL_LIBDIR lib)
|
|
SET(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
|
ENDIF(DEFINED CMAKE_INSTALL_LIBDIR)
|
|
|
|
IF(DEFINED INCLUDE_INSTALL_DIR)
|
|
SET(includedir ${INCLUDE_INSTALL_DIR})
|
|
ELSE(DEFINED INCLUDE_INSTALL_DIR)
|
|
SET(INCLUDE_INSTALL_DIR include)
|
|
SET(includedir ${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR})
|
|
ENDIF(DEFINED INCLUDE_INSTALL_DIR)
|
|
|
|
IF(NOT DEFINED SHARE_INSTALL_PREFIX)
|
|
SET(SHARE_INSTALL_PREFIX share)
|
|
ENDIF(NOT DEFINED SHARE_INSTALL_PREFIX)
|
|
|
|
IF(LIBNFC_DISABLE_SERIAL_AUTOPROBE)
|
|
ADD_DEFINITIONS("-DDISABLE_SERIAL_AUTOPROBE")
|
|
ENDIF(LIBNFC_DISABLE_SERIAL_AUTOPROBE)
|
|
|
|
IF(LIBNFC_DEBUG_OUTPUT)
|
|
ADD_DEFINITIONS(-DDEBUG -g3)
|
|
ENDIF(LIBNFC_DEBUG_OUTPUT)
|
|
|
|
ADD_DEFINITIONS(-Wall -pedantic -std=c99)
|
|
|
|
IF(NOT MSVC)
|
|
# Set some pkg-config variables
|
|
SET(prefix ${CMAKE_INSTALL_PREFIX})
|
|
SET(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
|
SET(PACKAGE "libnfc")
|
|
IF(LIBNFC_USB)
|
|
SET(PKG_REQ ${PKG_REQ} "libusb")
|
|
ENDIF(LIBNFC_USB)
|
|
IF(LIBNFC_PCSC)
|
|
SET(PKG_REQ ${PKG_REQ} "libpcsclite")
|
|
ENDIF(LIBNFC_PCSC)
|
|
# CMake lists are separated by a semi colon, replace with colon
|
|
STRING(REPLACE ";" "," PKG_CONFIG_REQUIRES "${PKG_REQ}")
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libnfc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc @ONLY)
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
ENDIF(NOT MSVC)
|
|
|
|
ADD_SUBDIRECTORY(src)
|
|
|
|
# Binary Package
|
|
IF(MSVC)
|
|
SET(CPACK_GENERATOR "NSIS")
|
|
ELSE(MSVC)
|
|
SET(CPACK_GENERATOR "TBZ2")
|
|
ENDIF(MSVC)
|
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Near Field Communication (NFC) library")
|
|
SET(CPACK_PACKAGE_VENDOR "Roel Verdult")
|
|
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
|
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
|
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "libnfc")
|
|
SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
|
SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
|
SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
|
|
SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "NFC Library")
|
|
SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Example Applications")
|
|
SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Development Headers")
|
|
SET(CPACK_COMPONENT_MANUALS_DISPLAY_NAME "Example Applications Manuals")
|
|
SET(CPACK_COMPONENT_HEADERS_DISABLED TRUE)
|
|
SET(CPACK_COMPONENT_MANUALS_DISABLED TRUE)
|
|
SET(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
|
|
SET(CPACK_COMPONENT_EXAMPLES_DEPENDS libraries)
|
|
SET(CPACK_COMPONENT_MANUALS_DEPENDS examples)
|
|
|
|
# Source Package
|
|
IF(MSVC)
|
|
SET(CPACK_SOURCE_GENERATOR "ZIP")
|
|
ELSE(MSVC)
|
|
SET(CPACK_SOURCE_GENERATOR "ZIP;TBZ2")
|
|
ENDIF(MSVC)
|
|
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "libnfc-${VERSION}")
|
|
SET(CPACK_SOURCE_IGNORE_FILES "~$" "/\\\\.svn/" "bin/")
|
|
INCLUDE(CPack)
|