handle static lib build exports

This commit is contained in:
Ihor Dutchak
2020-07-27 15:10:17 +03:00
parent 5e2436c9eb
commit 10469239e9
5 changed files with 46 additions and 5 deletions
+3 -2
View File
@@ -6,10 +6,11 @@ add_library(hidapi_libusb
)
target_link_libraries(hidapi_libusb PUBLIC hidapi_include)
include(FindPkgConfig)
include(FindThreads)
find_package(Threads REQUIRED)
include(FindPkgConfig)
pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0>=1.0.9)
target_link_libraries(hidapi_libusb PRIVATE PkgConfig::libusb Threads::Threads)
set(HIDAPI_LIBNAME "hidapi")
+3 -2
View File
@@ -6,10 +6,11 @@ add_library(hidapi_hidraw
)
target_link_libraries(hidapi_hidraw PUBLIC hidapi_include)
include(FindPkgConfig)
include(FindThreads)
find_package(Threads REQUIRED)
include(FindPkgConfig)
pkg_check_modules(libudev REQUIRED IMPORTED_TARGET libudev)
target_link_libraries(hidapi_hidraw PRIVATE PkgConfig::libudev Threads::Threads)
set_target_properties(hidapi_hidraw
+1 -1
View File
@@ -5,7 +5,7 @@ add_library(hidapi_darwin
hid.c
)
include(FindThreads)
find_package(Threads REQUIRED)
target_link_libraries(hidapi_darwin
PUBLIC hidapi_include
+15
View File
@@ -66,6 +66,10 @@ endif()
set(EXPORT_ALIAS)
set(EXPORT_COMPONENTS)
set(HIDAPI_NEED_EXPORT_THREADS FALSE)
set(HIDAPI_NEED_EXPORT_LIBUSB FALSE)
set(HIDAPI_NEED_EXPORT_LIBUDEV FALSE)
if(WIN32)
add_subdirectory("${PROJECT_ROOT}/windows" windows)
set(EXPORT_ALIAS winapi)
@@ -74,6 +78,9 @@ elseif(APPLE)
add_subdirectory("${PROJECT_ROOT}/mac" mac)
set(EXPORT_ALIAS darwin)
list(APPEND EXPORT_COMPONENTS darwin)
if(NOT BUILD_SHARED_LIBS)
set(HIDAPI_NEED_EXPORT_THREADS TRUE)
endif()
else()
if(NOT DEFINED HIDAPI_WITH_LIBUSB)
set(HIDAPI_WITH_LIBUSB ON)
@@ -85,6 +92,10 @@ else()
if(NOT HIDAPI_WITH_LIBUSB)
set(EXPORT_ALIAS hidraw)
endif()
if(NOT BUILD_SHARED_LIBS)
set(HIDAPI_NEED_EXPORT_THREADS TRUE)
set(HIDAPI_NEED_EXPORT_LIBUDEV TRUE)
endif()
endif()
set(HIDAPI_LIBNAME_VERBOSE ON)
else()
@@ -95,6 +106,10 @@ else()
add_subdirectory("${PROJECT_ROOT}/libusb" libusb)
list(APPEND EXPORT_COMPONENTS libusb)
set(EXPORT_ALIAS libusb)
if(NOT BUILD_SHARED_LIBS)
set(HIDAPI_NEED_EXPORT_THREADS TRUE)
set(HIDAPI_NEED_EXPORT_LIBUSB TRUE)
endif()
elseif(NOT TARGET hidapi_hidraw)
message(FATAL_ERROR "Select at least one option to build: HIDAPI_WITH_LIBUSB or HIDAPI_WITH_HIDRAW")
endif()
+24
View File
@@ -8,6 +8,30 @@ set(hidapi_VERSION_STR "@hidapi_VERSION@@VERSION_SUFFIX@")
set(hidapi_FOUND FALSE)
set(HIDAPI_NEED_EXPORT_THREADS @HIDAPI_NEED_EXPORT_THREADS@)
set(HIDAPI_NEED_EXPORT_LIBUSB @HIDAPI_NEED_EXPORT_LIBUSB@)
set(HIDAPI_NEED_EXPORT_LIBUDEV @HIDAPI_NEED_EXPORT_LIBUDEV@)
if(HIDAPI_NEED_EXPORT_THREADS)
if(CMAKE_VERSION VERSION_LESS 3.4.3)
message(FATAL_ERROR "This file relies on consumers using CMake 3.4.3 or greater.")
endif()
find_package(Threads REQUIRED)
endif()
if(HIDAPI_NEED_EXPORT_LIBUSB OR HIDAPI_NEED_EXPORT_LIBUDEV)
if(CMAKE_VERSION VERSION_LESS 3.6.3)
message(FATAL_ERROR "This file relies on consumers using CMake 3.6.3 or greater.")
endif()
include(FindPkgConfig)
if(HIDAPI_NEED_EXPORT_LIBUSB)
pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0>=1.0.9)
endif()
if(HIDAPI_NEED_EXPORT_LIBUDEV)
pkg_check_modules(libudev REQUIRED IMPORTED_TARGET libudev)
endif()
endif()
include("${CMAKE_CURRENT_LIST_DIR}/hidapi.cmake")
set(hidapi_FOUND TRUE)