quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

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)