Skip to content

Commit e46c778

Browse files
Update libuv find & link configuration to support both static and sha… (#668)
* Update libuv find & link configuration to support both static and shared libraries * cmake: Add libuv find_package fallback with find_path/find_library for redis-plus-plus async lib * Update libuv find_package lookup --------- Co-authored-by: 魏立国 <1006369837@qq.com>
1 parent 90b8331 commit e46c778

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

CMakeLists.txt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,11 @@ if(REDIS_PLUS_PLUS_BUILD_ASYNC)
4545
message(STATUS "redis-plus-plus build async interface with libuv")
4646

4747
# libuv dependency
48-
find_path(REDIS_PLUS_PLUS_ASYNC_LIB_HEADER NAMES uv.h)
49-
find_library(REDIS_PLUS_PLUS_ASYNC_LIB uv)
48+
find_package(libuv)
49+
if (NOT libuv_FOUND)
50+
find_path(REDIS_PLUS_PLUS_ASYNC_LIB_HEADER NAMES uv.h)
51+
find_library(REDIS_PLUS_PLUS_ASYNC_LIB uv)
52+
endif()
5053
else()
5154
message(FATAL_ERROR "invalid REDIS_PLUS_PLUS_BUILD_ASYNC")
5255
endif()
@@ -202,7 +205,11 @@ if(REDIS_PLUS_PLUS_BUILD_STATIC)
202205

203206
if(REDIS_PLUS_PLUS_BUILD_ASYNC)
204207
target_include_directories(${STATIC_LIB} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${REDIS_PLUS_PLUS_ASYNC_FUTURE_HEADER}>)
205-
target_include_directories(${STATIC_LIB} PUBLIC $<BUILD_INTERFACE:${REDIS_PLUS_PLUS_ASYNC_LIB_HEADER}>)
208+
if(libuv_FOUND)
209+
target_link_libraries(${STATIC_LIB} PUBLIC $<TARGET_NAME:libuv::uv>)
210+
else()
211+
target_include_directories(${STATIC_LIB} PUBLIC $<BUILD_INTERFACE:${REDIS_PLUS_PLUS_ASYNC_LIB_HEADER}>)
212+
endif()
206213
if(REDIS_PLUS_PLUS_ASYNC_FUTURE STREQUAL "boost")
207214
target_include_directories(${STATIC_LIB} SYSTEM PUBLIC $<BUILD_INTERFACE:${Boost_INCLUDE_DIR}>)
208215
endif()
@@ -255,8 +262,12 @@ if(REDIS_PLUS_PLUS_BUILD_SHARED)
255262

256263
if(REDIS_PLUS_PLUS_BUILD_ASYNC)
257264
target_include_directories(${SHARED_LIB} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/${REDIS_PLUS_PLUS_ASYNC_FUTURE_HEADER}>)
258-
target_include_directories(${SHARED_LIB} PUBLIC $<BUILD_INTERFACE:${REDIS_PLUS_PLUS_ASYNC_LIB_HEADER}>)
259-
target_link_libraries(${SHARED_LIB} PUBLIC ${REDIS_PLUS_PLUS_ASYNC_LIB})
265+
if(libuv_FOUND)
266+
target_link_libraries(${SHARED_LIB} PUBLIC $<TARGET_NAME:libuv::uv>)
267+
else()
268+
target_include_directories(${SHARED_LIB} PUBLIC $<BUILD_INTERFACE:${REDIS_PLUS_PLUS_ASYNC_LIB_HEADER}>)
269+
target_link_libraries(${SHARED_LIB} PUBLIC ${REDIS_PLUS_PLUS_ASYNC_LIB})
270+
endif()
260271
if(REDIS_PLUS_PLUS_ASYNC_FUTURE STREQUAL "boost")
261272
target_include_directories(${SHARED_LIB} SYSTEM PUBLIC $<BUILD_INTERFACE:${Boost_INCLUDE_DIR}>)
262273
endif()

0 commit comments

Comments
 (0)