cmake: pre-fill rest of detection values for Windows
The goal of this patch is to avoid unnecessary feature detection work
when doing Windows builds with CMake. Do this by pre-filling well-known
detection results for Windows and specifically for mingw-w64 and MSVC
compilers. Also limit feature checks to platforms where the results are
actually used. Drop a few redundant ones. And some tidying up.
- pre-fill remaining detection values in Windows CMake builds.
Based on actual detection results observed in CI runs, preceding
similar work over libssh2 and matching up values with
`lib/config-win32.h`.
This brings down CMake configuration time from 58 to 14 seconds on the
same local machine.
On AppVeyor CI this translates to:
- 128 seconds -> 50 seconds VS2022 MSVC with OpenSSL (per CMake job):
https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/4gw66ecrjpy7necb#L296
https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/8m4fwrr2fe249uo8#L186
- 62 seconds -> 16 seconds VS2017 MINGW (per CMake job):
https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/s1y8q5ivlcs7ub29?fullLog=true#L290
https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/pchpxyjsyc9kl13a?fullLog=true#L194
The formula is about 1-3 seconds delay for each detection. Almost all
of these trigger a full compile-link cycle behind the scenes, slow
even today, both cross and native, mingw-w64 and apparently MSVC too.
Enabling .map files or other custom build features slows it down
further. (Similar is expected for autotools configure.)
- stop detecting `idn2.h` if idn2 was deselected.
autotools does this.
- stop detecting `idn2.h` if idn2 was not found.
This deviates from autotools. Source code requires both header and
lib, so this is still correct, but faster.
- limit `ADDRESS_FAMILY` detection to Windows.
- normalize `HAVE_WIN32_WINNT` value to lowercase `0x0a12` format.
- pre-fill `HAVE_WIN32_WINNT`-dependent detection results.
Saving 4 (slow) feature-detections in most builds: `getaddrinfo`,
`freeaddrinfo`, `inet_ntop`, `inet_pton`
- fix pre-filled `HAVE_SYS_TIME_H`, `HAVE_SYS_PARAM_H`,
`HAVE_GETTIMEOFDAY` for mingw-w64.
Luckily this do not change build results, as `WIN32` took
priority over `HAVE_GETTIMEOFDAY` with the current source
code.
- limit `HAVE_CLOCK_GETTIME_MONOTONIC_RAW` and
`HAVE_CLOCK_GETTIME_MONOTONIC` detections to non-Windows.
We're not using these in the source code for Windows.
- reduce compiler warning noise in CMake internal logs:
- fix to include `winsock2.h` before `windows.h`.
Apply it to autotools test snippets too.
- delete previous `-D_WINSOCKAPI_=` hack that aimed to fix the above.
- cleanup `CMake/CurlTests.c` to emit less warnings.
- delete redundant `HAVE_MACRO_SIGSETJMP` feature check.
It was the same check as `HAVE_SIGSETJMP`.
- delete 'experimental' marking from `CURL_USE_OPENSSL`.
- show CMake version via `CMakeLists.txt`.
Credit to the `zlib-ng` project for the idea:
61e181c8ae/CMakeLists.txt (L7)
- make `CMake/CurlTests.c` pass `checksrc`.
- `CMake/WindowsCache.cmake` tidy-ups.
- replace `WIN32` guard with `_WIN32` in `CMake/CurlTests.c`.
Closes #12044
This commit is contained in:
parent
7fdf30f256
commit
2100d9fde2
@ -23,7 +23,6 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_O_NONBLOCK
|
#ifdef HAVE_FCNTL_O_NONBLOCK
|
||||||
|
|
||||||
/* headers for FCNTL_O_NONBLOCK test */
|
/* headers for FCNTL_O_NONBLOCK test */
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -45,8 +44,7 @@
|
|||||||
#error "O_NONBLOCK does not work on this platform"
|
#error "O_NONBLOCK does not work on this platform"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
/* O_NONBLOCK source test */
|
/* O_NONBLOCK source test */
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
@ -108,35 +106,15 @@ int main(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SOCKLEN_T
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <ws2tcpip.h>
|
|
||||||
#else
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#endif
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
if ((socklen_t *) 0)
|
|
||||||
return 0;
|
|
||||||
if (sizeof (socklen_t))
|
|
||||||
return 0;
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_IN_ADDR_T
|
#ifdef HAVE_IN_ADDR_T
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
if ((in_addr_t *) 0)
|
if((in_addr_t *) 0)
|
||||||
return 0;
|
return 0;
|
||||||
if (sizeof (in_addr_t))
|
if(sizeof(in_addr_t))
|
||||||
return 0;
|
return 0;
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -150,10 +128,9 @@ if (sizeof (in_addr_t))
|
|||||||
#ifdef HAVE_STDBOOL_H
|
#ifdef HAVE_STDBOOL_H
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#endif
|
#endif
|
||||||
int
|
int main(void)
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
if (sizeof (bool *) )
|
if(sizeof(bool *))
|
||||||
return 0;
|
return 0;
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -165,8 +142,9 @@ if (sizeof (bool *) )
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
int main() { return 0; }
|
int main(void) { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FILE_OFFSET_BITS
|
#ifdef HAVE_FILE_OFFSET_BITS
|
||||||
#ifdef _FILE_OFFSET_BITS
|
#ifdef _FILE_OFFSET_BITS
|
||||||
#undef _FILE_OFFSET_BITS
|
#undef _FILE_OFFSET_BITS
|
||||||
@ -181,73 +159,66 @@ int main() { return 0; }
|
|||||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
&& LARGE_OFF_T % 2147483647 == 1)
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
? 1 : -1];
|
? 1 : -1];
|
||||||
int main () { ; return 0; }
|
int main(void) { ; return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTLSOCKET
|
#ifdef HAVE_IOCTLSOCKET
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
|
/* ioctlsocket source code */
|
||||||
/* ioctlsocket source code */
|
|
||||||
int socket;
|
int socket;
|
||||||
unsigned long flags = ioctlsocket(socket, FIONBIO, &flags);
|
unsigned long flags = ioctlsocket(socket, FIONBIO, &flags);
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTLSOCKET_CAMEL
|
#ifdef HAVE_IOCTLSOCKET_CAMEL
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
|
/* IoctlSocket source code */
|
||||||
/* IoctlSocket source code */
|
|
||||||
if(0 != IoctlSocket(0, 0, 0))
|
if(0 != IoctlSocket(0, 0, 0))
|
||||||
return 1;
|
return 1;
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO
|
#ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
|
/* IoctlSocket source code */
|
||||||
/* IoctlSocket source code */
|
|
||||||
long flags = 0;
|
long flags = 0;
|
||||||
if(0 != IoctlSocket(0, FIONBIO, &flags))
|
if(0 != IoctlSocket(0, FIONBIO, &flags))
|
||||||
return 1;
|
return 1;
|
||||||
@ -255,30 +226,28 @@ main ()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTLSOCKET_FIONBIO
|
#ifdef HAVE_IOCTLSOCKET_FIONBIO
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
|
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
if(0 != ioctlsocket(0, FIONBIO, &flags))
|
if(0 != ioctlsocket(0, FIONBIO, &flags))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTL_FIONBIO
|
#ifdef HAVE_IOCTL_FIONBIO
|
||||||
/* headers for FIONBIO test */
|
/* headers for FIONBIO test */
|
||||||
/* includes start */
|
/* includes start */
|
||||||
@ -297,19 +266,16 @@ main ()
|
|||||||
#ifdef HAVE_STROPTS_H
|
#ifdef HAVE_STROPTS_H
|
||||||
# include <stropts.h>
|
# include <stropts.h>
|
||||||
#endif
|
#endif
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
|
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
if(0 != ioctl(0, FIONBIO, &flags))
|
if(0 != ioctl(0, FIONBIO, &flags))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_IOCTL_SIOCGIFADDR
|
#ifdef HAVE_IOCTL_SIOCGIFADDR
|
||||||
/* headers for FIONBIO test */
|
/* headers for FIONBIO test */
|
||||||
/* includes start */
|
/* includes start */
|
||||||
@ -329,28 +295,26 @@ main ()
|
|||||||
# include <stropts.h>
|
# include <stropts.h>
|
||||||
#endif
|
#endif
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
struct ifreq ifr;
|
struct ifreq ifr;
|
||||||
if(0 != ioctl(0, SIOCGIFADDR, &ifr))
|
if(0 != ioctl(0, SIOCGIFADDR, &ifr))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SETSOCKOPT_SO_NONBLOCK
|
#ifdef HAVE_SETSOCKOPT_SO_NONBLOCK
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
@ -360,9 +324,7 @@ main ()
|
|||||||
# include <sys/socket.h>
|
# include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
/* includes end */
|
/* includes end */
|
||||||
|
int main(void)
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
{
|
||||||
if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0))
|
if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0))
|
||||||
return 1;
|
return 1;
|
||||||
@ -370,20 +332,22 @@ main ()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_GLIBC_STRERROR_R
|
#ifdef HAVE_GLIBC_STRERROR_R
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
void check(char c) {}
|
void check(char c) {}
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main () {
|
{
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
/* This will not compile if strerror_r does not return a char* */
|
/* This will not compile if strerror_r does not return a char* */
|
||||||
check(strerror_r(EACCES, buffer, sizeof(buffer))[0]);
|
check(strerror_r(EACCES, buffer, sizeof(buffer))[0]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_POSIX_STRERROR_R
|
#ifdef HAVE_POSIX_STRERROR_R
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@ -391,46 +355,51 @@ main () {
|
|||||||
/* float, because a pointer can't be implicitly cast to float */
|
/* float, because a pointer can't be implicitly cast to float */
|
||||||
void check(float f) {}
|
void check(float f) {}
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main () {
|
{
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
/* This will not compile if strerror_r does not return an int */
|
/* This will not compile if strerror_r does not return an int */
|
||||||
check(strerror_r(EACCES, buffer, sizeof(buffer)));
|
check(strerror_r(EACCES, buffer, sizeof(buffer)));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FSETXATTR_6
|
#ifdef HAVE_FSETXATTR_6
|
||||||
#include <sys/xattr.h> /* header from libc, not from libattr */
|
#include <sys/xattr.h> /* header from libc, not from libattr */
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
fsetxattr(0, 0, 0, 0, 0, 0);
|
fsetxattr(0, 0, 0, 0, 0, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FSETXATTR_5
|
#ifdef HAVE_FSETXATTR_5
|
||||||
#include <sys/xattr.h> /* header from libc, not from libattr */
|
#include <sys/xattr.h> /* header from libc, not from libattr */
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
fsetxattr(0, 0, 0, 0, 0);
|
fsetxattr(0, 0, 0, 0, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_CLOCK_GETTIME_MONOTONIC
|
#ifdef HAVE_CLOCK_GETTIME_MONOTONIC
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
struct timespec ts = {0, 0};
|
struct timespec ts = {0, 0};
|
||||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_BUILTIN_AVAILABLE
|
#ifdef HAVE_BUILTIN_AVAILABLE
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
if(__builtin_available(macOS 10.12, *)) {}
|
if(__builtin_available(macOS 10.12, *)) {}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_VARIADIC_MACROS_C99
|
#ifdef HAVE_VARIADIC_MACROS_C99
|
||||||
#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__)
|
#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__)
|
||||||
#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__)
|
#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__)
|
||||||
@ -438,15 +407,17 @@ main() {
|
|||||||
int fun3(int arg1, int arg2, int arg3);
|
int fun3(int arg1, int arg2, int arg3);
|
||||||
int fun2(int arg1, int arg2);
|
int fun2(int arg1, int arg2);
|
||||||
|
|
||||||
int fun3(int arg1, int arg2, int arg3) {
|
int fun3(int arg1, int arg2, int arg3)
|
||||||
|
{
|
||||||
return arg1 + arg2 + arg3;
|
return arg1 + arg2 + arg3;
|
||||||
}
|
}
|
||||||
int fun2(int arg1, int arg2) {
|
int fun2(int arg1, int arg2)
|
||||||
|
{
|
||||||
return arg1 + arg2;
|
return arg1 + arg2;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
int res3 = c99_vmacro3(1, 2, 3);
|
int res3 = c99_vmacro3(1, 2, 3);
|
||||||
int res2 = c99_vmacro2(1, 2);
|
int res2 = c99_vmacro2(1, 2);
|
||||||
(void)res3;
|
(void)res3;
|
||||||
@ -454,6 +425,7 @@ main() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_VARIADIC_MACROS_GCC
|
#ifdef HAVE_VARIADIC_MACROS_GCC
|
||||||
#define gcc_vmacro3(first, args...) fun3(first, args)
|
#define gcc_vmacro3(first, args...) fun3(first, args)
|
||||||
#define gcc_vmacro2(first, args...) fun2(first, args)
|
#define gcc_vmacro2(first, args...) fun2(first, args)
|
||||||
@ -461,15 +433,17 @@ main() {
|
|||||||
int fun3(int arg1, int arg2, int arg3);
|
int fun3(int arg1, int arg2, int arg3);
|
||||||
int fun2(int arg1, int arg2);
|
int fun2(int arg1, int arg2);
|
||||||
|
|
||||||
int fun3(int arg1, int arg2, int arg3) {
|
int fun3(int arg1, int arg2, int arg3)
|
||||||
|
{
|
||||||
return arg1 + arg2 + arg3;
|
return arg1 + arg2 + arg3;
|
||||||
}
|
}
|
||||||
int fun2(int arg1, int arg2) {
|
int fun2(int arg1, int arg2)
|
||||||
|
{
|
||||||
return arg1 + arg2;
|
return arg1 + arg2;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
int res3 = gcc_vmacro3(1, 2, 3);
|
int res3 = gcc_vmacro3(1, 2, 3);
|
||||||
int res2 = gcc_vmacro2(1, 2);
|
int res2 = gcc_vmacro2(1, 2);
|
||||||
(void)res3;
|
(void)res3;
|
||||||
@ -477,6 +451,7 @@ main() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_ATOMIC
|
#ifdef HAVE_ATOMIC
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
@ -490,17 +465,24 @@ main() {
|
|||||||
#endif
|
#endif
|
||||||
/* includes end */
|
/* includes end */
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
_Atomic int i = 1;
|
_Atomic int i = 1;
|
||||||
i = 0; /* Force an atomic-write operation. */
|
i = 0; /* Force an atomic-write operation. */
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_WIN32_WINNT
|
#ifdef HAVE_WIN32_WINNT
|
||||||
/* includes start */
|
/* includes start */
|
||||||
#ifdef WIN32
|
#ifdef _WIN32
|
||||||
# include "../lib/setup-win32.h"
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
|
# endif
|
||||||
|
# ifndef NOGDI
|
||||||
|
# define NOGDI
|
||||||
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
/* includes end */
|
/* includes end */
|
||||||
|
|
||||||
@ -508,8 +490,8 @@ main() {
|
|||||||
#define expand(x) enquote(x)
|
#define expand(x) enquote(x)
|
||||||
#pragma message("_WIN32_WINNT=" expand(_WIN32_WINNT))
|
#pragma message("_WIN32_WINNT=" expand(_WIN32_WINNT))
|
||||||
|
|
||||||
int
|
int main(void)
|
||||||
main() {
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -35,13 +35,13 @@ endmacro()
|
|||||||
|
|
||||||
set(signature_call_conv)
|
set(signature_call_conv)
|
||||||
if(HAVE_WINDOWS_H)
|
if(HAVE_WINDOWS_H)
|
||||||
add_header_include(HAVE_WINSOCK2_H "winsock2.h")
|
|
||||||
add_header_include(HAVE_WINDOWS_H "windows.h")
|
|
||||||
set(_source_epilogue
|
set(_source_epilogue
|
||||||
"${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif")
|
"${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif")
|
||||||
|
add_header_include(HAVE_WINSOCK2_H "winsock2.h")
|
||||||
|
add_header_include(HAVE_WINDOWS_H "windows.h")
|
||||||
set(signature_call_conv "PASCAL")
|
set(signature_call_conv "PASCAL")
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(CMAKE_REQUIRED_LIBRARIES ws2_32)
|
set(CMAKE_REQUIRED_LIBRARIES "ws2_32")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
|
add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
|
||||||
@ -71,11 +71,11 @@ int main(void) {
|
|||||||
}" HAVE_STRUCT_TIMEVAL)
|
}" HAVE_STRUCT_TIMEVAL)
|
||||||
|
|
||||||
if(HAVE_WINDOWS_H)
|
if(HAVE_WINDOWS_H)
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES winsock2.h)
|
set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES)
|
set(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
if(HAVE_SYS_SOCKET_H)
|
if(HAVE_SYS_SOCKET_H)
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h)
|
set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
|
|||||||
set(_source_epilogue "${_save_epilogue}")
|
set(_source_epilogue "${_save_epilogue}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED HAVE_CLOCK_GETTIME_MONOTONIC_RAW)
|
if(NOT WIN32 AND NOT DEFINED HAVE_CLOCK_GETTIME_MONOTONIC_RAW)
|
||||||
set(_save_epilogue "${_source_epilogue}")
|
set(_save_epilogue "${_source_epilogue}")
|
||||||
set(_source_epilogue "#undef inline")
|
set(_source_epilogue "#undef inline")
|
||||||
|
|
||||||
|
|||||||
@ -21,113 +21,177 @@
|
|||||||
# SPDX-License-Identifier: curl
|
# SPDX-License-Identifier: curl
|
||||||
#
|
#
|
||||||
###########################################################################
|
###########################################################################
|
||||||
if(NOT UNIX)
|
if(NOT WIN32)
|
||||||
if(WIN32)
|
message(FATAL_ERROR "This file should be included on Windows platform only")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(HAVE_WINDOWS_H 1)
|
set(HAVE_LOCALE_H 1)
|
||||||
set(HAVE_WS2TCPIP_H 1)
|
|
||||||
set(HAVE_WINSOCK2_H 1)
|
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(HAVE_SNPRINTF 1)
|
set(HAVE_SNPRINTF 1)
|
||||||
set(HAVE_UNISTD_H 1)
|
set(HAVE_UNISTD_H 1)
|
||||||
|
set(HAVE_LIBGEN_H 1)
|
||||||
|
set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size()
|
||||||
|
set(HAVE_STDINT_H 1)
|
||||||
|
set(HAVE_STDBOOL_H 1)
|
||||||
|
set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
|
||||||
set(HAVE_INTTYPES_H 1)
|
set(HAVE_INTTYPES_H 1)
|
||||||
set(HAVE_STRTOLL 1)
|
set(HAVE_STRTOLL 1)
|
||||||
set(HAVE_BASENAME 1)
|
set(HAVE_BASENAME 1)
|
||||||
elseif(MSVC)
|
set(HAVE_STRCASECMP 1)
|
||||||
|
set(HAVE_FTRUNCATE 1)
|
||||||
|
set(HAVE_SYS_PARAM_H 1)
|
||||||
|
set(HAVE_SYS_TIME_H 1)
|
||||||
|
set(HAVE_GETTIMEOFDAY 1)
|
||||||
|
else()
|
||||||
|
set(HAVE_LIBGEN_H 0)
|
||||||
|
set(HAVE_STRCASECMP 0)
|
||||||
|
set(HAVE_FTRUNCATE 0)
|
||||||
|
set(HAVE_SYS_PARAM_H 0)
|
||||||
|
set(HAVE_SYS_TIME_H 0)
|
||||||
|
set(HAVE_GETTIMEOFDAY 0)
|
||||||
|
if(MSVC)
|
||||||
|
set(HAVE_UNISTD_H 0)
|
||||||
|
set(HAVE_LOCALE_H 1)
|
||||||
|
set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size()
|
||||||
|
set(HAVE_STDATOMIC_H 0)
|
||||||
|
if(NOT MSVC_VERSION LESS 1400)
|
||||||
|
set(HAVE_VARIADIC_MACROS_C99 1)
|
||||||
|
else()
|
||||||
|
set(HAVE_VARIADIC_MACROS_C99 0)
|
||||||
|
endif()
|
||||||
|
if(NOT MSVC_VERSION LESS 1600)
|
||||||
|
set(HAVE_STDINT_H 1)
|
||||||
|
else()
|
||||||
|
set(HAVE_STDINT_H 0)
|
||||||
|
endif()
|
||||||
if(NOT MSVC_VERSION LESS 1800)
|
if(NOT MSVC_VERSION LESS 1800)
|
||||||
|
set(HAVE_STDBOOL_H 1)
|
||||||
set(HAVE_INTTYPES_H 1)
|
set(HAVE_INTTYPES_H 1)
|
||||||
set(HAVE_STRTOLL 1)
|
set(HAVE_STRTOLL 1)
|
||||||
else()
|
else()
|
||||||
|
set(HAVE_STDBOOL_H 0)
|
||||||
set(HAVE_INTTYPES_H 0)
|
set(HAVE_INTTYPES_H 0)
|
||||||
set(HAVE_STRTOLL 0)
|
set(HAVE_STRTOLL 0)
|
||||||
endif()
|
endif()
|
||||||
|
set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
|
||||||
if(NOT MSVC_VERSION LESS 1900)
|
if(NOT MSVC_VERSION LESS 1900)
|
||||||
set(HAVE_SNPRINTF 1)
|
set(HAVE_SNPRINTF 1)
|
||||||
else()
|
else()
|
||||||
set(HAVE_SNPRINTF 0)
|
set(HAVE_SNPRINTF 0)
|
||||||
endif()
|
endif()
|
||||||
set(HAVE_BASENAME 0)
|
set(HAVE_BASENAME 0)
|
||||||
endif()
|
set(HAVE_STRTOK_R 0)
|
||||||
|
set(HAVE_FILE_OFFSET_BITS 0)
|
||||||
set(HAVE_LIBSOCKET 0)
|
set(HAVE_ATOMIC 0)
|
||||||
set(HAVE_GETHOSTNAME 1)
|
|
||||||
set(HAVE_LIBZ 0)
|
|
||||||
|
|
||||||
set(HAVE_ARC4RANDOM 0)
|
|
||||||
set(HAVE_FNMATCH 0)
|
|
||||||
set(HAVE_SCHED_YIELD 0)
|
|
||||||
set(HAVE_ARPA_INET_H 0)
|
|
||||||
set(HAVE_FCNTL_H 1)
|
|
||||||
set(HAVE_IFADDRS_H 0)
|
|
||||||
set(HAVE_IO_H 1)
|
|
||||||
set(HAVE_NETDB_H 0)
|
|
||||||
set(HAVE_NETINET_IN_H 0)
|
|
||||||
set(HAVE_NETINET_TCP_H 0)
|
|
||||||
set(HAVE_NETINET_UDP_H 0)
|
|
||||||
set(HAVE_NET_IF_H 0)
|
|
||||||
set(HAVE_IOCTL_SIOCGIFADDR 0)
|
|
||||||
set(HAVE_POLL_H 0)
|
|
||||||
set(HAVE_POLL_FINE 0)
|
|
||||||
set(HAVE_PWD_H 0)
|
|
||||||
set(HAVE_STRINGS_H 0)
|
|
||||||
set(HAVE_SYS_FILIO_H 0)
|
|
||||||
set(HAVE_SYS_WAIT_H 0)
|
|
||||||
set(HAVE_SYS_IOCTL_H 0)
|
|
||||||
set(HAVE_SYS_PARAM_H 0)
|
|
||||||
set(HAVE_SYS_POLL_H 0)
|
|
||||||
set(HAVE_SYS_RESOURCE_H 0)
|
|
||||||
set(HAVE_SYS_SELECT_H 0)
|
|
||||||
set(HAVE_SYS_SOCKET_H 0)
|
|
||||||
set(HAVE_SYS_SOCKIO_H 0)
|
|
||||||
set(HAVE_SYS_STAT_H 1)
|
|
||||||
set(HAVE_SYS_TIME_H 0)
|
|
||||||
set(HAVE_SYS_TYPES_H 1)
|
|
||||||
set(HAVE_SYS_UN_H 0)
|
|
||||||
set(HAVE_SYS_UTIME_H 1)
|
|
||||||
set(HAVE_TERMIOS_H 0)
|
|
||||||
set(HAVE_TERMIO_H 0)
|
|
||||||
set(HAVE_UTIME_H 0)
|
|
||||||
|
|
||||||
set(HAVE_FSEEKO 0)
|
|
||||||
set(HAVE__FSEEKI64 1)
|
|
||||||
set(HAVE_SOCKET 1)
|
|
||||||
set(HAVE_SELECT 1)
|
|
||||||
set(HAVE_STRDUP 1)
|
|
||||||
set(HAVE_STRICMP 1)
|
|
||||||
set(HAVE_STRCMPI 1)
|
|
||||||
set(HAVE_MEMRCHR 0)
|
|
||||||
set(HAVE_GETTIMEOFDAY 0)
|
|
||||||
set(HAVE_CLOSESOCKET 1)
|
|
||||||
set(HAVE_SIGSETJMP 0)
|
|
||||||
set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1)
|
|
||||||
set(HAVE_GETPASS_R 0)
|
|
||||||
set(HAVE_GETPWUID 0)
|
|
||||||
set(HAVE_GETEUID 0)
|
|
||||||
set(HAVE_UTIME 1)
|
|
||||||
set(HAVE_GMTIME_R 0)
|
|
||||||
set(HAVE_CLOCK_GETTIME_MONOTONIC_RAW 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R 0)
|
|
||||||
set(HAVE_SIGNAL 1)
|
|
||||||
set(HAVE_LINUX_TCP_H 0)
|
|
||||||
set(HAVE_GLIBC_STRERROR_R 0)
|
|
||||||
set(HAVE_MACH_ABSOLUTE_TIME 0)
|
|
||||||
set(HAVE_GETIFADDRS 0)
|
|
||||||
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_3 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_5 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_6 0)
|
|
||||||
set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
|
|
||||||
|
|
||||||
set(HAVE_O_NONBLOCK 0)
|
|
||||||
set(HAVE_IN_ADDR_T 0)
|
|
||||||
set(STDC_HEADERS 1)
|
|
||||||
|
|
||||||
set(HAVE_SIGACTION 0)
|
|
||||||
set(HAVE_MACRO_SIGSETJMP 0)
|
|
||||||
else()
|
|
||||||
message("This file should be included on Windows platform only")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(HAVE_FCHMOD 0)
|
||||||
|
set(HAVE_SOCKETPAIR 0)
|
||||||
|
set(HAVE_SENDMSG 0)
|
||||||
|
set(HAVE_ALARM 0)
|
||||||
|
set(HAVE_FCNTL 0)
|
||||||
|
set(HAVE_GETPPID 0)
|
||||||
|
set(HAVE_UTIMES 0)
|
||||||
|
set(HAVE_GETPWUID_R 0)
|
||||||
|
set(HAVE_STRERROR_R 0)
|
||||||
|
set(HAVE_SIGINTERRUPT 0)
|
||||||
|
set(HAVE_PIPE 0)
|
||||||
|
set(HAVE_IF_NAMETOINDEX 0)
|
||||||
|
set(HAVE_GETRLIMIT 0)
|
||||||
|
set(HAVE_SETRLIMIT 0)
|
||||||
|
set(HAVE_FSETXATTR 0)
|
||||||
|
set(HAVE_LIBSOCKET 0)
|
||||||
|
set(HAVE_SETLOCALE 1)
|
||||||
|
set(HAVE_SETMODE 1)
|
||||||
|
set(HAVE_GETPEERNAME 1)
|
||||||
|
set(HAVE_GETSOCKNAME 1)
|
||||||
|
set(HAVE_GETHOSTNAME 1)
|
||||||
|
set(HAVE_LIBZ 0)
|
||||||
|
|
||||||
|
set(HAVE_RECV 1)
|
||||||
|
set(HAVE_SEND 1)
|
||||||
|
set(HAVE_STROPTS_H 0)
|
||||||
|
set(HAVE_SYS_XATTR_H 0)
|
||||||
|
set(HAVE_ARC4RANDOM 0)
|
||||||
|
set(HAVE_FNMATCH 0)
|
||||||
|
set(HAVE_SCHED_YIELD 0)
|
||||||
|
set(HAVE_ARPA_INET_H 0)
|
||||||
|
set(HAVE_FCNTL_H 1)
|
||||||
|
set(HAVE_IFADDRS_H 0)
|
||||||
|
set(HAVE_IO_H 1)
|
||||||
|
set(HAVE_NETDB_H 0)
|
||||||
|
set(HAVE_NETINET_IN_H 0)
|
||||||
|
set(HAVE_NETINET_TCP_H 0)
|
||||||
|
set(HAVE_NETINET_UDP_H 0)
|
||||||
|
set(HAVE_NET_IF_H 0)
|
||||||
|
set(HAVE_IOCTL_SIOCGIFADDR 0)
|
||||||
|
set(HAVE_POLL_H 0)
|
||||||
|
set(HAVE_POLL_FINE 0)
|
||||||
|
set(HAVE_PWD_H 0)
|
||||||
|
set(HAVE_STRINGS_H 0) # mingw-w64 has it (wrapper to string.h)
|
||||||
|
set(HAVE_SYS_FILIO_H 0)
|
||||||
|
set(HAVE_SYS_WAIT_H 0)
|
||||||
|
set(HAVE_SYS_IOCTL_H 0)
|
||||||
|
set(HAVE_SYS_POLL_H 0)
|
||||||
|
set(HAVE_SYS_RESOURCE_H 0)
|
||||||
|
set(HAVE_SYS_SELECT_H 0)
|
||||||
|
set(HAVE_SYS_SOCKET_H 0)
|
||||||
|
set(HAVE_SYS_SOCKIO_H 0)
|
||||||
|
set(HAVE_SYS_STAT_H 1)
|
||||||
|
set(HAVE_SYS_TYPES_H 1)
|
||||||
|
set(HAVE_SYS_UN_H 0)
|
||||||
|
set(HAVE_SYS_UTIME_H 1)
|
||||||
|
set(HAVE_TERMIOS_H 0)
|
||||||
|
set(HAVE_TERMIO_H 0)
|
||||||
|
set(HAVE_UTIME_H 0) # mingw-w64 has it (wrapper to sys/utime.h)
|
||||||
|
|
||||||
|
set(HAVE_FSEEKO 0)
|
||||||
|
set(HAVE__FSEEKI64 1)
|
||||||
|
set(HAVE_SOCKET 1)
|
||||||
|
set(HAVE_SELECT 1)
|
||||||
|
set(HAVE_STRDUP 1)
|
||||||
|
set(HAVE_STRICMP 1)
|
||||||
|
set(HAVE_STRCMPI 1)
|
||||||
|
set(HAVE_MEMRCHR 0)
|
||||||
|
set(HAVE_CLOSESOCKET 1)
|
||||||
|
set(HAVE_SIGSETJMP 0)
|
||||||
|
set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1)
|
||||||
|
set(HAVE_GETPASS_R 0)
|
||||||
|
set(HAVE_GETPWUID 0)
|
||||||
|
set(HAVE_GETEUID 0)
|
||||||
|
set(HAVE_UTIME 1)
|
||||||
|
set(HAVE_GMTIME_R 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R 0)
|
||||||
|
set(HAVE_SIGNAL 1)
|
||||||
|
set(HAVE_SIGACTION 0)
|
||||||
|
set(HAVE_LINUX_TCP_H 0)
|
||||||
|
set(HAVE_GLIBC_STRERROR_R 0)
|
||||||
|
set(HAVE_MACH_ABSOLUTE_TIME 0)
|
||||||
|
set(HAVE_GETIFADDRS 0)
|
||||||
|
set(HAVE_FCNTL_O_NONBLOCK 0)
|
||||||
|
set(HAVE_IOCTLSOCKET 1)
|
||||||
|
set(HAVE_IOCTLSOCKET_CAMEL 0)
|
||||||
|
set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0)
|
||||||
|
set(HAVE_IOCTLSOCKET_FIONBIO 1)
|
||||||
|
set(HAVE_IOCTL_FIONBIO 0)
|
||||||
|
set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
|
||||||
|
set(HAVE_POSIX_STRERROR_R 0)
|
||||||
|
set(HAVE_BUILTIN_AVAILABLE 0)
|
||||||
|
set(HAVE_MSG_NOSIGNAL 0)
|
||||||
|
set(HAVE_STRUCT_TIMEVAL 1)
|
||||||
|
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_3 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_5 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_6 0)
|
||||||
|
set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
|
||||||
|
|
||||||
|
set(HAVE_O_NONBLOCK 0)
|
||||||
|
set(HAVE_IN_ADDR_T 0)
|
||||||
|
set(STDC_HEADERS 1)
|
||||||
|
|
||||||
|
set(HAVE_SIZEOF_SUSECONDS_T 0)
|
||||||
|
set(HAVE_SIZEOF_SA_FAMILY_T 0)
|
||||||
|
|||||||
@ -61,6 +61,7 @@
|
|||||||
# variable is NOT DEFINED, the symbol detection will be performed.
|
# variable is NOT DEFINED, the symbol detection will be performed.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.7...3.16 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.7...3.16 FATAL_ERROR)
|
||||||
|
message(STATUS "Using CMake version ${CMAKE_VERSION}")
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
||||||
include(Utilities)
|
include(Utilities)
|
||||||
@ -362,7 +363,9 @@ include(CheckCSourceCompiles)
|
|||||||
|
|
||||||
# On windows preload settings
|
# On windows preload settings
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_WINSOCKAPI_=)
|
set(HAVE_WINDOWS_H 1)
|
||||||
|
set(HAVE_WS2TCPIP_H 1)
|
||||||
|
set(HAVE_WINSOCK2_H 1)
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -416,7 +419,7 @@ set(openssl_default ON)
|
|||||||
if(WIN32 OR CURL_USE_SECTRANSP OR CURL_USE_SCHANNEL OR CURL_USE_MBEDTLS OR CURL_USE_WOLFSSL)
|
if(WIN32 OR CURL_USE_SECTRANSP OR CURL_USE_SCHANNEL OR CURL_USE_MBEDTLS OR CURL_USE_WOLFSSL)
|
||||||
set(openssl_default OFF)
|
set(openssl_default OFF)
|
||||||
endif()
|
endif()
|
||||||
cmake_dependent_option(CURL_USE_OPENSSL "Use OpenSSL code. Experimental" ${openssl_default} CURL_ENABLE_SSL OFF)
|
cmake_dependent_option(CURL_USE_OPENSSL "Enable OpenSSL for SSL/TLS" ${openssl_default} CURL_ENABLE_SSL OFF)
|
||||||
option(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG "Disable automatic loading of OpenSSL configuration" OFF)
|
option(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG "Disable automatic loading of OpenSSL configuration" OFF)
|
||||||
|
|
||||||
count_true(enabled_ssl_options_count
|
count_true(enabled_ssl_options_count
|
||||||
@ -857,6 +860,7 @@ if(USE_LIBIDN2)
|
|||||||
check_library_exists("idn2" "idn2_lookup_ul" "" HAVE_LIBIDN2)
|
check_library_exists("idn2" "idn2_lookup_ul" "" HAVE_LIBIDN2)
|
||||||
if(HAVE_LIBIDN2)
|
if(HAVE_LIBIDN2)
|
||||||
set(CURL_LIBS "idn2;${CURL_LIBS}")
|
set(CURL_LIBS "idn2;${CURL_LIBS}")
|
||||||
|
check_include_file_concat("idn2.h" HAVE_IDN2_H)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(HAVE_LIBIDN2 OFF)
|
set(HAVE_LIBIDN2 OFF)
|
||||||
@ -1070,10 +1074,46 @@ if(CURL_CA_PATH_SET AND
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Check for header files
|
# Check for header files
|
||||||
if(NOT UNIX)
|
if(WIN32)
|
||||||
check_include_file_concat("windows.h" HAVE_WINDOWS_H)
|
|
||||||
check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H)
|
|
||||||
check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H)
|
check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H)
|
||||||
|
check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H)
|
||||||
|
check_include_file_concat("windows.h" HAVE_WINDOWS_H)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# detect actual value of _WIN32_WINNT and store as HAVE_WIN32_WINNT
|
||||||
|
curl_internal_test(HAVE_WIN32_WINNT)
|
||||||
|
if(HAVE_WIN32_WINNT)
|
||||||
|
string(REGEX MATCH ".*_WIN32_WINNT=0x[0-9a-fA-F]+" OUTPUT "${OUTPUT}")
|
||||||
|
string(REGEX REPLACE ".*_WIN32_WINNT=" "" OUTPUT "${OUTPUT}")
|
||||||
|
string(REGEX REPLACE "0x([0-9a-f][0-9a-f][0-9a-f])$" "0x0\\1" OUTPUT "${OUTPUT}") # pad to 4 digits
|
||||||
|
string(TOLOWER "${OUTPUT}" HAVE_WIN32_WINNT)
|
||||||
|
message(STATUS "Found _WIN32_WINNT=${HAVE_WIN32_WINNT}")
|
||||||
|
endif()
|
||||||
|
# avoid storing HAVE_WIN32_WINNT in CMake cache
|
||||||
|
unset(HAVE_WIN32_WINNT CACHE)
|
||||||
|
|
||||||
|
# pre-fill detection results that are based on target OS version
|
||||||
|
if(HAVE_WIN32_WINNT AND (MINGW OR MSVC))
|
||||||
|
if(HAVE_WIN32_WINNT STRLESS "0x0501")
|
||||||
|
set(HAVE_GETADDRINFO 0)
|
||||||
|
set(HAVE_FREEADDRINFO 0)
|
||||||
|
else() # Windows XP or newer
|
||||||
|
set(HAVE_GETADDRINFO 1)
|
||||||
|
set(HAVE_FREEADDRINFO 1)
|
||||||
|
endif()
|
||||||
|
unset(HAVE_GETADDRINFO CACHE)
|
||||||
|
unset(HAVE_FREEADDRINFO CACHE)
|
||||||
|
if(HAVE_WIN32_WINNT STRLESS "0x0600")
|
||||||
|
set(HAVE_INET_NTOP 0)
|
||||||
|
set(HAVE_INET_PTON 0)
|
||||||
|
else() # Windows Vista or newer
|
||||||
|
set(HAVE_INET_NTOP 1)
|
||||||
|
set(HAVE_INET_PTON 1)
|
||||||
|
endif()
|
||||||
|
unset(HAVE_INET_NTOP CACHE)
|
||||||
|
unset(HAVE_INET_PTON CACHE)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
check_include_file_concat("inttypes.h" HAVE_INTTYPES_H)
|
check_include_file_concat("inttypes.h" HAVE_INTTYPES_H)
|
||||||
@ -1094,7 +1134,6 @@ check_include_file_concat("sys/utime.h" HAVE_SYS_UTIME_H)
|
|||||||
check_include_file_concat("sys/xattr.h" HAVE_SYS_XATTR_H)
|
check_include_file_concat("sys/xattr.h" HAVE_SYS_XATTR_H)
|
||||||
check_include_file_concat("arpa/inet.h" HAVE_ARPA_INET_H)
|
check_include_file_concat("arpa/inet.h" HAVE_ARPA_INET_H)
|
||||||
check_include_file_concat("fcntl.h" HAVE_FCNTL_H)
|
check_include_file_concat("fcntl.h" HAVE_FCNTL_H)
|
||||||
check_include_file_concat("idn2.h" HAVE_IDN2_H)
|
|
||||||
check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H)
|
check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H)
|
||||||
check_include_file_concat("io.h" HAVE_IO_H)
|
check_include_file_concat("io.h" HAVE_IO_H)
|
||||||
check_include_file_concat("libgen.h" HAVE_LIBGEN_H)
|
check_include_file_concat("libgen.h" HAVE_LIBGEN_H)
|
||||||
@ -1192,6 +1231,7 @@ check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R)
|
|||||||
check_symbol_exists(signal "${CURL_INCLUDES};signal.h" HAVE_SIGNAL)
|
check_symbol_exists(signal "${CURL_INCLUDES};signal.h" HAVE_SIGNAL)
|
||||||
check_symbol_exists(strtoll "${CURL_INCLUDES};stdlib.h" HAVE_STRTOLL)
|
check_symbol_exists(strtoll "${CURL_INCLUDES};stdlib.h" HAVE_STRTOLL)
|
||||||
check_symbol_exists(strerror_r "${CURL_INCLUDES};stdlib.h;string.h" HAVE_STRERROR_R)
|
check_symbol_exists(strerror_r "${CURL_INCLUDES};stdlib.h;string.h" HAVE_STRERROR_R)
|
||||||
|
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
||||||
check_symbol_exists(siginterrupt "${CURL_INCLUDES};signal.h" HAVE_SIGINTERRUPT)
|
check_symbol_exists(siginterrupt "${CURL_INCLUDES};signal.h" HAVE_SIGINTERRUPT)
|
||||||
check_symbol_exists(getaddrinfo "${CURL_INCLUDES};stdlib.h;string.h" HAVE_GETADDRINFO)
|
check_symbol_exists(getaddrinfo "${CURL_INCLUDES};stdlib.h;string.h" HAVE_GETADDRINFO)
|
||||||
check_symbol_exists(getifaddrs "${CURL_INCLUDES};stdlib.h" HAVE_GETIFADDRS)
|
check_symbol_exists(getifaddrs "${CURL_INCLUDES};stdlib.h" HAVE_GETIFADDRS)
|
||||||
@ -1235,20 +1275,11 @@ check_type_size("sa_family_t" SIZEOF_SA_FAMILY_T)
|
|||||||
set(HAVE_SA_FAMILY_T ${HAVE_SIZEOF_SA_FAMILY_T})
|
set(HAVE_SA_FAMILY_T ${HAVE_SIZEOF_SA_FAMILY_T})
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
||||||
|
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES "ws2def.h")
|
if(WIN32)
|
||||||
check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY)
|
set(CMAKE_EXTRA_INCLUDE_FILES "ws2def.h")
|
||||||
set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY})
|
check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY)
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY})
|
||||||
|
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
||||||
# sigaction and sigsetjmp are special. Use special mechanism for
|
|
||||||
# detecting those, but only if previous attempt failed.
|
|
||||||
check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION)
|
|
||||||
|
|
||||||
if(NOT HAVE_SIGSETJMP)
|
|
||||||
check_symbol_exists(sigsetjmp "setjmp.h" HAVE_MACRO_SIGSETJMP)
|
|
||||||
if(HAVE_MACRO_SIGSETJMP)
|
|
||||||
set(HAVE_SIGSETJMP 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Do curl specific tests
|
# Do curl specific tests
|
||||||
@ -1293,18 +1324,6 @@ set(CMAKE_EXTRA_INCLUDE_FILES "curl/curl.h")
|
|||||||
check_type_size("curl_socket_t" SIZEOF_CURL_SOCKET_T)
|
check_type_size("curl_socket_t" SIZEOF_CURL_SOCKET_T)
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
set(CMAKE_EXTRA_INCLUDE_FILES "")
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# detect actual value of _WIN32_WINNT and store as HAVE_WIN32_WINNT
|
|
||||||
curl_internal_test(HAVE_WIN32_WINNT)
|
|
||||||
if(HAVE_WIN32_WINNT)
|
|
||||||
string(REGEX MATCH ".*_WIN32_WINNT=0x[0-9a-fA-F]+" OUTPUT "${OUTPUT}")
|
|
||||||
string(REGEX REPLACE ".*_WIN32_WINNT=" "" HAVE_WIN32_WINNT "${OUTPUT}")
|
|
||||||
message(STATUS "Found _WIN32_WINNT=${HAVE_WIN32_WINNT}")
|
|
||||||
endif()
|
|
||||||
# avoid storing HAVE_WIN32_WINNT in CMake cache
|
|
||||||
unset(HAVE_WIN32_WINNT CACHE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING)
|
if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING)
|
||||||
# on not-Windows and not-crosscompiling, check for writable argv[]
|
# on not-Windows and not-crosscompiling, check for writable argv[]
|
||||||
include(CheckCSourceRuns)
|
include(CheckCSourceRuns)
|
||||||
@ -1360,8 +1379,10 @@ if(NEED_REENTRANT)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Check clock_gettime(CLOCK_MONOTONIC, x) support
|
if(NOT WIN32)
|
||||||
curl_internal_test(HAVE_CLOCK_GETTIME_MONOTONIC)
|
# Check clock_gettime(CLOCK_MONOTONIC, x) support
|
||||||
|
curl_internal_test(HAVE_CLOCK_GETTIME_MONOTONIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Check compiler support of __builtin_available()
|
# Check compiler support of __builtin_available()
|
||||||
curl_internal_test(HAVE_BUILTIN_AVAILABLE)
|
curl_internal_test(HAVE_BUILTIN_AVAILABLE)
|
||||||
|
|||||||
16
acinclude.m4
16
acinclude.m4
@ -705,10 +705,10 @@ AC_DEFUN([TYPE_SOCKADDR_STORAGE],
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -743,10 +743,10 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
$curl_includes_bsdsocket
|
$curl_includes_bsdsocket
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
@ -794,10 +794,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
$curl_includes_bsdsocket
|
$curl_includes_bsdsocket
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
@ -841,10 +841,10 @@ AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -886,10 +886,10 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -941,10 +941,10 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -983,10 +983,10 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -1298,10 +1298,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|||||||
@ -326,7 +326,6 @@ build_script:
|
|||||||
$options += '-DCMAKE_VS_GLOBALS=TrackFileAccess=false'
|
$options += '-DCMAKE_VS_GLOBALS=TrackFileAccess=false'
|
||||||
}
|
}
|
||||||
|
|
||||||
cmake --version
|
|
||||||
Write-Host 'CMake options:' $options
|
Write-Host 'CMake options:' $options
|
||||||
cmake . $options
|
cmake . $options
|
||||||
cmake --build . --config $env:PRJ_CFG --parallel 2 --clean-first -- $env:BUILD_OPT
|
cmake --build . --config $env:PRJ_CFG --parallel 2 --clean-first -- $env:BUILD_OPT
|
||||||
|
|||||||
@ -1145,10 +1145,10 @@ then
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
#include <windows.h>
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#ifdef HAVE_WINSOCK2_H
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
]],[[
|
]],[[
|
||||||
gethostbyname("localhost");
|
gethostbyname("localhost");
|
||||||
|
|||||||
@ -72,7 +72,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define if you have the <sys/param.h> header file. */
|
/* Define if you have the <sys/param.h> header file. */
|
||||||
/* #define HAVE_SYS_PARAM_H 1 */
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_SYS_PARAM_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define if you have the <sys/select.h> header file. */
|
/* Define if you have the <sys/select.h> header file. */
|
||||||
/* #define HAVE_SYS_SELECT_H 1 */
|
/* #define HAVE_SYS_SELECT_H 1 */
|
||||||
@ -87,7 +89,9 @@
|
|||||||
#define HAVE_SYS_STAT_H 1
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
/* Define if you have the <sys/time.h> header file. */
|
/* Define if you have the <sys/time.h> header file. */
|
||||||
/* #define HAVE_SYS_TIME_H 1 */
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_SYS_TIME_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define if you have the <sys/types.h> header file. */
|
/* Define if you have the <sys/types.h> header file. */
|
||||||
#define HAVE_SYS_TYPES_H 1
|
#define HAVE_SYS_TYPES_H 1
|
||||||
@ -160,7 +164,9 @@
|
|||||||
#define HAVE_GETHOSTNAME 1
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
|
||||||
/* Define if you have the gettimeofday function. */
|
/* Define if you have the gettimeofday function. */
|
||||||
/* #define HAVE_GETTIMEOFDAY 1 */
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_GETTIMEOFDAY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define if you have the ioctlsocket function. */
|
/* Define if you have the ioctlsocket function. */
|
||||||
#define HAVE_IOCTLSOCKET 1
|
#define HAVE_IOCTLSOCKET 1
|
||||||
|
|||||||
@ -53,14 +53,14 @@
|
|||||||
# ifndef NOGDI
|
# ifndef NOGDI
|
||||||
# define NOGDI
|
# define NOGDI
|
||||||
# endif
|
# endif
|
||||||
# include <winerror.h>
|
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# ifdef HAVE_WS2TCPIP_H
|
# ifdef HAVE_WS2TCPIP_H
|
||||||
# include <ws2tcpip.h>
|
# include <ws2tcpip.h>
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
|
# include <winerror.h>
|
||||||
# include <tchar.h>
|
# include <tchar.h>
|
||||||
# ifdef UNICODE
|
# ifdef UNICODE
|
||||||
typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str);
|
typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str);
|
||||||
|
|||||||
@ -447,10 +447,10 @@ curl_includes_winsock2="\
|
|||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
/* includes end */"
|
/* includes end */"
|
||||||
CURL_CHECK_HEADER_WINDOWS
|
CURL_CHECK_HEADER_WINDOWS
|
||||||
@ -470,13 +470,13 @@ curl_includes_ws2tcpip="\
|
|||||||
# ifndef WIN32_LEAN_AND_MEAN
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# endif
|
# endif
|
||||||
# include <windows.h>
|
|
||||||
# ifdef HAVE_WINSOCK2_H
|
# ifdef HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# ifdef HAVE_WS2TCPIP_H
|
# ifdef HAVE_WS2TCPIP_H
|
||||||
# include <ws2tcpip.h>
|
# include <ws2tcpip.h>
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
/* includes end */"
|
/* includes end */"
|
||||||
CURL_CHECK_HEADER_WINDOWS
|
CURL_CHECK_HEADER_WINDOWS
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user