manually merged with ARM version
This commit is contained in:
95
e502/libusb-1.0/libusb.cmake
Normal file
95
e502/libusb-1.0/libusb.cmake
Normal file
@ -0,0 +1,95 @@
|
||||
# Файл для включения в проект на CMAKE.
|
||||
# После включения будут установлены следующие перменные:
|
||||
# LIBUSB_HEADERS - используемые заголовочные файлы
|
||||
# LIBUSB_SOURCES - используемые файлы исходных кодов
|
||||
# LIBUSB_INCLUDE_DIRS - директории включения заголовков
|
||||
# LIBUSB_LIBS - используемые библиотеки
|
||||
|
||||
cmake_policy(PUSH)
|
||||
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
|
||||
|
||||
|
||||
set(LIBUSB_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||
set(LIBUSB_DIR_SRC ${LIBUSB_DIR}/libusb-1.0)
|
||||
|
||||
set(LIBUSB_INCLUDE_DIRS ${LIBUSB_DIR})
|
||||
|
||||
set(LIBUSB_SOURCES
|
||||
${LIBUSB_DIR_SRC}/core.c
|
||||
${LIBUSB_DIR_SRC}/descriptor.c
|
||||
${LIBUSB_DIR_SRC}/hotplug.c
|
||||
${LIBUSB_DIR_SRC}/io.c
|
||||
${LIBUSB_DIR_SRC}/strerror.c
|
||||
${LIBUSB_DIR_SRC}/sync.c
|
||||
)
|
||||
|
||||
set(LIBUSB_HEADERS
|
||||
${LIBUSB_DIR_SRC}/libusb.h
|
||||
${LIBUSB_DIR_SRC}/libusbi.h
|
||||
${LIBUSB_DIR_SRC}/hotplug.h
|
||||
${LIBUSB_DIR_SRC}/version.h
|
||||
${LIBUSB_DIR_SRC}/version_nano.h
|
||||
)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
include(CheckStructHasMember)
|
||||
check_struct_has_member("struct timespec" tv_sec time.h HAVE_STRUCT_TIMESPEC LANGUAGE C)
|
||||
if(HAVE_STRUCT_TIMESPEC)
|
||||
add_definitions(-DHAVE_STRUCT_TIMESPEC)
|
||||
endif(HAVE_STRUCT_TIMESPEC)
|
||||
set(SOURCES ${SOURCES}
|
||||
${LIBUSB_DIR_SRC}/os/poll_windows.c
|
||||
${LIBUSB_DIR_SRC}/os/threads_windows.c
|
||||
${LIBUSB_DIR_SRC}/os/windows_usb.c
|
||||
)
|
||||
set(HEADERS ${HEADERS}
|
||||
${LIBUSB_DIR_SRC}/os/poll_windows.h
|
||||
${LIBUSB_DIR_SRC}/os/threads_windows.h
|
||||
${LIBUSB_DIR_SRC}/os/windows_common.h
|
||||
)
|
||||
else(WIN32)
|
||||
message(FATAL_ERROR "unsupported os")
|
||||
endif(WIN32)
|
||||
|
||||
|
||||
|
||||
if(MSVC)
|
||||
set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} ${LIBUSB_DIR_SRC}/msvc)
|
||||
|
||||
#В зависимости от версии msvc файлы errno.h,stdint.h,inttypes.h могут присутсвовать
|
||||
#или отсутствовать. При этом файлы из libusb могут конфликтовать с файлами из msvc.
|
||||
#Поэтому проверяем каждый из этих файлов, и прописываем до него путь в поиске include,
|
||||
#только в случае, если он не найден
|
||||
include(CheckIncludeFile)
|
||||
check_include_file(errno.h HAVE_ERRNO)
|
||||
if (NOT ${HAVE_ERRNO})
|
||||
set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} ${LIBUSB_DIR_SRC}/errno)
|
||||
endif (NOT ${HAVE_ERRNO})
|
||||
|
||||
check_include_file(stdint.h HAVE_STDINT)
|
||||
if (NOT ${HAVE_STDINT})
|
||||
set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} ${LIBUSB_DIR_SRC}/stdint)
|
||||
endif (NOT ${HAVE_STDINT})
|
||||
|
||||
check_include_file(inttypes.h HAVE_INTTYPES)
|
||||
if (NOT ${HAVE_INTTYPES})
|
||||
set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIRS} ${LIBUSB_DIR_SRC}/inttypes)
|
||||
endif (NOT ${HAVE_INTTYPES})
|
||||
|
||||
set(LIBUSB_HEADERS ${LIBUSB_HEADERS}
|
||||
${LIBUSB_DIR_SRC}/msvc/config.h
|
||||
${LIBUSB_DIR_SRC}/msvc/missing.h
|
||||
${LIBUSB_DIR_SRC}/msvc/errno/errno.h
|
||||
${LIBUSB_DIR_SRC}/msvc/inttypes/inttypes.h
|
||||
${LIBUSB_DIR_SRC}/msvc/stdint/stdint.h
|
||||
)
|
||||
else(MSVC)
|
||||
message(FATAL_ERROR "unsupported compiler")
|
||||
endif(MSVC)
|
||||
|
||||
|
||||
cmake_policy(POP)
|
||||
Reference in New Issue
Block a user