mirror of
https://github.com/curl/curl.git
synced 2025-02-11 14:50:40 +08:00
cmake: add support for CURL_USE_LIBUV
option
Also use an `#undef` hack for CMake Unity builds to avoid the previously
included `memdebug.h` header messing up the declarations pulled in by
`uv.h`:
```
In file included from ~/curl/bld/src/CMakeFiles/curl.dir/Unity/unity_0_c.c:88:
In file included from ~/curl/src/tool_operate.c:54:
In file included from /usr/local/Cellar/libuv/1.48.0/include/uv.h:71:
In file included from /usr/local/Cellar/libuv/1.48.0/include/uv/unix.h:34:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/netdb.h:269:7: error: expected parameter declarator
void freeaddrinfo(struct addrinfo *);
^
~/curl/lib/memdebug.h:167:31: note: expanded from macro 'freeaddrinfo'
curl_dbg_freeaddrinfo(data, __LINE__, __FILE__)
^
```
Follow-up to 38d334e3e1
#14298
Closes #14399
This commit is contained in:
parent
e64e62cc7d
commit
f7d5f47059
@ -1083,6 +1083,23 @@ if(CURL_USE_GSSAPI)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# libuv
|
||||
option(CURL_USE_LIBUV "Use libuv for event-based tests" OFF)
|
||||
if(CURL_USE_LIBUV)
|
||||
if(NOT ENABLE_DEBUG)
|
||||
message(FATAL_ERROR "Using libuv without debug support enabled is useless")
|
||||
endif()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LIBUV "libuv")
|
||||
if(LIBUV_FOUND)
|
||||
list(APPEND CURL_LIBS ${LIBUV_LINK_LIBRARIES})
|
||||
list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libuv")
|
||||
include_directories(${LIBUV_INCLUDE_DIRS})
|
||||
set(USE_LIBUV ON)
|
||||
set(HAVE_UV_H ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(USE_LIBRTMP "Enable librtmp from rtmpdump" OFF)
|
||||
if(USE_LIBRTMP)
|
||||
cmake_push_check_state()
|
||||
|
@ -722,6 +722,12 @@ ${SIZEOF_TIME_T_CODE}
|
||||
/* if GSASL is in use */
|
||||
#cmakedefine USE_GSASL 1
|
||||
|
||||
/* if libuv is in use */
|
||||
#cmakedefine USE_LIBUV 1
|
||||
|
||||
/* Define to 1 if you have the <uv.h> header file. */
|
||||
#cmakedefine HAVE_UV_H 1
|
||||
|
||||
/* Define to 1 if you do not want the OpenSSL configuration to be loaded
|
||||
automatically */
|
||||
#cmakedefine CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG 1
|
||||
|
@ -50,6 +50,12 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UV_H
|
||||
/* Hack for Unity mode */
|
||||
#ifdef HEADER_CURL_MEMDEBUG_H
|
||||
#undef HEADER_CURL_MEMDEBUG_H
|
||||
#undef freeaddrinfo
|
||||
#undef getaddrinfo
|
||||
#endif
|
||||
/* this is for libuv-enabled debug builds only */
|
||||
#include <uv.h>
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user