quickjs-tart

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

win32-cache.cmake (6937B)


      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 if(NOT WIN32)
     25   message(FATAL_ERROR "This file should be included on Windows platform only")
     26 endif()
     27 
     28 if(MINGW)
     29   set(HAVE_BASENAME 1)
     30   set(HAVE_BOOL_T 1)  # = HAVE_STDBOOL_H
     31   set(HAVE_DIRENT_H 1)
     32   set(HAVE_FTRUNCATE 1)
     33   set(HAVE_GETTIMEOFDAY 1)
     34   set(HAVE_LIBGEN_H 1)
     35   set(HAVE_OPENDIR 1)
     36   set(HAVE_SNPRINTF 1)
     37   set(HAVE_STDBOOL_H 1)
     38   set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
     39   set(HAVE_STDINT_H 1)  # detected by CMake internally in check_type_size()
     40   set(HAVE_STRINGS_H 1)  # wrapper to string.h
     41   set(HAVE_SYS_PARAM_H 1)
     42   set(HAVE_UNISTD_H 1)
     43   set(HAVE_UTIME_H 1)  # wrapper to sys/utime.h
     44 else()
     45   set(HAVE_DIRENT_H 0)
     46   set(HAVE_FTRUNCATE 0)
     47   set(HAVE_GETTIMEOFDAY 0)
     48   set(HAVE_LIBGEN_H 0)
     49   set(HAVE_OPENDIR 0)
     50   set(HAVE_STRINGS_H 0)
     51   set(HAVE_SYS_PARAM_H 0)
     52   set(HAVE_UTIME_H 0)
     53   if(MSVC)
     54     set(HAVE_UNISTD_H 0)
     55     set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
     56     if(MSVC_VERSION GREATER_EQUAL 1600)
     57       set(HAVE_STDINT_H 1)  # detected by CMake internally in check_type_size()
     58     else()
     59       set(HAVE_STDINT_H 0)  # detected by CMake internally in check_type_size()
     60     endif()
     61     if(MSVC_VERSION GREATER_EQUAL 1800)
     62       set(HAVE_STDBOOL_H 1)
     63     else()
     64       set(HAVE_STDBOOL_H 0)
     65     endif()
     66     set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
     67     if(MSVC_VERSION GREATER_EQUAL 1900)
     68       set(HAVE_SNPRINTF 1)
     69     else()
     70       set(HAVE_SNPRINTF 0)
     71     endif()
     72     set(HAVE_BASENAME 0)
     73   endif()
     74 endif()
     75 
     76 if((CMAKE_C_COMPILER_ID STREQUAL "GNU"   AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.9) OR
     77    (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 3.6))
     78   # MinGW or clang-cl
     79   set(HAVE_STDATOMIC_H 1)
     80   set(HAVE_ATOMIC 1)
     81 else()
     82   set(HAVE_STDATOMIC_H 0)
     83   set(HAVE_ATOMIC 0)
     84 endif()
     85 
     86 set(HAVE_ACCEPT4 0)
     87 set(HAVE_ALARM 0)
     88 set(HAVE_ARC4RANDOM 0)
     89 set(HAVE_ARPA_INET_H 0)
     90 set(HAVE_CLOSESOCKET 1)
     91 set(HAVE_EVENTFD 0)
     92 set(HAVE_FCNTL 0)
     93 set(HAVE_FCNTL_H 1)
     94 set(HAVE_FCNTL_O_NONBLOCK 0)
     95 set(HAVE_FNMATCH 0)
     96 set(HAVE_FREEADDRINFO 1)  # Available in Windows XP and newer
     97 set(HAVE_FSETXATTR 0)
     98 set(HAVE_GETADDRINFO 1)  # Available in Windows XP and newer
     99 set(HAVE_GETEUID 0)
    100 set(HAVE_GETHOSTBYNAME_R 0)
    101 set(HAVE_GETHOSTBYNAME_R_3 0)
    102 set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
    103 set(HAVE_GETHOSTBYNAME_R_5 0)
    104 set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
    105 set(HAVE_GETHOSTBYNAME_R_6 0)
    106 set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
    107 set(HAVE_GETHOSTNAME 1)
    108 set(HAVE_GETIFADDRS 0)
    109 set(HAVE_GETPASS_R 0)
    110 set(HAVE_GETPEERNAME 1)
    111 set(HAVE_GETPPID 0)
    112 set(HAVE_GETPWUID 0)
    113 set(HAVE_GETPWUID_R 0)
    114 set(HAVE_GETRLIMIT 0)
    115 set(HAVE_GETSOCKNAME 1)
    116 set(HAVE_GLIBC_STRERROR_R 0)
    117 set(HAVE_GMTIME_R 0)
    118 set(HAVE_IFADDRS_H 0)
    119 set(HAVE_INET_NTOP 0)
    120 set(HAVE_INET_PTON 0)
    121 set(HAVE_IOCTLSOCKET 1)
    122 set(HAVE_IOCTLSOCKET_CAMEL 0)
    123 set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0)
    124 set(HAVE_IOCTLSOCKET_FIONBIO 1)
    125 set(HAVE_IOCTL_FIONBIO 0)
    126 set(HAVE_IOCTL_SIOCGIFADDR 0)
    127 set(HAVE_IO_H 1)
    128 set(HAVE_LINUX_TCP_H 0)
    129 set(HAVE_LOCALE_H 1)
    130 set(HAVE_MEMRCHR 0)
    131 set(HAVE_MSG_NOSIGNAL 0)
    132 set(HAVE_NETDB_H 0)
    133 set(HAVE_NETINET_IN6_H 0)
    134 set(HAVE_NETINET_IN_H 0)
    135 set(HAVE_NETINET_TCP_H 0)
    136 set(HAVE_NETINET_UDP_H 0)
    137 set(HAVE_NET_IF_H 0)
    138 set(HAVE_PIPE 0)
    139 set(HAVE_PIPE2 0)
    140 set(HAVE_POLL 0)
    141 set(HAVE_POLL_H 0)
    142 set(HAVE_POSIX_STRERROR_R 0)
    143 set(HAVE_PWD_H 0)
    144 set(HAVE_RECV 1)
    145 set(HAVE_SELECT 1)
    146 set(HAVE_SEND 1)
    147 set(HAVE_SENDMMSG 0)
    148 set(HAVE_SENDMSG 0)
    149 set(HAVE_SETLOCALE 1)
    150 set(HAVE_SETMODE 1)
    151 set(HAVE_SETRLIMIT 0)
    152 set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
    153 set(HAVE_SIGACTION 0)
    154 set(HAVE_SIGINTERRUPT 0)
    155 set(HAVE_SIGNAL 1)
    156 set(HAVE_SIGSETJMP 0)
    157 set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1)
    158 set(HAVE_SOCKET 1)
    159 set(HAVE_SOCKETPAIR 0)
    160 set(HAVE_STRDUP 1)
    161 set(HAVE_STRERROR_R 0)
    162 set(HAVE_STROPTS_H 0)
    163 set(HAVE_STRUCT_SOCKADDR_STORAGE 1)
    164 set(HAVE_STRUCT_TIMEVAL 1)
    165 set(HAVE_SYS_EVENTFD_H 0)
    166 set(HAVE_SYS_FILIO_H 0)
    167 set(HAVE_SYS_IOCTL_H 0)
    168 set(HAVE_SYS_POLL_H 0)
    169 set(HAVE_SYS_RESOURCE_H 0)
    170 set(HAVE_SYS_SELECT_H 0)
    171 set(HAVE_SYS_SOCKIO_H 0)
    172 set(HAVE_SYS_TYPES_H 1)
    173 set(HAVE_SYS_UN_H 0)
    174 set(HAVE_SYS_UTIME_H 1)
    175 set(HAVE_TERMIOS_H 0)
    176 set(HAVE_TERMIO_H 0)
    177 set(HAVE_TIME_T_UNSIGNED 0)
    178 set(HAVE_UTIME 1)
    179 set(HAVE_UTIMES 0)
    180 set(HAVE__SETMODE 1)
    181 set(STDC_HEADERS 1)
    182 
    183 # Types and sizes
    184 
    185 set(HAVE_SIZEOF_SA_FAMILY_T 0)
    186 set(HAVE_SIZEOF_SUSECONDS_T 0)
    187 
    188 if(MINGW OR MSVC)
    189   curl_prefill_type_size("INT" 4)
    190   curl_prefill_type_size("LONG" 4)
    191   curl_prefill_type_size("LONG_LONG" 8)
    192   curl_prefill_type_size("__INT64" 8)
    193   curl_prefill_type_size("CURL_OFF_T" 8)
    194   # CURL_SOCKET_T, SIZE_T: 8 for _WIN64, 4 otherwise
    195   # TIME_T: 8 for _WIN64 or UCRT or MSVC and not Windows CE, 4 otherwise
    196   #   Also 4 for non-UCRT 32-bit when _USE_32BIT_TIME_T is set.
    197   #   mingw-w64 sets _USE_32BIT_TIME_T unless __MINGW_USE_VC2005_COMPAT is explicit defined.
    198   if(MSVC)
    199     set(HAVE_SIZEOF_SSIZE_T 0)
    200     set(HAVE_FILE_OFFSET_BITS 0)
    201     curl_prefill_type_size("OFF_T" 4)
    202     curl_prefill_type_size("ADDRESS_FAMILY" 2)
    203   else()
    204     # SSIZE_T: 8 for _WIN64, 4 otherwise
    205     if(MINGW64_VERSION)
    206       if(MINGW64_VERSION VERSION_GREATER_EQUAL 3.0)
    207         set(HAVE_FILE_OFFSET_BITS 1)
    208         curl_prefill_type_size("OFF_T" 8)
    209       endif()
    210       if(MINGW64_VERSION VERSION_GREATER_EQUAL 2.0)
    211         curl_prefill_type_size("ADDRESS_FAMILY" 2)
    212       else()
    213         set(HAVE_SIZEOF_ADDRESS_FAMILY 0)
    214       endif()
    215     endif()
    216   endif()
    217 endif()
    218 
    219 # Windows CE exceptions
    220 
    221 if(WINCE)
    222   set(HAVE_FREEADDRINFO 0)
    223   set(HAVE_GETADDRINFO 0)
    224   set(HAVE_LOCALE_H 0)
    225   set(HAVE_SETLOCALE 0)
    226   set(HAVE_SETMODE 0)
    227   set(HAVE_SIGNAL 0)
    228   set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 0)
    229   curl_prefill_type_size("CURL_SOCKET_T" 4)
    230   curl_prefill_type_size("TIME_T" 4)
    231   curl_prefill_type_size("SIZE_T" 4)
    232   if(MINGW32CE)
    233     set(HAVE_STRTOK_R 0)
    234     set(HAVE__SETMODE 0)
    235     set(HAVE_FILE_OFFSET_BITS 0)
    236     set(HAVE_SIZEOF_ADDRESS_FAMILY 0)
    237     curl_prefill_type_size("SSIZE_T" 4)
    238     curl_prefill_type_size("OFF_T" 4)
    239   endif()
    240 endif()