unix-cache.cmake (8016B)
1 #*************************************************************************** 2 # _ _ ____ _ 3 # Project ___| | | | _ \| | 4 # / __| | | | |_) | | 5 # | (__| |_| | _ <| |___ 6 # \___|\___/|_| \_\_____| 7 # 8 # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 9 # 10 # This software is licensed as described in the file COPYING, which 11 # you should have received as part of this distribution. The terms 12 # are also available at https://curl.se/docs/copyright.html. 13 # 14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell 15 # copies of the Software, and permit persons to whom the Software is 16 # furnished to do so, under the terms of the COPYING file. 17 # 18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19 # KIND, either express or implied. 20 # 21 # SPDX-License-Identifier: curl 22 # 23 ########################################################################### 24 # Based on CI runs for Cygwin/MSYS2, Linux, macOS, FreeBSD, NetBSD, OpenBSD 25 if(NOT UNIX) 26 message(FATAL_ERROR "This file should be included on Unix platforms only") 27 endif() 28 29 if(APPLE OR 30 CYGWIN) 31 set(HAVE_ACCEPT4 0) 32 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 33 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 34 CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR 35 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 36 set(HAVE_ACCEPT4 1) 37 endif() 38 set(HAVE_ALARM 1) 39 if(ANDROID) 40 set(HAVE_ARC4RANDOM 1) 41 else() 42 set(HAVE_ARC4RANDOM 0) 43 endif() 44 set(HAVE_ARPA_INET_H 1) 45 set(HAVE_ATOMIC 1) 46 set(HAVE_BASENAME 1) 47 set(HAVE_BOOL_T 1) 48 if(NOT APPLE) 49 set(HAVE_CLOCK_GETTIME_MONOTONIC 1) 50 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 51 set(HAVE_CLOCK_GETTIME_MONOTONIC_RAW 1) 52 else() 53 set(HAVE_CLOCK_GETTIME_MONOTONIC_RAW 0) 54 endif() 55 endif() 56 set(HAVE_CLOSESOCKET 0) 57 set(HAVE_DECL_FSEEKO 1) 58 set(HAVE_DIRENT_H 1) 59 if(APPLE OR 60 CYGWIN OR 61 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 62 set(HAVE_EVENTFD 0) 63 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 64 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 65 CMAKE_SYSTEM_NAME STREQUAL "NetBSD") 66 set(HAVE_EVENTFD 1) 67 endif() 68 set(HAVE_FCNTL 1) 69 set(HAVE_FCNTL_H 1) 70 set(HAVE_FCNTL_O_NONBLOCK 1) 71 set(HAVE_FILE_OFFSET_BITS 1) 72 set(HAVE_FNMATCH 1) 73 set(HAVE_FREEADDRINFO 1) 74 set(HAVE_FSEEKO 1) 75 if(APPLE) 76 set(HAVE_FSETXATTR 1) 77 set(HAVE_FSETXATTR_5 0) 78 set(HAVE_FSETXATTR_6 1) 79 elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 80 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 81 set(HAVE_FSETXATTR 0) 82 set(HAVE_FSETXATTR_5 0) 83 set(HAVE_FSETXATTR_6 0) 84 elseif(CYGWIN OR 85 CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 86 CMAKE_SYSTEM_NAME STREQUAL "NetBSD") 87 set(HAVE_FSETXATTR 1) 88 set(HAVE_FSETXATTR_5 1) 89 set(HAVE_FSETXATTR_6 0) 90 endif() 91 set(HAVE_FTRUNCATE 1) 92 set(HAVE_GETADDRINFO 1) 93 if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 94 set(HAVE_GETADDRINFO_THREADSAFE 0) 95 elseif(CYGWIN OR 96 CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 97 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 98 CMAKE_SYSTEM_NAME STREQUAL "NetBSD") 99 set(HAVE_GETADDRINFO_THREADSAFE 1) 100 endif() 101 set(HAVE_GETEUID 1) 102 if(APPLE OR 103 CYGWIN OR 104 CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR 105 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 106 set(HAVE_GETHOSTBYNAME_R 0) 107 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 108 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") 109 set(HAVE_GETHOSTBYNAME_R 1) 110 endif() 111 set(HAVE_GETHOSTBYNAME_R_3 0) 112 set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0) 113 set(HAVE_GETHOSTBYNAME_R_5 0) 114 set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0) 115 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 116 set(HAVE_GETHOSTBYNAME_R_6 1) 117 set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 1) 118 else() 119 set(HAVE_GETHOSTBYNAME_R_6 0) 120 set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0) 121 endif() 122 set(HAVE_GETHOSTNAME 1) 123 if(NOT ANDROID OR ANDROID_PLATFORM_LEVEL GREATER_EQUAL 24) 124 set(HAVE_GETIFADDRS 1) 125 else() 126 set(HAVE_GETIFADDRS 0) 127 endif() 128 if(APPLE OR 129 CYGWIN OR 130 CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 131 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 132 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 133 set(HAVE_GETPASS_R 0) 134 elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") 135 set(HAVE_GETPASS_R 1) 136 endif() 137 set(HAVE_GETPEERNAME 1) 138 set(HAVE_GETPPID 1) 139 set(HAVE_GETPWUID 1) 140 set(HAVE_GETPWUID_R 1) 141 set(HAVE_GETRLIMIT 1) 142 set(HAVE_GETSOCKNAME 1) 143 set(HAVE_GETTIMEOFDAY 1) 144 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 145 set(HAVE_GLIBC_STRERROR_R 1) 146 else() 147 set(HAVE_GLIBC_STRERROR_R 0) 148 endif() 149 set(HAVE_GMTIME_R 1) 150 set(HAVE_IFADDRS_H 1) 151 set(HAVE_IF_NAMETOINDEX 1) 152 set(HAVE_INET_NTOP 1) 153 set(HAVE_INET_PTON 1) 154 set(HAVE_IOCTLSOCKET 0) 155 set(HAVE_IOCTLSOCKET_CAMEL 0) 156 set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0) 157 set(HAVE_IOCTLSOCKET_FIONBIO 0) 158 set(HAVE_IOCTL_FIONBIO 1) 159 set(HAVE_IOCTL_SIOCGIFADDR 1) 160 if(CYGWIN) 161 set(HAVE_IO_H 1) 162 else() 163 set(HAVE_IO_H 0) 164 endif() 165 set(HAVE_LIBGEN_H 1) 166 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 167 set(HAVE_LINUX_TCP_H 1) 168 else() 169 set(HAVE_LINUX_TCP_H 0) 170 endif() 171 set(HAVE_LOCALE_H 1) 172 set(HAVE_LONGLONG 1) 173 if(APPLE) 174 set(HAVE_MACH_ABSOLUTE_TIME 1) 175 endif() 176 if(APPLE OR 177 CYGWIN) 178 set(HAVE_MEMRCHR 0) 179 else() 180 set(HAVE_MEMRCHR 1) 181 endif() 182 set(HAVE_MSG_NOSIGNAL 1) 183 set(HAVE_NETDB_H 1) 184 if(ANDROID) 185 set(HAVE_NETINET_IN6_H 1) 186 else() 187 set(HAVE_NETINET_IN6_H 0) 188 endif() 189 set(HAVE_NETINET_IN_H 1) 190 set(HAVE_NETINET_TCP_H 1) 191 set(HAVE_NETINET_UDP_H 1) 192 set(HAVE_NET_IF_H 1) 193 set(HAVE_OPENDIR 1) 194 set(HAVE_PIPE 1) 195 if(APPLE OR 196 CYGWIN) 197 set(HAVE_PIPE2 0) 198 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 199 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 200 CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR 201 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 202 set(HAVE_PIPE2 1) 203 endif() 204 set(HAVE_POLL 1) 205 set(HAVE_POLL_H 1) 206 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 207 set(HAVE_POSIX_STRERROR_R 0) 208 else() 209 set(HAVE_POSIX_STRERROR_R 1) 210 endif() 211 set(HAVE_PWD_H 1) 212 set(HAVE_REALPATH 1) 213 set(HAVE_RECV 1) 214 set(HAVE_SA_FAMILY_T 1) 215 set(HAVE_SCHED_YIELD 1) 216 set(HAVE_SELECT 1) 217 set(HAVE_SEND 1) 218 if(APPLE OR 219 CYGWIN) 220 set(HAVE_SENDMMSG 0) 221 else() 222 set(HAVE_SENDMMSG 1) 223 endif() 224 set(HAVE_SENDMSG 1) 225 set(HAVE_SETLOCALE 1) 226 if(CYGWIN OR 227 CMAKE_SYSTEM_NAME STREQUAL "Linux") 228 set(HAVE_SETMODE 0) 229 else() 230 set(HAVE_SETMODE 1) 231 endif() 232 set(HAVE_SETRLIMIT 1) 233 set(HAVE_SETSOCKOPT_SO_NONBLOCK 0) 234 set(HAVE_SIGACTION 1) 235 set(HAVE_SIGINTERRUPT 1) 236 set(HAVE_SIGNAL 1) 237 set(HAVE_SIGSETJMP 1) 238 set(HAVE_SNPRINTF 1) 239 set(HAVE_SOCKADDR_IN6_SIN6_ADDR 1) 240 set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1) 241 set(HAVE_SOCKET 1) 242 set(HAVE_SOCKETPAIR 1) 243 set(HAVE_STDATOMIC_H 1) 244 set(HAVE_STDBOOL_H 1) 245 set(HAVE_STDDEF_H 1) 246 set(HAVE_STDINT_H 1) 247 set(HAVE_STRCASECMP 1) 248 set(HAVE_STRCMPI 0) 249 set(HAVE_STRDUP 1) 250 set(HAVE_STRERROR_R 1) 251 set(HAVE_STRICMP 0) 252 set(HAVE_STRINGS_H 1) 253 if(_CURL_OLD_LINUX) 254 set(HAVE_STROPTS_H 1) 255 else() 256 set(HAVE_STROPTS_H 0) # glibc 2.30 or newer. https://sourceware.org/legacy-ml/libc-alpha/2019-08/msg00029.html 257 endif() 258 set(HAVE_STRUCT_SOCKADDR_STORAGE 1) 259 set(HAVE_STRUCT_TIMEVAL 1) 260 if(ANDROID OR CMAKE_SYSTEM_NAME STREQUAL "iOS") 261 set(HAVE_SUSECONDS_T 1) 262 endif() 263 if(APPLE OR 264 CYGWIN OR 265 CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 266 set(HAVE_SYS_EVENTFD_H 0) 267 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR 268 CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR 269 CMAKE_SYSTEM_NAME STREQUAL "NetBSD") 270 set(HAVE_SYS_EVENTFD_H 1) 271 endif() 272 if(CYGWIN OR 273 CMAKE_SYSTEM_NAME STREQUAL "Linux") 274 set(HAVE_SYS_FILIO_H 0) 275 else() 276 set(HAVE_SYS_FILIO_H 1) 277 endif() 278 set(HAVE_SYS_IOCTL_H 1) 279 set(HAVE_SYS_PARAM_H 1) 280 set(HAVE_SYS_POLL_H 1) 281 set(HAVE_SYS_RESOURCE_H 1) 282 set(HAVE_SYS_SELECT_H 1) 283 if(CYGWIN OR 284 CMAKE_SYSTEM_NAME STREQUAL "Linux") 285 set(HAVE_SYS_SOCKIO_H 0) 286 else() 287 set(HAVE_SYS_SOCKIO_H 1) 288 endif() 289 set(HAVE_SYS_TYPES_H 1) 290 set(HAVE_SYS_UN_H 1) 291 if(CYGWIN) 292 set(HAVE_SYS_UTIME_H 1) 293 else() 294 set(HAVE_SYS_UTIME_H 0) 295 endif() 296 set(HAVE_TERMIOS_H 1) 297 if(CYGWIN OR 298 CMAKE_SYSTEM_NAME STREQUAL "Linux") 299 set(HAVE_TERMIO_H 1) 300 else() 301 set(HAVE_TERMIO_H 0) 302 endif() 303 set(HAVE_TIME_T_UNSIGNED 0) 304 set(HAVE_UNISTD_H 1) 305 set(HAVE_UTIME 1) 306 set(HAVE_UTIMES 1) 307 set(HAVE_UTIME_H 1) 308 set(HAVE_WRITABLE_ARGV 1) 309 if(CYGWIN) 310 set(HAVE__SETMODE 1) 311 endif() 312 set(STDC_HEADERS 1) 313 set(USE_UNIX_SOCKETS 1)