hidapi: remove now obsolete iconv patch
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
b8a2d99457
commit
8c1030e52a
2 changed files with 1 additions and 101 deletions
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=hidapi
|
||||
PKG_VERSION:=0.12.0
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/libusb/hidapi/tar.gz/$(PKG_NAME)-$(PKG_VERSION)?
|
||||
|
|
|
@ -1,100 +0,0 @@
|
|||
From cfcddf90ea6add9d4aaa99ee2decc5a9140bdf37 Mon Sep 17 00:00:00 2001
|
||||
From: Ihor Dutchak <ihor.youw@gmail.com>
|
||||
Date: Sat, 18 Jun 2022 15:58:31 +0300
|
||||
Subject: [PATCH 1/3] Ensure Iconv is found when provided via CFLAGS/LDFLAGS
|
||||
|
||||
- by default find_file/find_library doesn't respect CFLAGS/LDFLAGS,
|
||||
and FindIconv fails to find Iconv;
|
||||
- by explicitly trying to link against `-liconv` - we're checking if library is available in such way;
|
||||
- additionally: if Iconv is detected as BUILT_IN, no need to explicitly depend on `Iconv::Iconv`;
|
||||
---
|
||||
libusb/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++--------
|
||||
src/CMakeLists.txt | 3 ---
|
||||
2 files changed, 33 insertions(+), 11 deletions(-)
|
||||
|
||||
--- a/libusb/CMakeLists.txt
|
||||
+++ b/libusb/CMakeLists.txt
|
||||
@@ -22,11 +22,53 @@ target_link_libraries(hidapi_libusb PRIV
|
||||
if(HIDAPI_NO_ICONV)
|
||||
target_compile_definitions(hidapi_libusb PRIVATE NO_ICONV)
|
||||
else()
|
||||
- if(NOT ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.11)
|
||||
- find_package(Iconv REQUIRED)
|
||||
+ if(NOT ANDROID)
|
||||
include(CheckCSourceCompiles)
|
||||
- target_link_libraries(hidapi_libusb PRIVATE Iconv::Iconv)
|
||||
- set(CMAKE_REQUIRED_LIBRARIES "Iconv::Iconv")
|
||||
+
|
||||
+ if(NOT CMAKE_VERSION VERSION_LESS 3.11)
|
||||
+ message(STATUS "Check for Iconv")
|
||||
+ find_package(Iconv)
|
||||
+ if(Iconv_FOUND)
|
||||
+ if(NOT Iconv_IS_BUILT_IN)
|
||||
+ target_link_libraries(hidapi_libusb PRIVATE Iconv::Iconv)
|
||||
+ set(CMAKE_REQUIRED_LIBRARIES "Iconv::Iconv")
|
||||
+ if(NOT BUILD_SHARED_LIBS)
|
||||
+ set(HIDAPI_NEED_EXPORT_ICONV TRUE PARENT_SCOPE)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ else()
|
||||
+ message(STATUS "Iconv Explicitly check '-liconv'")
|
||||
+ # Sometime the build environment is not setup
|
||||
+ # in a way CMake can find Iconv on its own by default.
|
||||
+ # But if we simply link against iconv (-liconv), the build may succeed
|
||||
+ # due to other compiler/link flags.
|
||||
+ set(CMAKE_REQUIRED_LIBRARIES "iconv")
|
||||
+ check_c_source_compiles("
|
||||
+ #include <stddef.h>
|
||||
+ #include <iconv.h>
|
||||
+ int main() {
|
||||
+ char *a, *b;
|
||||
+ size_t i, j;
|
||||
+ iconv_t ic;
|
||||
+ ic = iconv_open(\"to\", \"from\");
|
||||
+ iconv(ic, &a, &i, &b, &j);
|
||||
+ iconv_close(ic);
|
||||
+ }
|
||||
+ "
|
||||
+ Iconv_EXPLICITLY_AT_ENV)
|
||||
+ if(Iconv_EXPLICITLY_AT_ENV)
|
||||
+ message(STATUS "Iconv Explicitly check '-liconv' - Available")
|
||||
+ target_link_libraries(hidapi_libusb PRIVATE iconv)
|
||||
+ else()
|
||||
+ message(FATAL_ERROR "Iconv is not found, make sure to provide it in the build environment")
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ else()
|
||||
+ # otherwise there is 2 options:
|
||||
+ # 1) iconv is provided by Standard C library and the build will be just fine
|
||||
+ # 2) The _user_ has to provide additiona compilation options for this project/target
|
||||
+ endif()
|
||||
+
|
||||
# check for error: "conflicting types for 'iconv'"
|
||||
check_c_source_compiles("#include<iconv.h>
|
||||
extern size_t iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
|
||||
@@ -35,11 +77,9 @@ else()
|
||||
if(HIDAPI_ICONV_CONST)
|
||||
target_compile_definitions(hidapi_libusb PRIVATE "ICONV_CONST=const")
|
||||
endif()
|
||||
+ else()
|
||||
+ # On Android Iconv is disabled on the code level anyway, so no issue;
|
||||
endif()
|
||||
- # otherwise there is 3 options:
|
||||
- # 1) On Android Iconv is disabled on the code level anyway, so no issue;
|
||||
- # 2) iconv is provided by Standard C library and the build will be just fine;
|
||||
- # 4) The _user_ has to provide additiona compilation options for this project/target.
|
||||
endif()
|
||||
|
||||
set_target_properties(hidapi_libusb
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -148,9 +148,6 @@ else()
|
||||
if(NOT TARGET usb-1.0)
|
||||
set(HIDAPI_NEED_EXPORT_LIBUSB TRUE)
|
||||
endif()
|
||||
- if(NOT HIDAPI_NO_ICONV AND NOT ANDROID AND NOT CMAKE_VERSION VERSION_LESS 3.11)
|
||||
- set(HIDAPI_NEED_EXPORT_ICONV TRUE)
|
||||
- endif()
|
||||
endif()
|
||||
elseif(NOT TARGET hidapi_hidraw)
|
||||
message(FATAL_ERROR "Select at least one option to build: HIDAPI_WITH_LIBUSB or HIDAPI_WITH_HIDRAW")
|
Loading…
Reference in a new issue