1# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2# file Copyright.txt or https://cmake.org/licensing for details.
3
4# Hard-code third-party try_compile checks where we know the answer.
5
6# Results for builds targeting all supported platforms.
7set(HAVE_ASSERT_H 1)
8set(HAVE__CrtSetReportMode 0) # unused anyway
9set(HAVE_CTYPE_H 1)
10set(HAVE_LOCALE_H 1)
11set(HAVE_MEMMOVE 1)
12set(HAVE_SETLOCALE 1)
13set(HAVE_STDDEF_H 1)
14set(HAVE_STDIO_H 1)
15set(HAVE_STDLIB_H 1)
16set(HAVE_STRCHR 1)
17set(HAVE_STRDUP 1)
18set(HAVE_STRFTIME 1)
19set(HAVE_STRING_H 1)
20set(HAVE_STRRCHR 1)
21set(HAVE_WCHAR_H 1)
22
23# Used by TEST_BIG_ENDIAN.
24set(CMAKE_SIZEOF_UNSIGNED_SHORT 2)
25set(HAVE_CMAKE_SIZEOF_UNSIGNED_SHORT 1)
26
27if(WIN32)
28  # Results for builds targeting Windows platforms.
29  # This covers both MSVC-ABI and GNU-ABI toolchains.
30
31  set(HAVE_ALARM 0)
32  set(HAVE_ARC4RANDOM 0)
33  set(HAVE_ARC4RANDOM_BUF 0)
34  set(HAVE_ARPA_TFTP_H 0)
35  set(HAVE_BSWAP_16 0)
36  set(HAVE_BSWAP_32 0)
37  set(HAVE_BSWAP_64 0)
38  set(HAVE_BUILTIN_AVAILABLE 0)
39  set(HAVE_BYTESWAP_H 0)
40  set(HAVE_CHFLAGS 0)
41  set(HAVE_CHOWN 0)
42  set(HAVE_CHROOT 0)
43  set(HAVE_COPYFILE_H 0)
44  set(HAVE_CRYPTO_H 0)
45  set(HAVE__CTIME64_S 1)
46  set(HAVE_CTIME_R 0)
47  set(HAVE_CYGWIN_CONV_PATH 0)
48  set(HAVE_DES_H 0)
49  set(HAVE_DIRECT_H 1)
50  set(HAVE_DIRFD 0)
51  set(HAVE_DLFCN_H 0)
52  set(HAVE_D_MD_ORDER 0)
53  set(HAVE_EFTYPE 0)
54  set(HAVE_EILSEQ 1)
55  set(HAVE_ERR_H 0)
56  set(HAVE_ERRNO_H 1)
57  set(HAVE_EXT2FS_EXT2_FS_H 0)
58  set(HAVE_FCHDIR 0)
59  set(HAVE_FCHFLAGS 0)
60  set(HAVE_FCHMOD 0)
61  set(HAVE_FCHOWN 0)
62  set(HAVE_FCNTL 0)
63  set(HAVE_FCNTL_H 1)
64  set(HAVE_FCNTL_O_NONBLOCK 0)
65  set(HAVE_FDOPENDIR 0)
66  set(HAVE_FORK 0)
67  set(HAVE_FREEADDRINFO 1)
68  set(HAVE_FREEIFADDRS 0)
69  set(HAVE__FSEEKI64 1)
70  set(HAVE_FSETXATTR 0)
71  set(HAVE_FSTAT 1)
72  set(HAVE_FSTATAT 0)
73  set(HAVE_FSTATFS 0)
74  set(HAVE_FSTATVFS 0)
75  set(HAVE_FTRUNCATE 0)
76  set(HAVE_FUTIMENS 0)
77  set(HAVE_FUTIMES 0)
78  set(HAVE_FUTIMESAT 0)
79  set(HAVE_GETEUID 0)
80  set(HAVE_GETGRGID_R 0)
81  set(HAVE_GETGRNAM_R 0)
82  set(HAVE_GETHOSTBYNAME 1)
83  set(HAVE_GETPAGESIZE 0)
84  set(HAVE_GETPEERNAME 1)
85  set(HAVE_GETPID 1)
86  set(HAVE_GETPPID 0)
87  set(HAVE_GETPROTOBYNAME 1)
88  set(HAVE_GETPWNAM_R 0)
89  set(HAVE_GETPWUID_R 0)
90  set(HAVE_GETRANDOM 0)
91  set(HAVE_GETRLIMIT 0)
92  set(HAVE_GETSOCKNAME 1)
93  set(HAVE_GETVFSBYNAME 0)
94  set(HAVE_GLIBC_STRERROR_R 0)
95  set(HAVE__GMTIME64_S 1)
96  set(HAVE_GMTIME_R 0)
97  set(HAVE_GRP_H 0)
98  set(HAVE_IDN2_H 0)
99  set(HAVE_IFADDRS_H 0)
100  set(HAVE_IF_NAMETOINDEX 0)
101  set(HAVE_INTTYPES_H 1)
102  set(HAVE_IOCTL 0)
103  set(HAVE_IOCTL_FIONBIO 0)
104  set(HAVE_IOCTL_SIOCGIFADDR 0)
105  set(HAVE_IOCTLSOCKET 1)
106  set(HAVE_IOCTLSOCKET_CAMEL 0)
107  set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1)
108  set(HAVE_IOCTLSOCKET_FIONBIO 1)
109  set(HAVE_IO_H 1)
110  set(HAVE_KRB_H 0)
111  set(HAVE_LANGINFO_H 0)
112  set(HAVE_LCHFLAGS 0)
113  set(HAVE_LCHMOD 0)
114  set(HAVE_LCHOWN 0)
115  set(HAVE_LIBIDN2 0)
116  set(HAVE_LIBNETWORK 0)
117  set(HAVE_LIBWINMM 1)
118  set(HAVE_LIBWS2_32 1)
119  set(HAVE_LIMITS_H 1)
120  set(HAVE_LINK 0)
121  set(HAVE_LINUX_FIEMAP_H 0)
122  set(HAVE_LINUX_FS_H 0)
123  set(HAVE_LINUX_MAGIC_H 0)
124  set(HAVE_LINUX_TYPES_H 0)
125  set(HAVE__LOCALTIME64_S 1)
126  set(HAVE_LOCALTIME_R 0)
127  set(HAVE_LSTAT 0)
128  set(HAVE_LUTIMES 0)
129  set(HAVE_MACH_ABSOLUTE_TIME 0)
130  set(HAVE_MBRTOWC 1)
131  set(HAVE_MEMBERSHIP_H 0)
132  set(HAVE_MEMORY_H 1)
133  set(HAVE_MKDIR 1)
134  set(HAVE_MKFIFO 0)
135  set(HAVE__MKGMTIME64 1)
136  set(HAVE_MKNOD 0)
137  set(HAVE_MMAP 0)
138  set(HAVE_MSG_NOSIGNAL 0)
139  set(HAVE_NETINET_TCP_H 0)
140  set(HAVE_NL_LANGINFO 0)
141  set(HAVE_OPENAT 0)
142  set(HAVE_PATHS_H 0)
143  set(HAVE_PEM_H 0)
144  set(HAVE_PIPE 0)
145  set(HAVE_POLL 0)
146  set(HAVE_POLL_FINE 0)
147  set(HAVE_POLL_H 0)
148  set(HAVE_POSIX_SPAWNP 0)
149  set(HAVE_POSIX_STRERROR_R 0)
150  set(HAVE_PROCESS_H 1)
151  set(HAVE_PWD_H 0)
152  set(HAVE_READDIR_R 0)
153  set(HAVE_READLINK 0)
154  set(HAVE_READLINKAT 0)
155  set(HAVE_READPASSPHRASE 0)
156  set(HAVE_READPASSPHRASE_H 0)
157  set(HAVE_REGEX_H 0)
158  set(HAVE_RSA_H 0)
159  set(HAVE_SELECT 0)
160  set(HAVE_SETENV 0)
161  set(HAVE_SETMODE 1)
162  set(HAVE_SETRLIMIT 0)
163  set(HAVE_SETSOCKOPT 1)
164  set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
165  set(HAVE_SIGACTION 0)
166  set(HAVE_SIG_ATOMIC_T_NOT_VOLATILE 1)
167  set(HAVE_SIGINTERRUPT 0)
168  set(HAVE_SIGNAL_H 1)
169  set(HAVE_SIZEOF_ADDRESS_FAMILY 0)
170  set(HAVE_SIZEOF_SA_FAMILY_T 0)
171  set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 0)
172  set(HAVE_SPAWN_H 0)
173  set(HAVE_SSL_H 0)
174  set(HAVE_STATFS 0)
175  set(HAVE_STATVFS 0)
176  set(HAVE_STDARG_H 1)
177  set(HAVE_STDBOOL_H 1)
178  set(HAVE_STDINT_H 1)
179  set(HAVE_STRERROR 1)
180  set(HAVE_STRERROR_R 0)
181  set(HAVE_STRNCMPI 0)
182  set(HAVE_STRNCPY_S 1)
183  set(HAVE_STRNLEN 1)
184  set(HAVE_STROPTS_H 0)
185  set(HAVE__STRTOI64 1)
186  set(HAVE_STRTOLL 1)
187  set(HAVE_STRUCT_STATFS_F_NAMEMAX 0)
188  set(HAVE_STRUCT_STAT_ST_BIRTHTIME 0)
189  set(HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 0)
190  set(HAVE_STRUCT_STAT_ST_BLKSIZE 0)
191  set(HAVE_STRUCT_STAT_ST_FLAGS 0)
192  set(HAVE_STRUCT_STAT_ST_MTIME_N 0)
193  set(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 0)
194  set(HAVE_STRUCT_STAT_ST_MTIME_USEC 0)
195  set(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0)
196  set(HAVE_STRUCT_STAT_ST_UMTIME 0)
197  set(HAVE_STRUCT_TIMEVAL 1)
198  set(HAVE_STRUCT_TM___TM_GMTOFF 0)
199  set(HAVE_STRUCT_TM_TM_GMTOFF 0)
200  set(HAVE_STRUCT_VFSCONF 0)
201  set(HAVE_STRUCT_XVFSCONF 0)
202  set(HAVE_SYMLINK 0)
203  set(HAVE_SYS_ACL_H 0)
204  set(HAVE_SYSCALL_GETRANDOM 0)
205  set(HAVE_SYS_EXTATTR_H 0)
206  set(HAVE_SYS_FILIO_H 0)
207  set(HAVE_SYS_IOCTL_H 0)
208  set(HAVE_SYS_MKDEV_H 0)
209  set(HAVE_SYS_MOUNT_H 0)
210  set(HAVE_SYS_POLL_H 0)
211  set(HAVE_SYS_RESOURCE_H 0)
212  set(HAVE_SYS_RICHACL_H 0)
213  set(HAVE_SYS_SELECT_H 0)
214  set(HAVE_SYS_STATFS_H 0)
215  set(HAVE_SYS_STAT_H 1)
216  set(HAVE_SYS_STATVFS_H 0)
217  set(HAVE_SYS_SYSCTL_H 0)
218  set(HAVE_SYS_SYSMACROS_H 0)
219  set(HAVE_SYS_UIO_H 0)
220  set(HAVE_SYS_UN_H 0)
221  set(HAVE_SYS_UTSNAME_H 0)
222  set(HAVE_SYS_VFS_H 0)
223  set(HAVE_SYS_WAIT_H 0)
224  set(HAVE_SYS_XATTR_H 0)
225  set(HAVE_TIMEGM 0)
226  set(HAVE_TZSET 1)
227  set(HAVE_UNLINKAT 0)
228  set(HAVE_USLEEP 0)
229  set(HAVE_UTIMENSAT 0)
230  set(HAVE_UTIMES 0)
231  set(HAVE_VFORK 0)
232  set(HAVE_WORKING_EXT2_IOC_GETFLAGS 0)
233  set(HAVE_WORKING_FS_IOC_GETFLAGS 0)
234
235  # Some POSIX headers are available on Windows.
236  set(HAVE_SYS_TYPES_H 1)
237  set(HAVE_SYS_UTIME_H 1)
238  set(HAVE_TIME_H 1)
239  set(HAVE_UTIME 1)
240
241  # Wide character APIs are available on Windows.
242  set(HAVE_WCRTOMB 1)
243  set(HAVE_WCSCMP 1)
244  set(HAVE_WCSCPY 1)
245  set(HAVE_WCSLEN 1)
246  set(HAVE_WCTOMB 1)
247  set(HAVE_WCTYPE_H 1)
248
249  # Windows APIs are available on Windows.
250  set(HAVE_WINCRYPT_H 1)
251  set(HAVE_WINDOWS_H 1)
252  set(HAVE_WINIOCTL_H 1)
253  set(HAVE_WINSOCK2_H 1)
254  set(HAVE_WINSOCK_H 1)
255  set(HAVE_WS2TCPIP_H 1)
256  set(USE_WINCRYPT 1) # We do not need to build as a Windows App.
257
258  # UNIX integer id types do not exist on Windows.
259  set(HAVE_ID_T 0)
260  set(HAVE_GID_T 0)
261  set(HAVE_UID_T 0)
262  set(ID_T "")
263  set(GID_T "")
264  set(UID_T "")
265
266  # curl and expat: stdlib.h, stdarg.h, string.h, float.h
267  set(STDC_HEADERS 1)
268
269  # UNIX device APIs do not exist on Windows.
270  set(MAJOR_IN_MKDEV 0)
271  set(MAJOR_IN_SYSMACROS 0)
272
273  # FreeBSD libmd does not exist on Windows.
274  set(LIBMD_FOUND 0)
275
276  # libarchive looks for external hash implementations.
277  set(ARCHIVE_CRYPTO_MD5_LIBC 0)
278  set(ARCHIVE_CRYPTO_MD5_LIBMD 0)
279  set(ARCHIVE_CRYPTO_MD5_LIBSYSTEM 0)
280  set(ARCHIVE_CRYPTO_MD5_WIN 1)
281  set(ARCHIVE_CRYPTO_RMD160_LIBC 0)
282  set(ARCHIVE_CRYPTO_RMD160_LIBMD 0)
283  set(ARCHIVE_CRYPTO_SHA1_LIBC 0)
284  set(ARCHIVE_CRYPTO_SHA1_LIBMD 0)
285  set(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM 0)
286  set(ARCHIVE_CRYPTO_SHA1_WIN 1)
287  set(ARCHIVE_CRYPTO_SHA256_LIBC 0)
288  set(ARCHIVE_CRYPTO_SHA256_LIBC2 0)
289  set(ARCHIVE_CRYPTO_SHA256_LIBC3 0)
290  set(ARCHIVE_CRYPTO_SHA256_LIBMD 0)
291  set(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM 0)
292  set(ARCHIVE_CRYPTO_SHA256_WIN 0)
293  set(ARCHIVE_CRYPTO_SHA384_LIBC 0)
294  set(ARCHIVE_CRYPTO_SHA384_LIBC2 0)
295  set(ARCHIVE_CRYPTO_SHA384_LIBC3 0)
296  set(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM 0)
297  set(ARCHIVE_CRYPTO_SHA384_WIN 0)
298  set(ARCHIVE_CRYPTO_SHA512_LIBC 0)
299  set(ARCHIVE_CRYPTO_SHA512_LIBC2 0)
300  set(ARCHIVE_CRYPTO_SHA512_LIBC3 0)
301  set(ARCHIVE_CRYPTO_SHA512_LIBMD 0)
302  set(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM 0)
303  set(ARCHIVE_CRYPTO_SHA512_WIN 0)
304endif()
305