11if (NOT CAres_FOUND)
22 set (CARES_DIR "${PROJECT_SOURCE_DIR} /vendor/c-ares" )
33
4- # Read version from DEPENDENCIES file
54 file (STRINGS "${PROJECT_SOURCE_DIR} /DEPENDENCIES" CARES_VERSION_LINE
65 REGEX "^c-ares " )
76 if (CARES_VERSION_LINE)
@@ -11,7 +10,7 @@ if(NOT CAres_FOUND)
1110 set (CARES_VERSION_PATCH "${CMAKE_MATCH_3} " )
1211 set (CARES_VERSION_STRING "${CARES_VERSION_MAJOR} .${CARES_VERSION_MINOR} .${CARES_VERSION_PATCH} " )
1312 else ()
14- message (FATAL_ERROR "Could not find c-ares version in DEPENDENCIES file " )
13+ message (FATAL_ERROR "Could not find c-ares version in DEPENDENCIES" )
1514 endif ()
1615
1716 set (CARES_PUBLIC_HEADERS
@@ -117,19 +116,53 @@ if(NOT CAres_FOUND)
117116 add_library (cares ${CARES_SOURCES} )
118117
119118 if (HYDRA_COMPILER_MSVC)
120- target_compile_options (cares PRIVATE
121- /W3
122- /wd4996
123- /wd4013
124- /MP)
125- target_compile_definitions (cares PRIVATE
126- _CRT_SECURE_NO_WARNINGS
127- CARES_BUILDING_LIBRARY
128- HAVE_WS2TCPIP_H
129- HAVE_IPHLPAPI_H
130- HAVE_SYS_STAT_H
131- HAVE_IOCTLSOCKET
132- HAVE_IOCTLSOCKET_FIONBIO)
119+ target_compile_options (cares PRIVATE /W3 /wd4996 /wd4013 /MP)
120+ set (CARES_TYPEOF_ARES_SOCKLEN_T "int" )
121+ set (CARES_TYPEOF_ARES_SSIZE_T "SSIZE_T" )
122+ set (RECV_TYPE_ARG1 "SOCKET" )
123+ set (RECV_TYPE_ARG2 "char *" )
124+ set (RECV_TYPE_ARG3 "int" )
125+ set (RECV_TYPE_ARG4 "int" )
126+ set (RECVFROM_TYPE_ARG1 "SOCKET" )
127+ set (RECVFROM_TYPE_ARG2 "char *" )
128+ set (RECVFROM_TYPE_ARG3 "int" )
129+ set (RECVFROM_TYPE_ARG4 "int" )
130+ set (RECVFROM_TYPE_ARG5 "struct sockaddr *" )
131+ set (RECVFROM_TYPE_ARG6 "int *" )
132+ set (SEND_TYPE_ARG1 "SOCKET" )
133+ set (SEND_TYPE_ARG2 "const char *" )
134+ set (SEND_TYPE_ARG3 "int" )
135+ set (SEND_TYPE_ARG4 "int" )
136+ set (GETHOSTNAME_TYPE_ARG2 "int" )
137+ set (GETNAMEINFO_TYPE_ARG1 "struct sockaddr *" )
138+ set (GETNAMEINFO_TYPE_ARG2 "int" )
139+ set (GETNAMEINFO_TYPE_ARG46 "DWORD" )
140+ set (GETNAMEINFO_TYPE_ARG7 "int" )
141+ target_compile_definitions (cares PRIVATE _CRT_SECURE_NO_WARNINGS)
142+ target_compile_definitions (cares PRIVATE HAVE_WINDOWS_H)
143+ target_compile_definitions (cares PRIVATE HAVE_WINSOCK2_H)
144+ target_compile_definitions (cares PRIVATE HAVE_WS2TCPIP_H)
145+ target_compile_definitions (cares PRIVATE HAVE_IPHLPAPI_H)
146+ target_compile_definitions (cares PRIVATE HAVE_NETIOAPI_H)
147+ target_compile_definitions (cares PRIVATE HAVE_SYS_STAT_H)
148+ target_compile_definitions (cares PRIVATE HAVE_STRUCT_TIMEVAL)
149+ target_compile_definitions (cares PRIVATE HAVE_STRUCT_SOCKADDR_IN6)
150+ target_compile_definitions (cares PRIVATE HAVE_STRUCT_ADDRINFO)
151+ target_compile_definitions (cares PRIVATE HAVE_AF_INET6)
152+ target_compile_definitions (cares PRIVATE HAVE_RECV)
153+ target_compile_definitions (cares PRIVATE HAVE_RECVFROM)
154+ target_compile_definitions (cares PRIVATE HAVE_SEND)
155+ target_compile_definitions (cares PRIVATE HAVE_SENDTO)
156+ target_compile_definitions (cares PRIVATE HAVE_IOCTLSOCKET)
157+ target_compile_definitions (cares PRIVATE HAVE_IOCTLSOCKET_FIONBIO)
158+ target_compile_definitions (cares PRIVATE HAVE_ERRNO_H)
159+ target_compile_definitions (cares PRIVATE HAVE_STDLIB_H)
160+ target_compile_definitions (cares PRIVATE HAVE_STRING_H)
161+ target_compile_definitions (cares PRIVATE HAVE_LIMITS_H)
162+ target_compile_definitions (cares PRIVATE HAVE_STDINT_H)
163+ target_compile_definitions (cares PRIVATE _WIN32_WINNT=0x0600)
164+ target_link_libraries (cares PRIVATE ws2_32)
165+ target_link_libraries (cares PRIVATE iphlpapi)
133166 else ()
134167 target_compile_options (cares PRIVATE
135168 -Wall
@@ -153,82 +186,33 @@ if(NOT CAres_FOUND)
153186 -fno-math-errno
154187 -fwrapv)
155188 endif ()
156- endif ()
157189
158- # Generate configuration headers
159- if (WIN32 AND HYDRA_COMPILER_MSVC)
160- set (CARES_TYPEOF_ARES_SOCKLEN_T "int" )
161- set (CARES_TYPEOF_ARES_SSIZE_T "SSIZE_T" )
162- else ()
163190 set (CARES_TYPEOF_ARES_SOCKLEN_T "socklen_t" )
164191 set (CARES_TYPEOF_ARES_SSIZE_T "ssize_t" )
165- endif ()
166-
167- # Socket function type definitions for Unix and Unix-like (MSYS2)
168- if (UNIX OR CMAKE_SYSTEM_NAME STREQUAL "MSYS" )
169192 set (RECV_TYPE_ARG1 "int" )
170193 set (RECV_TYPE_ARG2 "void *" )
171194 set (RECV_TYPE_ARG3 "size_t" )
172195 set (RECV_TYPE_ARG4 "int" )
173-
174196 set (RECVFROM_TYPE_ARG1 "int" )
175197 set (RECVFROM_TYPE_ARG2 "void *" )
176198 set (RECVFROM_TYPE_ARG3 "size_t" )
177199 set (RECVFROM_TYPE_ARG4 "int" )
178200 set (RECVFROM_TYPE_ARG5 "struct sockaddr *" )
179201 set (RECVFROM_TYPE_ARG6 "socklen_t *" )
180-
181202 set (SEND_TYPE_ARG1 "int" )
182203 set (SEND_TYPE_ARG2 "const void *" )
183204 set (SEND_TYPE_ARG3 "size_t" )
184205 set (SEND_TYPE_ARG4 "int" )
185-
186206 set (GETHOSTNAME_TYPE_ARG2 "size_t" )
187207 set (GETNAMEINFO_TYPE_ARG1 "struct sockaddr *" )
188208 set (GETNAMEINFO_TYPE_ARG2 "socklen_t" )
189209 set (GETNAMEINFO_TYPE_ARG46 "size_t" )
190210 set (GETNAMEINFO_TYPE_ARG7 "int" )
191- elseif (WIN32 AND HYDRA_COMPILER_MSVC)
192- set (RECV_TYPE_ARG1 "SOCKET" )
193- set (RECV_TYPE_ARG2 "char *" )
194- set (RECV_TYPE_ARG3 "int" )
195- set (RECV_TYPE_ARG4 "int" )
196211
197- set (RECVFROM_TYPE_ARG1 "SOCKET" )
198- set (RECVFROM_TYPE_ARG2 "char *" )
199- set (RECVFROM_TYPE_ARG3 "int" )
200- set (RECVFROM_TYPE_ARG4 "int" )
201- set (RECVFROM_TYPE_ARG5 "struct sockaddr *" )
202- set (RECVFROM_TYPE_ARG6 "int *" )
203-
204- set (SEND_TYPE_ARG1 "SOCKET" )
205- set (SEND_TYPE_ARG2 "const char *" )
206- set (SEND_TYPE_ARG3 "int" )
207- set (SEND_TYPE_ARG4 "int" )
208-
209- set (GETHOSTNAME_TYPE_ARG2 "int" )
210- set (GETNAMEINFO_TYPE_ARG1 "struct sockaddr *" )
211- set (GETNAMEINFO_TYPE_ARG2 "int" )
212- set (GETNAMEINFO_TYPE_ARG46 "DWORD" )
213- set (GETNAMEINFO_TYPE_ARG7 "int" )
214- endif ()
215-
216- configure_file ("${CARES_DIR} /include/ares_build.h.cmake"
217- "${CMAKE_CURRENT_BINARY_DIR} /cares_generated/ares_build.h" @ONLY)
218- configure_file ("${CARES_DIR} /src/lib/ares_config.h.cmake"
219- "${CMAKE_CURRENT_BINARY_DIR} /cares_generated/ares_config.h" @ONLY)
220-
221- target_compile_definitions (cares PRIVATE HAVE_CONFIG_H)
222- target_compile_definitions (cares PRIVATE CARES_BUILDING_LIBRARY)
223- if (NOT BUILD_SHARED_LIBS )
224- target_compile_definitions (cares PUBLIC CARES_STATICLIB)
225- endif ()
226-
227- # Platform-specific defines
228- if (UNIX OR CMAKE_SYSTEM_NAME STREQUAL "MSYS" )
229212 if (NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "MSYS" )
230213 target_compile_definitions (cares PRIVATE _POSIX_C_SOURCE=199309L)
231214 endif ()
215+
232216 target_compile_definitions (cares PRIVATE HAVE_SYS_TIME_H)
233217 target_compile_definitions (cares PRIVATE HAVE_TIME_H)
234218 target_compile_definitions (cares PRIVATE HAVE_SYS_SELECT_H)
@@ -260,27 +244,22 @@ if(NOT CAres_FOUND)
260244 target_compile_definitions (cares PRIVATE HAVE_GETTIMEOFDAY)
261245 target_compile_definitions (cares PRIVATE HAVE_CLOCK_GETTIME_MONOTONIC)
262246 target_compile_definitions (cares PRIVATE HAVE_STDINT_H)
263- elseif (WIN32 AND HYDRA_COMPILER_MSVC)
264- target_compile_definitions (cares PRIVATE HAVE_WINDOWS_H)
265- target_compile_definitions (cares PRIVATE HAVE_WINSOCK2_H)
266- target_compile_definitions (cares PRIVATE HAVE_WS2TCPIP_H)
267- target_compile_definitions (cares PRIVATE HAVE_IPHLPAPI_H)
268- target_compile_definitions (cares PRIVATE HAVE_NETIOAPI_H)
269- target_compile_definitions (cares PRIVATE HAVE_STRUCT_TIMEVAL)
270- target_compile_definitions (cares PRIVATE HAVE_STRUCT_SOCKADDR_IN6)
271- target_compile_definitions (cares PRIVATE HAVE_STRUCT_ADDRINFO)
272- target_compile_definitions (cares PRIVATE HAVE_AF_INET6)
273- target_compile_definitions (cares PRIVATE HAVE_RECV)
274- target_compile_definitions (cares PRIVATE HAVE_RECVFROM)
275- target_compile_definitions (cares PRIVATE HAVE_SEND)
276- target_compile_definitions (cares PRIVATE HAVE_SENDTO)
277- target_compile_definitions (cares PRIVATE HAVE_ERRNO_H)
278- target_compile_definitions (cares PRIVATE HAVE_STDLIB_H)
279- target_compile_definitions (cares PRIVATE HAVE_STRING_H)
280- target_compile_definitions (cares PRIVATE HAVE_LIMITS_H)
281- target_compile_definitions (cares PRIVATE HAVE_STDINT_H)
282- # Windows version for IP Helper API
283- target_compile_definitions (cares PRIVATE _WIN32_WINNT=0x0600)
247+
248+ if (APPLE )
249+ target_link_libraries (cares PRIVATE "-framework CoreFoundation" )
250+ target_link_libraries (cares PRIVATE "-framework SystemConfiguration" )
251+ endif ()
252+ endif ()
253+
254+ configure_file ("${CARES_DIR} /include/ares_build.h.cmake"
255+ "${CMAKE_CURRENT_BINARY_DIR} /cares_generated/ares_build.h" @ONLY)
256+ configure_file ("${CARES_DIR} /src/lib/ares_config.h.cmake"
257+ "${CMAKE_CURRENT_BINARY_DIR} /cares_generated/ares_config.h" @ONLY)
258+
259+ target_compile_definitions (cares PRIVATE HAVE_CONFIG_H)
260+ target_compile_definitions (cares PRIVATE CARES_BUILDING_LIBRARY)
261+ if (NOT BUILD_SHARED_LIBS )
262+ target_compile_definitions (cares PUBLIC CARES_STATICLIB)
284263 endif ()
285264
286265 target_include_directories (cares PRIVATE "${CMAKE_CURRENT_BINARY_DIR} /cares_generated" )
@@ -291,14 +270,8 @@ if(NOT CAres_FOUND)
291270 "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /cares_generated>"
292271 "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >" )
293272
294- if (APPLE )
295- target_link_libraries (cares PRIVATE "-framework CoreFoundation" )
296- target_link_libraries (cares PRIVATE "-framework SystemConfiguration" )
297- elseif (WIN32 )
298- target_link_libraries (cares PRIVATE ws2_32 iphlpapi)
299- endif ()
300-
301273 add_library (CAres::cares ALIAS cares)
274+ add_library (c-ares::cares ALIAS cares)
302275
303276 set_target_properties (cares
304277 PROPERTIES
@@ -332,7 +305,6 @@ if(NOT CAres_FOUND)
332305 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/cares"
333306 COMPONENT sourcemeta_hydra_dev)
334307
335- # Install headers
336308 install (FILES ${CARES_PUBLIC_HEADERS}
337309 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
338310 COMPONENT sourcemeta_hydra_dev)
0 commit comments