mirror of
https://github.com/nfc-tools/libnfc.git
synced 2025-12-23 18:50:05 +00:00
Allow cross-compilation from mingw-w64 using libusb/libusbx 1.0.18
This commit is contained in:
parent
c2504e0825
commit
5f71a79b56
@ -131,13 +131,16 @@ ENDIF(LIBUSB_INCLUDE_DIRS)
|
||||
|
||||
# version.rc for Windows
|
||||
IF(WIN32)
|
||||
# Date for filling in rc file information
|
||||
MACRO (GET_CURRENT_YEAR RESULT)
|
||||
EXECUTE_PROCESS(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
|
||||
STRING(REGEX REPLACE ".*(..)/(..)/(....).*" "\\3" ${RESULT} ${${RESULT}})
|
||||
ENDMACRO (GET_CURRENT_YEAR)
|
||||
GET_CURRENT_YEAR(CURRENT_YEAR)
|
||||
MESSAGE("Year for copyright is " ${CURRENT_YEAR})
|
||||
|
||||
IF(NOT MINGW)
|
||||
# Date for filling in rc file information
|
||||
MACRO (GET_CURRENT_YEAR RESULT)
|
||||
EXECUTE_PROCESS(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
|
||||
STRING(REGEX REPLACE ".*(..)/(..)/(....).*" "\\3" ${RESULT} ${${RESULT}})
|
||||
ENDMACRO (GET_CURRENT_YEAR)
|
||||
GET_CURRENT_YEAR(CURRENT_YEAR)
|
||||
MESSAGE("Year for copyright is " ${CURRENT_YEAR})
|
||||
ENDIF()
|
||||
|
||||
SET(RC_COMMENT "${PACKAGE_NAME} library")
|
||||
SET(RC_INTERNAL_NAME "${PACKAGE_NAME} ${WIN32_MODE}")
|
||||
|
||||
@ -17,7 +17,6 @@ IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
||||
EXEC_PROGRAM(sysctl ARGS -n kern.osreldate OUTPUT_VARIABLE FREEBSD_VERSION)
|
||||
SET(MIN_FREEBSD_VERSION 800068)
|
||||
IF(FREEBSD_VERSION GREATER ${MIN_FREEBSD_VERSION})
|
||||
SET(LIBUSB_FOUND TRUE)
|
||||
SET(LIBUSB_INCLUDE_DIRS "/usr/include")
|
||||
SET(LIBUSB_LIBRARIES "usb")
|
||||
SET(LIBUSB_LIBRARY_DIRS "/usr/lib/")
|
||||
@ -25,33 +24,27 @@ IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
||||
|
||||
IF(NOT LIBUSB_FOUND)
|
||||
IF(WIN32)
|
||||
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "$ENV{ProgramFiles}/LibUSB-Win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
|
||||
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "$ENV{ProgramFiles}/LibUSB-Win32/lib/gcc")
|
||||
SET(LIBUSB_LIBRARY_DIR "$ENV{ProgramFiles}/LibUSB-Win32/bin/x86/")
|
||||
# Must fix up variable to avoid backslashes during packaging
|
||||
STRING(REGEX REPLACE "\\\\" "/" LIBUSB_LIBRARY_DIR ${LIBUSB_LIBRARY_DIR})
|
||||
ELSE(WIN32)
|
||||
# If not under Windows we use PkgConfig
|
||||
FIND_PACKAGE (PkgConfig)
|
||||
IF(PKG_CONFIG_FOUND)
|
||||
PKG_CHECK_MODULES(LIBUSB REQUIRED libusb-1.0)
|
||||
ELSE(PKG_CONFIG_FOUND)
|
||||
MESSAGE(FATAL_ERROR "Could not find PkgConfig")
|
||||
ENDIF(PKG_CONFIG_FOUND)
|
||||
ENDIF(WIN32)
|
||||
FIND_PACKAGE (PkgConfig)
|
||||
|
||||
IF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
|
||||
SET(LIBUSB_FOUND TRUE)
|
||||
ENDIF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
|
||||
ENDIF(NOT LIBUSB_FOUND)
|
||||
IF(PKG_CONFIG_FOUND)
|
||||
PKG_CHECK_MODULES(LIBUSB REQUIRED libusb-1.0)
|
||||
ENDIF()
|
||||
|
||||
IF(LIBUSB_FOUND)
|
||||
IF(NOT LIBUSB_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found LIBUSB: ${LIBUSB_LIBRARIES} ${LIBUSB_INCLUDE_DIRS}")
|
||||
ENDIF (NOT LIBUSB_FIND_QUIETLY)
|
||||
ELSE(LIBUSB_FOUND)
|
||||
IF(LIBUSB_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find LIBUSB")
|
||||
ENDIF(LIBUSB_FIND_REQUIRED)
|
||||
ENDIF(LIBUSB_FOUND)
|
||||
FIND_PATH(LIBUSB_INCLUDE_DIRS libusb.h lusb0_usb.h
|
||||
PATHS
|
||||
${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}
|
||||
"$ENV{ProgramFiles}/LibUSB-Win32/include"
|
||||
PATH_SUFFIXES libusb-1.0
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 libusb
|
||||
PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}
|
||||
"$ENV{ProgramFiles}/LibUSB-Win32/lib/gcc"
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIRS)
|
||||
|
||||
MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIRS LIBUSB_LIBRARIES)
|
||||
|
||||
@ -21,16 +21,6 @@ IF(WIN32)
|
||||
ENDIF(PCRE_INCLUDE_DIRS AND PCRE_LIBRARIES)
|
||||
ENDIF(NOT PCRE_FOUND)
|
||||
|
||||
IF(PCRE_FOUND)
|
||||
IF(NOT PCRE_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found PCRE: ${PCRE_LIBRARIES} ${PCRE_INCLUDE_DIRS}")
|
||||
ENDIF (NOT PCRE_FIND_QUIETLY)
|
||||
ELSE(PCRE_FOUND)
|
||||
IF(PCRE_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find PCRE")
|
||||
ENDIF(PCRE_FIND_REQUIRED)
|
||||
ENDIF(PCRE_FOUND)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG
|
||||
PCRE_LIBRARIES
|
||||
|
||||
@ -113,7 +113,7 @@ uart_close(const serial_port sp)
|
||||
}
|
||||
|
||||
void
|
||||
uart_flush_input(const serial_port sp)
|
||||
uart_flush_input(const serial_port sp, bool wait)
|
||||
{
|
||||
PurgeComm(((struct serial_port_windows *) sp)->hPort, PURGE_RXABORT | PURGE_RXCLEAR);
|
||||
}
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
#define __WINDOWS_H__
|
||||
|
||||
# include <windows.h>
|
||||
# undef interface
|
||||
# include <winerror.h>
|
||||
# include "win32/err.h"
|
||||
# if defined (__MINGW32__)
|
||||
|
||||
@ -32,11 +32,11 @@ FOREACH(source ${EXAMPLES-SOURCES})
|
||||
ENDFOREACH(source)
|
||||
|
||||
#install required libraries
|
||||
IF(WIN32)
|
||||
IF(WIN32 AND NOT MINGW)
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
||||
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT WIN32)
|
||||
# Manuals for the examples
|
||||
|
||||
@ -79,7 +79,7 @@ IF(LIBNFC_LOG)
|
||||
LIST(APPEND LIBRARY_SOURCES log log-internal)
|
||||
ENDIF(WIN32)
|
||||
ENDIF(LIBNFC_LOG)
|
||||
ADD_LIBRARY(nfc SHARED ${LIBRARY_SOURCES})
|
||||
ADD_LIBRARY(nfc ${LIBRARY_SOURCES})
|
||||
|
||||
IF(PCSC_FOUND)
|
||||
TARGET_LINK_LIBRARIES(nfc ${PCSC_LIBRARIES})
|
||||
@ -98,20 +98,24 @@ IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(nfc ${PCRE_LIBRARIES})
|
||||
ENDIF(PCRE_FOUND)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT libnfc.lib
|
||||
COMMAND dlltool -d ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def -l ${CMAKE_CURRENT_BINARY_DIR}/libnfc.lib ${CMAKE_CURRENT_BINARY_DIR}/libnfc.dll
|
||||
DEPENDS nfc ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def
|
||||
)
|
||||
ADD_CUSTOM_TARGET(win32lib ALL DEPENDS libnfc.lib)
|
||||
IF(NOT MINGW)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT libnfc.lib
|
||||
COMMAND dlltool -d ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def -l ${CMAKE_CURRENT_BINARY_DIR}/libnfc.lib ${CMAKE_CURRENT_BINARY_DIR}/libnfc.dll
|
||||
DEPENDS nfc ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def
|
||||
)
|
||||
ADD_CUSTOM_TARGET(win32lib ALL DEPENDS libnfc.lib)
|
||||
|
||||
# On Windows the shared (runtime) library should be either in the same
|
||||
# directory as the excutables or in the path, we add it to same directory
|
||||
INSTALL(TARGETS nfc RUNTIME DESTINATION bin COMPONENT libraries)
|
||||
# At compile time we need the .LIB file, we place it in the lib directory
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfc.lib DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
||||
ENDIF()
|
||||
|
||||
# At compile time we need the .LIB file, we place it in the lib directory
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnfc.lib DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
||||
ELSE(WIN32)
|
||||
INSTALL(TARGETS nfc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
||||
ENDIF(WIN32)
|
||||
|
||||
# On Windows the shared (runtime) library should be either in the same
|
||||
# directory as the excutables or in the path, we add it to same directory
|
||||
INSTALL(TARGETS nfc
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION bin
|
||||
COMPONENT libraries)
|
||||
|
||||
@ -46,11 +46,11 @@ FOREACH(source ${UTILS-SOURCES})
|
||||
ENDFOREACH(source)
|
||||
|
||||
#install required libraries
|
||||
IF(WIN32)
|
||||
IF(WIN32 AND NOT MINGW)
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
||||
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT WIN32)
|
||||
# Manuals for the examples
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user