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,14 +131,17 @@ ENDIF(LIBUSB_INCLUDE_DIRS)
|
|||||||
|
|
||||||
# version.rc for Windows
|
# version.rc for Windows
|
||||||
IF(WIN32)
|
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_COMMENT "${PACKAGE_NAME} library")
|
||||||
SET(RC_INTERNAL_NAME "${PACKAGE_NAME} ${WIN32_MODE}")
|
SET(RC_INTERNAL_NAME "${PACKAGE_NAME} ${WIN32_MODE}")
|
||||||
SET(RC_ORIGINAL_NAME ${PACKAGE_NAME}.dll)
|
SET(RC_ORIGINAL_NAME ${PACKAGE_NAME}.dll)
|
||||||
|
|||||||
@ -17,7 +17,6 @@ IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
|||||||
EXEC_PROGRAM(sysctl ARGS -n kern.osreldate OUTPUT_VARIABLE FREEBSD_VERSION)
|
EXEC_PROGRAM(sysctl ARGS -n kern.osreldate OUTPUT_VARIABLE FREEBSD_VERSION)
|
||||||
SET(MIN_FREEBSD_VERSION 800068)
|
SET(MIN_FREEBSD_VERSION 800068)
|
||||||
IF(FREEBSD_VERSION GREATER ${MIN_FREEBSD_VERSION})
|
IF(FREEBSD_VERSION GREATER ${MIN_FREEBSD_VERSION})
|
||||||
SET(LIBUSB_FOUND TRUE)
|
|
||||||
SET(LIBUSB_INCLUDE_DIRS "/usr/include")
|
SET(LIBUSB_INCLUDE_DIRS "/usr/include")
|
||||||
SET(LIBUSB_LIBRARIES "usb")
|
SET(LIBUSB_LIBRARIES "usb")
|
||||||
SET(LIBUSB_LIBRARY_DIRS "/usr/lib/")
|
SET(LIBUSB_LIBRARY_DIRS "/usr/lib/")
|
||||||
@ -25,33 +24,27 @@ IF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
|||||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
||||||
|
|
||||||
IF(NOT LIBUSB_FOUND)
|
IF(NOT LIBUSB_FOUND)
|
||||||
IF(WIN32)
|
FIND_PACKAGE (PkgConfig)
|
||||||
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)
|
|
||||||
|
|
||||||
IF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
|
IF(PKG_CONFIG_FOUND)
|
||||||
SET(LIBUSB_FOUND TRUE)
|
PKG_CHECK_MODULES(LIBUSB REQUIRED libusb-1.0)
|
||||||
ENDIF(LIBUSB_INCLUDE_DIRS AND LIBUSB_LIBRARIES)
|
ENDIF()
|
||||||
ENDIF(NOT LIBUSB_FOUND)
|
|
||||||
|
|
||||||
IF(LIBUSB_FOUND)
|
FIND_PATH(LIBUSB_INCLUDE_DIRS libusb.h lusb0_usb.h
|
||||||
IF(NOT LIBUSB_FIND_QUIETLY)
|
PATHS
|
||||||
MESSAGE(STATUS "Found LIBUSB: ${LIBUSB_LIBRARIES} ${LIBUSB_INCLUDE_DIRS}")
|
${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}
|
||||||
ENDIF (NOT LIBUSB_FIND_QUIETLY)
|
"$ENV{ProgramFiles}/LibUSB-Win32/include"
|
||||||
ELSE(LIBUSB_FOUND)
|
PATH_SUFFIXES libusb-1.0
|
||||||
IF(LIBUSB_FIND_REQUIRED)
|
)
|
||||||
MESSAGE(FATAL_ERROR "Could not find LIBUSB")
|
|
||||||
ENDIF(LIBUSB_FIND_REQUIRED)
|
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 libusb
|
||||||
ENDIF(LIBUSB_FOUND)
|
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(PCRE_INCLUDE_DIRS AND PCRE_LIBRARIES)
|
||||||
ENDIF(NOT PCRE_FOUND)
|
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)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG
|
||||||
PCRE_LIBRARIES
|
PCRE_LIBRARIES
|
||||||
|
|||||||
@ -113,7 +113,7 @@ uart_close(const serial_port sp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
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);
|
PurgeComm(((struct serial_port_windows *) sp)->hPort, PURGE_RXABORT | PURGE_RXCLEAR);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,7 @@
|
|||||||
#define __WINDOWS_H__
|
#define __WINDOWS_H__
|
||||||
|
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
|
# undef interface
|
||||||
# include <winerror.h>
|
# include <winerror.h>
|
||||||
# include "win32/err.h"
|
# include "win32/err.h"
|
||||||
# if defined (__MINGW32__)
|
# if defined (__MINGW32__)
|
||||||
|
|||||||
@ -32,11 +32,11 @@ FOREACH(source ${EXAMPLES-SOURCES})
|
|||||||
ENDFOREACH(source)
|
ENDFOREACH(source)
|
||||||
|
|
||||||
#install required libraries
|
#install required libraries
|
||||||
IF(WIN32)
|
IF(WIN32 AND NOT MINGW)
|
||||||
INCLUDE(InstallRequiredSystemLibraries)
|
INCLUDE(InstallRequiredSystemLibraries)
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
||||||
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
||||||
ENDIF(WIN32)
|
ENDIF()
|
||||||
|
|
||||||
IF(NOT WIN32)
|
IF(NOT WIN32)
|
||||||
# Manuals for the examples
|
# Manuals for the examples
|
||||||
|
|||||||
@ -79,7 +79,7 @@ IF(LIBNFC_LOG)
|
|||||||
LIST(APPEND LIBRARY_SOURCES log log-internal)
|
LIST(APPEND LIBRARY_SOURCES log log-internal)
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
ENDIF(LIBNFC_LOG)
|
ENDIF(LIBNFC_LOG)
|
||||||
ADD_LIBRARY(nfc SHARED ${LIBRARY_SOURCES})
|
ADD_LIBRARY(nfc ${LIBRARY_SOURCES})
|
||||||
|
|
||||||
IF(PCSC_FOUND)
|
IF(PCSC_FOUND)
|
||||||
TARGET_LINK_LIBRARIES(nfc ${PCSC_LIBRARIES})
|
TARGET_LINK_LIBRARIES(nfc ${PCSC_LIBRARIES})
|
||||||
@ -98,20 +98,24 @@ IF(WIN32)
|
|||||||
TARGET_LINK_LIBRARIES(nfc ${PCRE_LIBRARIES})
|
TARGET_LINK_LIBRARIES(nfc ${PCRE_LIBRARIES})
|
||||||
ENDIF(PCRE_FOUND)
|
ENDIF(PCRE_FOUND)
|
||||||
|
|
||||||
ADD_CUSTOM_COMMAND(
|
IF(NOT MINGW)
|
||||||
OUTPUT libnfc.lib
|
ADD_CUSTOM_COMMAND(
|
||||||
COMMAND dlltool -d ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def -l ${CMAKE_CURRENT_BINARY_DIR}/libnfc.lib ${CMAKE_CURRENT_BINARY_DIR}/libnfc.dll
|
OUTPUT libnfc.lib
|
||||||
DEPENDS nfc ${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/nfc.def
|
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)
|
)
|
||||||
|
ADD_CUSTOM_TARGET(win32lib ALL DEPENDS libnfc.lib)
|
||||||
|
|
||||||
|
# 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()
|
||||||
|
|
||||||
# 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)
|
|
||||||
ELSE(WIN32)
|
|
||||||
INSTALL(TARGETS nfc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
|
|
||||||
ENDIF(WIN32)
|
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)
|
ENDFOREACH(source)
|
||||||
|
|
||||||
#install required libraries
|
#install required libraries
|
||||||
IF(WIN32)
|
IF(WIN32 AND NOT MINGW)
|
||||||
INCLUDE(InstallRequiredSystemLibraries)
|
INCLUDE(InstallRequiredSystemLibraries)
|
||||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/FixBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake @ONLY)
|
||||||
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake)
|
||||||
ENDIF(WIN32)
|
ENDIF()
|
||||||
|
|
||||||
IF(NOT WIN32)
|
IF(NOT WIN32)
|
||||||
# Manuals for the examples
|
# Manuals for the examples
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user