commit 8070a15182844b77a203cea94131a5a92fcf306c
parent b2293ce79252041899db5cf4811b2cd95640bb4e
Author: Iván Ávalos <avalos@disroot.org>
Date: Wed, 20 Aug 2025 14:17:37 +0200
use CMake for c-ares, libsodium and mbedtls instead of custom Meson files
Diffstat:
9 files changed, 24 insertions(+), 719 deletions(-)
diff --git a/.gitmodules b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "subprojects/libsodium"]
+ path = subprojects/libsodium
+ url = https://github.com/robinlinden/libsodium-cmake.git
diff --git a/cross/build-android.sh b/cross/build-android.sh
@@ -64,6 +64,9 @@ export CFLAGS="\
-DANDROID_PLATFORM=android-${API_LEVEL} \
-DANDROID_ABI=${ABI}"
+export CMAKE_ANDROID_NDK='$ANDROID_NDK_HOME'
+export CMAKE_ANDROID_ARCH_ABI='$ABI'
+
echo "building..."
rm -rf ${BUILD_DIR}
@@ -89,6 +92,10 @@ system = 'android'
cpu_family = '$CPU_FAMILY'
cpu = '$CPU'
endian = 'little'
+
+[cmake]
+CMAKE_ANDROID_NDK='$ANDROID_NDK_HOME'
+CMAKE_ANDROID_ARCH_ABI='$ABI'
EOF
export LDFLAGS=-flto
diff --git a/meson.build b/meson.build
@@ -30,25 +30,23 @@ m_dep = cc.find_library('m', required : false)
dl_dep = cc.find_library('dl', required : true)
thread_dep = dependency('threads')
-# Async DNS resolver library
-cares_proj = subproject('c-ares', required : true)
+cmake = import('cmake')
+cmake_opts = cmake.subproject_options()
+cmake_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': true})
# TLS library
-mbedtls_proj = subproject('mbedtls', required : true)
-#mbedcrypto_dep = cc.find_library('mbedcrypto', required : true)
-mbedcrypto_dep = mbedtls_proj.get_variable('mbedcrypto_dep')
-mbedtls_dep = mbedtls_proj.get_variable('mbedtls_dep')
-mbedx509_dep = mbedtls_proj.get_variable('mbedx509_dep')
+mbedtls_proj = cmake.subproject('mbedtls', required : true, options : cmake_opts)
+mbedcrypto_dep = mbedtls_proj.dependency('mbedcrypto')
+mbedtls_dep = mbedtls_proj.dependency('mbedtls')
+mbedx509_dep = mbedtls_proj.dependency('mbedx509')
# Library for HTTP requests
curl_proj = subproject('curl', required : true)
-# curl_dep = cc.find_library('curl', required : true)
curl_dep = curl_proj.get_variable('curl_dep')
# Crypto library
-sodium_proj = subproject('libsodium', required : true)
-#sodium_dep = cc.find_library('sodium', required : true)
-sodium_dep = sodium_proj.get_variable('sodium_dep')
+sodium_proj = cmake.subproject('libsodium', required : true, options : cmake_opts)
+sodium_dep = sodium_proj.dependency('sodium')
# quickjs math library (big float)
libbf = static_library('bf', 'quickjs/libbf.c')
diff --git a/subprojects/c-ares/include/ares_build.h.mesonin b/subprojects/c-ares/include/ares_build.h.mesonin
@@ -1,52 +0,0 @@
-#ifndef __CARES_BUILD_H
-#define __CARES_BUILD_H
-/*
- * Copyright (C) The c-ares project and its contributors
- * SPDX-License-Identifier: MIT
- */
-
-#define CARES_TYPEOF_ARES_SOCKLEN_T @CARES_TYPEOF_ARES_SOCKLEN_T@
-#define CARES_TYPEOF_ARES_SSIZE_T @CARES_TYPEOF_ARES_SSIZE_T@
-
-/* Prefix names with CARES_ to make sure they don't conflict with other config.h
- * files. We need to include some dependent headers that may be system specific
- * for C-Ares */
-#mesondefine CARES_HAVE_SYS_TYPES_H
-#mesondefine CARES_HAVE_SYS_RANDOM_H
-#mesondefine CARES_HAVE_SYS_SOCKET_H
-#mesondefine CARES_HAVE_WINDOWS_H
-#mesondefine CARES_HAVE_WS2TCPIP_H
-#mesondefine CARES_HAVE_WINSOCK2_H
-#mesondefine CARES_HAVE_WINDOWS_H
-#mesondefine CARES_HAVE_ARPA_NAMESER_H
-#mesondefine CARES_HAVE_ARPA_NAMESER_COMPAT_H
-
-#ifdef CARES_HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#ifdef CARES_HAVE_SYS_RANDOM_H
-# include <sys/random.h>
-#endif
-
-#ifdef CARES_HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-
-#ifdef CARES_HAVE_WINSOCK2_H
-# include <winsock2.h>
-#endif
-
-#ifdef CARES_HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-#endif
-
-#ifdef CARES_HAVE_WINDOWS_H
-# include <windows.h>
-#endif
-
-
-typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;
-typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;
-
-#endif /* __CARES_BUILD_H */
diff --git a/subprojects/c-ares/include/meson.build b/subprojects/c-ares/include/meson.build
@@ -1,14 +0,0 @@
-# Build configuration file, gets shipped as a public header.
-ares_build_conf_data = configuration_data()
-
-ares_build_conf_data.set('CARES_TYPEOF_ARES_SOCKLEN_T', 'socklen_t')
-ares_build_conf_data.set('CARES_TYPEOF_ARES_SSIZE_T', 'ssize_t')
-ares_build_conf_data.set('CARES_HAVE_SYS_TYPES_H', true)
-ares_build_conf_data.set('CARES_HAVE_SYS_RANDOM_H', true)
-ares_build_conf_data.set('CARES_HAVE_SYS_SOCKET_H', true)
-ares_build_conf_data.set('CARES_HAVE_ARPA_NAMESER_H', c_compiler.has_header('arpa/nameser.h'))
-ares_build_conf_data.set('CARES_HAVE_ARPA_NAMESER_COMPA_H', c_compiler.has_header('arpa/nameser_compa.h'))
-
-configure_file(input : 'ares_build.h.mesonin',
- output : 'ares_build.h',
- configuration : ares_build_conf_data)
diff --git a/subprojects/c-ares/meson.build b/subprojects/c-ares/meson.build
@@ -1,493 +0,0 @@
-project('cares', 'c')
-
-c_compiler = meson.get_compiler('c')
-
-cares_inc = include_directories(['include/'])
-
-add_project_arguments('-DHAVE_CONFIG_H', language : 'c')
-add_project_arguments('-DCARES_BUILDING_LIBRARY', language : 'c')
-
-subdir('include')
-
-# Internal configuration in src/lib
-ares_internal_conf_data = configuration_data()
-
-ares_internal_conf_data.set('CARES_SYMBOL_HIDING', true)
-ares_internal_conf_data.set('CARES_USE_LIBRESOLV', false)
-ares_internal_conf_data.set('HAVE_LIBRESOLV', false)
-
-# Header checks
-
-HAVE_SYS_TYPES_H = c_compiler.has_header('sys/types.h')
-HAVE_SYS_RANDOM_H = c_compiler.has_header('sys/random.h')
-HAVE_SYS_SOCKET_H = c_compiler.has_header('sys/socket.h')
-HAVE_SYS_SOCKIO_H = c_compiler.has_header('sys/sockio.h')
-HAVE_ARPA_INET_H = c_compiler.has_header('arpa/inet.h')
-HAVE_ARPA_NAMESER_COMPAT_H = c_compiler.has_header('arpa/nameser_compat.h')
-HAVE_ARPA_NAMESER_H = c_compiler.has_header('arpa/nameser.h')
-HAVE_ASSERT_H = c_compiler.has_header('assert.h')
-HAVE_ERRNO_H = c_compiler.has_header('errno.h')
-HAVE_FCNTL_H = c_compiler.has_header('fcntl.h')
-HAVE_INTTYPES_H = c_compiler.has_header('inttypes.h')
-HAVE_LIMITS_H = c_compiler.has_header('limits.h')
-HAVE_MALLOC_H = c_compiler.has_header('malloc.h')
-HAVE_MEMORY_H = c_compiler.has_header('memory.h')
-HAVE_NETDB_H = c_compiler.has_header('netdb.h')
-HAVE_NETINET_IN_H = c_compiler.has_header('netinet/in.h')
-HAVE_NET_IF_H = c_compiler.has_header('net/if.h')
-HAVE_SIGNAL_H = c_compiler.has_header('signal.h')
-HAVE_SOCKET_H = c_compiler.has_header('socket.h')
-HAVE_STDBOOL_H = c_compiler.has_header('stdbool.h')
-HAVE_STDINT_H = c_compiler.has_header('stdint.h')
-HAVE_STDLIB_H = c_compiler.has_header('stdlib.h')
-HAVE_STRINGS_H = c_compiler.has_header('strings.h')
-HAVE_STRING_H = c_compiler.has_header('string.h')
-HAVE_STROPTS_H = c_compiler.has_header('stropts.h')
-HAVE_SYS_IOCTL_H = c_compiler.has_header('sys/ioctl.h')
-HAVE_SYS_PARAM_H = c_compiler.has_header('sys/param.h')
-HAVE_SYS_SELECT_H = c_compiler.has_header('sys/select.h')
-HAVE_SYS_STAT_H = c_compiler.has_header('sys/stat.h')
-HAVE_SYS_TIME_H = c_compiler.has_header('sys/time.h')
-HAVE_SYS_UIO_H = c_compiler.has_header('sys/uio.h')
-HAVE_SYS_RANDOM_H = c_compiler.has_header('sys/random.h')
-HAVE_IFADDRS_H = c_compiler.has_header('ifaddrs.h')
-HAVE_TIME_H = c_compiler.has_header('time.h')
-HAVE_DLFCN_H = c_compiler.has_header('dlfcn.h')
-HAVE_UNISTD_H = c_compiler.has_header('unistd.h')
-HAVE_NETINET_TCP_H = c_compiler.has_header('netinet/tcp.h')
-
-
-
-ares_internal_conf_data.set('HAVE_SYS_TYPES_H', HAVE_SYS_TYPES_H)
-ares_internal_conf_data.set('HAVE_SYS_RANDOM_H', HAVE_SYS_RANDOM_H)
-ares_internal_conf_data.set('HAVE_SYS_SOCKET_H', HAVE_SYS_SOCKET_H)
-ares_internal_conf_data.set('HAVE_SYS_SOCKIO_H', HAVE_SYS_SOCKIO_H)
-ares_internal_conf_data.set('HAVE_ARPA_INET_H', HAVE_ARPA_INET_H)
-ares_internal_conf_data.set('HAVE_ARPA_NAMESER_COMPAT_H', HAVE_ARPA_NAMESER_COMPAT_H)
-ares_internal_conf_data.set('HAVE_ARPA_NAMESER_H', HAVE_ARPA_NAMESER_H)
-ares_internal_conf_data.set('HAVE_ASSERT_H', HAVE_ASSERT_H)
-ares_internal_conf_data.set('HAVE_ERRNO_H', HAVE_ERRNO_H)
-ares_internal_conf_data.set('HAVE_FCNTL_H', HAVE_FCNTL_H)
-ares_internal_conf_data.set('HAVE_INTTYPES_H', HAVE_INTTYPES_H)
-ares_internal_conf_data.set('HAVE_LIMITS_H', HAVE_LIMITS_H)
-ares_internal_conf_data.set('HAVE_MALLOC_H', HAVE_MALLOC_H)
-ares_internal_conf_data.set('HAVE_MEMORY_H', HAVE_MEMORY_H)
-ares_internal_conf_data.set('HAVE_NETDB_H', HAVE_NETDB_H)
-ares_internal_conf_data.set('HAVE_NETINET_IN_H', HAVE_NETINET_IN_H)
-ares_internal_conf_data.set('HAVE_NET_IF_H', HAVE_NET_IF_H)
-ares_internal_conf_data.set('HAVE_SIGNAL_H', HAVE_SIGNAL_H)
-ares_internal_conf_data.set('HAVE_SOCKET_H', HAVE_SOCKET_H)
-ares_internal_conf_data.set('HAVE_STDBOOL_H', HAVE_STDBOOL_H)
-ares_internal_conf_data.set('HAVE_STDINT_H', HAVE_STDINT_H)
-ares_internal_conf_data.set('HAVE_STDLIB_H', HAVE_STDLIB_H)
-ares_internal_conf_data.set('HAVE_STRINGS_H', HAVE_STRINGS_H)
-ares_internal_conf_data.set('HAVE_STRING_H', HAVE_STRING_H)
-ares_internal_conf_data.set('HAVE_STROPTS_H', HAVE_STROPTS_H)
-ares_internal_conf_data.set('HAVE_SYS_IOCTL_H', HAVE_SYS_IOCTL_H)
-ares_internal_conf_data.set('HAVE_SYS_PARAM_H', HAVE_SYS_PARAM_H)
-ares_internal_conf_data.set('HAVE_SYS_SELECT_H', HAVE_SYS_SELECT_H)
-ares_internal_conf_data.set('HAVE_SYS_STAT_H', HAVE_SYS_STAT_H)
-ares_internal_conf_data.set('HAVE_SYS_TIME_H', HAVE_SYS_TIME_H)
-ares_internal_conf_data.set('HAVE_SYS_UIO_H', HAVE_SYS_UIO_H)
-ares_internal_conf_data.set('HAVE_SYS_RANDOM_H', HAVE_SYS_RANDOM_H)
-ares_internal_conf_data.set('HAVE_IFADDRS_H', HAVE_IFADDRS_H)
-ares_internal_conf_data.set('HAVE_TIME_H', HAVE_TIME_H)
-ares_internal_conf_data.set('HAVE_DLFCN_H', HAVE_DLFCN_H)
-ares_internal_conf_data.set('HAVE_UNISTD_H', HAVE_UNISTD_H)
-ares_internal_conf_data.set('HAVE_NETINET_TCP_H', HAVE_NETINET_IN_H)
-
-# Extra includes for further configuration checks
-extra_include = []
-
-if HAVE_STDBOOL_H
- extra_include += '#include <stdbool.h>'
-endif
-
-if HAVE_SYS_TYPES_H
- extra_include += '#include <sys/types.h>'
-endif
-
-if HAVE_ARPA_INET_H
- extra_include += '#include <arpa/inet.h>'
-endif
-
-if HAVE_ARPA_NAMESER_H
- extra_include += '#include <arpa/nameser.h>'
-endif
-
-if HAVE_NETDB_H
- extra_include += '#include <netdb.h>'
-endif
-
-if HAVE_NET_IF_H
- extra_include += '#include <net/if.h>'
-endif
-
-if HAVE_IFADDRS_H
- extra_include += '#include <ifaddrs.h>'
-endif
-
-if HAVE_NETINET_IN_H
- extra_include += '#include <netinet/in.h>'
-endif
-
-if HAVE_NETINET_TCP_H
- extra_include += '#include <netinet/tcp.h>'
-endif
-
-if HAVE_SIGNAL_H
- extra_include += '#include <signal.h>'
-endif
-
-if HAVE_STDLIB_H
- extra_include += '#include <stdlib.h>'
-endif
-
-if HAVE_STRING_H
- extra_include += '#include <string.h>'
-endif
-
-if HAVE_STRINGS_H
- extra_include += '#include <strings.h>'
-endif
-
-if HAVE_SYS_IOCTL_H
- extra_include += '#include <sys/ioctl.h>'
-endif
-
-if HAVE_SYS_RANDOM_H
- extra_include += '#include <sys/random.h>'
-endif
-
-if HAVE_SYS_SELECT_H
- extra_include += '#include <sys/select.h>'
-endif
-
-if HAVE_SYS_SOCKET_H
- extra_include += '#include <sys/socket.h>'
-endif
-
-if HAVE_SYS_SOCKIO_H
- extra_include += '#include <sys/sockio.h>'
-endif
-
-if HAVE_SYS_TIME_H
- extra_include += '#include <sys/time.h>'
-endif
-
-if HAVE_SYS_STAT_H
- extra_include += '#include <sys/stat.h>'
-endif
-
-if HAVE_SYS_UIO_H
- extra_include += '#include <sys/uio.h>'
-endif
-
-if HAVE_SYS_RANDOM_H
- extra_include += '#include <sys/random.h>'
-endif
-
-if HAVE_TIME_H
- extra_include += '#include <time.h>'
-endif
-
-if HAVE_FCNTL_H
- extra_include += '#include <fcntl.h>'
-endif
-
-if HAVE_UNISTD_H
- extra_include += '#include <unistd.h>'
-endif
-
-HAVE_SOCKLEN_T = c_compiler.has_type('socklen_t', prefix : extra_include)
-HAVE_TYPE_SOCKET = c_compiler.has_type('SOCKET', prefix : extra_include)
-HAVE_SSIZE_T = c_compiler.has_type('ssize_t', prefix : extra_include)
-HAVE_LONGLONG = c_compiler.has_type('long long', prefix : extra_include)
-HAVE_STRUCT_ADDRINFO = c_compiler.has_type('struct addrinfo', prefix : extra_include)
-HAVE_STRUCT_IN6_ADDR = c_compiler.has_type('struct in6_addr', prefix : extra_include)
-HAVE_STRUCT_SOCKADDR_IN6 = c_compiler.has_type('struct sockaddr_in6', prefix : extra_include)
-HAVE_STRUCT_SOCKADDR_STORAGE = c_compiler.has_type('struct sockaddr_storage', prefix : extra_include)
-HAVE_STRUCT_TIMEVAL = c_compiler.has_type('struct timeval', prefix : extra_include)
-
-ares_internal_conf_data.set('HAVE_SOCKLEN_T', HAVE_SOCKLEN_T)
-ares_internal_conf_data.set('HAVE_TYPE_SOCKET', HAVE_TYPE_SOCKET)
-ares_internal_conf_data.set('HAVE_SSIZE_T', HAVE_SSIZE_T)
-ares_internal_conf_data.set('HAVE_LONGLONG', HAVE_LONGLONG)
-ares_internal_conf_data.set('HAVE_STRUCT_ADDRINFO', HAVE_STRUCT_ADDRINFO)
-ares_internal_conf_data.set('HAVE_STRUCT_IN6_ADDR', HAVE_STRUCT_IN6_ADDR)
-ares_internal_conf_data.set('HAVE_STRUCT_SOCKADDR_IN6', HAVE_STRUCT_SOCKADDR_IN6)
-ares_internal_conf_data.set('HAVE_STRUCT_SOCKADDR_STORAGE', HAVE_STRUCT_SOCKADDR_STORAGE)
-ares_internal_conf_data.set('HAVE_STRUCT_TIMEVAL', HAVE_STRUCT_TIMEVAL)
-
-# Check for preprocessor defines
-HAVE_AF_INET6 = c_compiler.get_define('AF_INET6', prefix : extra_include) != ''
-HAVE_O_NONBLOCK = c_compiler.get_define('O_NONBLOCK', prefix : extra_include) != ''
-HAVE_FIONBIO = c_compiler.get_define('FIONBIO', prefix : extra_include) != ''
-HAVE_IOCTL_SIOCGIFADDR = c_compiler.get_define('SIOCGIFADDR', prefix : extra_include) != ''
-HAVE_MSG_NOSIGNAL = c_compiler.get_define('MSG_NOSIGNAL', prefix : extra_include) != ''
-HAVE_PF_INET6 = c_compiler.get_define('PF_INET6', prefix : extra_include) != ''
-HAVE_SO_NONBLOCK = c_compiler.get_define('SO_NONBLOCK', prefix : extra_include) != ''
-
-ares_internal_conf_data.set('HAVE_AF_INET6', HAVE_AF_INET6)
-ares_internal_conf_data.set('HAVE_O_NONBLOCK', HAVE_O_NONBLOCK)
-ares_internal_conf_data.set('HAVE_FIONBIO', HAVE_FIONBIO)
-ares_internal_conf_data.set('HAVE_IOCTL_SIOCGIFADDR', HAVE_IOCTL_SIOCGIFADDR)
-ares_internal_conf_data.set('HAVE_MSG_NOSIGNAL', HAVE_MSG_NOSIGNAL)
-ares_internal_conf_data.set('HAVE_PF_INET6', HAVE_PF_INET6)
-ares_internal_conf_data.set('HAVE_SO_NONBLOCK', HAVE_SO_NONBLOCK)
-
-# Type signatures for recv/send/...
-
-RECVFROM_TYPE_RETV = 'ssize_t'
-RECVFROM_TYPE_ARG3 = 'size_t'
-RECVFROM_TYPE_ARG1 = 'int'
-RECV_TYPE_ARG2 = 'void *'
-
-ares_internal_conf_data.set('RECVFROM_TYPE_RETV', RECVFROM_TYPE_RETV)
-ares_internal_conf_data.set('RECVFROM_TYPE_ARG3', RECVFROM_TYPE_ARG3)
-ares_internal_conf_data.set('RECVFROM_TYPE_ARG1', RECVFROM_TYPE_ARG1)
-ares_internal_conf_data.set('RECV_TYPE_ARG2', RECV_TYPE_ARG2)
-
-
-ares_internal_conf_data.set('RECV_TYPE_RETV', RECVFROM_TYPE_RETV)
-ares_internal_conf_data.set('SEND_TYPE_RETV', RECVFROM_TYPE_RETV)
-ares_internal_conf_data.set('RECV_TYPE_ARG1', RECVFROM_TYPE_ARG1)
-ares_internal_conf_data.set('RECVFROM_TYPE_ARG2', RECV_TYPE_ARG2)
-ares_internal_conf_data.set('SEND_TYPE_ARG1', RECVFROM_TYPE_ARG1)
-ares_internal_conf_data.set('RECV_TYPE_ARG3', RECVFROM_TYPE_ARG3)
-ares_internal_conf_data.set('SEND_TYPE_ARG3', RECVFROM_TYPE_ARG3)
-ares_internal_conf_data.set('GETHOSTNAME_TYPE_ARG2', RECVFROM_TYPE_ARG3)
-
-# These should always be "sane" values to use always
-ares_internal_conf_data.set('RECVFROM_QUAL_ARG5', '')
-ares_internal_conf_data.set('RECVFROM_QUAL_ARG4', 'int')
-ares_internal_conf_data.set('RECVFROM_QUAL_ARG5', 'struct sockaddr *')
-ares_internal_conf_data.set('RECVFROM_QUAL_ARG5', 'struct sockaddr *')
-ares_internal_conf_data.set('RECV_TYPE_ARG4', 'int')
-ares_internal_conf_data.set('GETNAMEINFO_TYPE_ARG1', 'struct sockaddr *')
-ares_internal_conf_data.set('GETNAMEINFO_TYPE_ARG7', 'int')
-ares_internal_conf_data.set('SEND_TYPE_ARG2', 'void *')
-ares_internal_conf_data.set('SEND_TYPE_ARG4', 'int')
-ares_internal_conf_data.set('SEND_QUAL_ARG2', 'const')
-
-
-HAVE_CLOSESOCKET = c_compiler.has_function('closesocket', prefix : extra_include)
-HAVE_CONNECT = c_compiler.has_function('connect', prefix : extra_include)
-HAVE_FCNTL = c_compiler.has_function('fcntl', prefix : extra_include)
-HAVE_FREEADDRINFO = c_compiler.has_function('freeaddrinfo', prefix : extra_include)
-HAVE_GETADDRINFO = c_compiler.has_function('getaddrinfo', prefix : extra_include)
-HAVE_GETENV = c_compiler.has_function('getenv', prefix : extra_include)
-HAVE_GETHOSTNAME = c_compiler.has_function('gethostbyname', prefix : extra_include)
-HAVE_GETNAMEINFO = c_compiler.has_function('getnameinfo', prefix : extra_include)
-HAVE_GETRANDOM = c_compiler.has_function('getrandom', prefix : extra_include)
-HAVE_GETSERVBYPORT_R = c_compiler.has_function('getservbyport_r', prefix : extra_include)
-HAVE_GETSERVBYNAME_R = c_compiler.has_function('getservbyname_r', prefix : extra_include)
-HAVE_GETTIMEOFDAY = c_compiler.has_function('gettimeofday', prefix : extra_include)
-HAVE_IF_INDEXTONAME = c_compiler.has_function('if_indextoname', prefix : extra_include)
-HAVE_IF_NAMETOINDEX = c_compiler.has_function('if_nametoindex', prefix : extra_include)
-HAVE_INET_NET_PTON = c_compiler.has_function('inet_net_pton', prefix : extra_include)
-HAVE_INET_NTOP = c_compiler.has_function('inet_ntop', prefix : extra_include)
-HAVE_INET_PTON = c_compiler.has_function('inet_pton', prefix : extra_include)
-HAVE_IOCTL = c_compiler.has_function('ioctl', prefix : extra_include)
-HAVE_IOCTLSOCKET = c_compiler.has_function('ioctlsocket', prefix : extra_include)
-HAVE_RECV = c_compiler.has_function('recv', prefix : extra_include)
-HAVE_RECVFROM = c_compiler.has_function('recvfrom', prefix : extra_include)
-HAVE_SEND = c_compiler.has_function('send', prefix : extra_include)
-HAVE_SETSOCKOPT = c_compiler.has_function('setsockopt', prefix : extra_include)
-HAVE_SOCKET = c_compiler.has_function('socket', prefix : extra_include)
-HAVE_STRCASECMP = c_compiler.has_function('strcasecmp', prefix : extra_include)
-HAVE_STRCMPI = c_compiler.has_function('strcmpi', prefix : extra_include)
-HAVE_STRDUP = c_compiler.has_function('strdup', prefix : extra_include)
-HAVE_STRICMP = c_compiler.has_function('stricmp', prefix : extra_include)
-HAVE_STRNCASECMP = c_compiler.has_function('strncasecmp', prefix : extra_include)
-HAVE_STRNCMPI = c_compiler.has_function('strncmpi', prefix : extra_include)
-HAVE_STRNICMP = c_compiler.has_function('strnicmp', prefix : extra_include)
-HAVE_WRITEV = c_compiler.has_function('writev', prefix : extra_include)
-HAVE_ARC4RANDOM_BUF = c_compiler.has_function('arc4random_buf', prefix : extra_include)
-HAVE_STAT = c_compiler.has_function('stat', prefix : extra_include)
-HAVE_GETIFADDRS = c_compiler.has_function('getifaddrs', prefix : extra_include)
-
-ares_internal_conf_data.set('HAVE_CLOSESOCKET', HAVE_CLOSESOCKET)
-ares_internal_conf_data.set('HAVE_CONNECT', HAVE_CLOSESOCKET)
-ares_internal_conf_data.set('HAVE_FCNTL', HAVE_FCNTL)
-ares_internal_conf_data.set('HAVE_FREEADDRINFO', HAVE_FREEADDRINFO)
-ares_internal_conf_data.set('HAVE_GETADDRINFO', HAVE_GETADDRINFO)
-ares_internal_conf_data.set('HAVE_GETENV', HAVE_GETENV)
-ares_internal_conf_data.set('HAVE_GETHOSTNAME', HAVE_GETHOSTNAME)
-ares_internal_conf_data.set('HAVE_GETNAMEINFO', HAVE_GETNAMEINFO)
-ares_internal_conf_data.set('HAVE_GETRANDOM', HAVE_GETRANDOM)
-ares_internal_conf_data.set('HAVE_GETSERVBYPORT_R', HAVE_GETSERVBYPORT_R)
-ares_internal_conf_data.set('HAVE_GETSERVBYNAME_R', HAVE_GETSERVBYNAME_R)
-ares_internal_conf_data.set('HAVE_GETTIMEOFDAY', HAVE_GETTIMEOFDAY)
-ares_internal_conf_data.set('HAVE_IF_INDEXTONAME', HAVE_IF_INDEXTONAME)
-ares_internal_conf_data.set('HAVE_IF_NAMETOINDEX', HAVE_IF_NAMETOINDEX)
-ares_internal_conf_data.set('HAVE_INET_NET_PTON', HAVE_INET_PTON)
-ares_internal_conf_data.set('HAVE_INET_NTOP', HAVE_INET_NTOP)
-ares_internal_conf_data.set('HAVE_INET_PTON', HAVE_INET_PTON)
-ares_internal_conf_data.set('HAVE_IOCTL', HAVE_IOCTL)
-ares_internal_conf_data.set('HAVE_IOCTLSOCKET', HAVE_IOCTLSOCKET)
-ares_internal_conf_data.set('HAVE_RECV', HAVE_RECV)
-ares_internal_conf_data.set('HAVE_RECVFROM', HAVE_RECVFROM)
-ares_internal_conf_data.set('HAVE_SEND', HAVE_SEND)
-ares_internal_conf_data.set('HAVE_SETSOCKOPT', HAVE_SETSOCKOPT)
-ares_internal_conf_data.set('HAVE_SOCKET', HAVE_SOCKET)
-ares_internal_conf_data.set('HAVE_STRCASECMP', HAVE_STRCASECMP)
-ares_internal_conf_data.set('HAVE_STRCMPI', HAVE_STRCMPI)
-ares_internal_conf_data.set('HAVE_STRDUP', HAVE_STRDUP)
-ares_internal_conf_data.set('HAVE_STRICMP', HAVE_STRICMP)
-ares_internal_conf_data.set('HAVE_STRNCASECMP', HAVE_STRNCASECMP)
-ares_internal_conf_data.set('HAVE_STRNCMPI', HAVE_STRNCMPI)
-ares_internal_conf_data.set('HAVE_STRNICMP', HAVE_STRNICMP)
-ares_internal_conf_data.set('HAVE_WRITEV', HAVE_WRITEV)
-ares_internal_conf_data.set('HAVE_ARC4RANDOM_BUF', HAVE_ARC4RANDOM_BUF)
-ares_internal_conf_data.set('HAVE_STAT', HAVE_STAT)
-ares_internal_conf_data.set('HAVE_GETIFADDRS', HAVE_GETIFADDRS)
-
-
-# Only works on Linux
-ares_internal_conf_data.set('GETSERVBYPORT_R_ARGS', 6)
-ares_internal_conf_data.set('GETSERVBYNAME_R_ARGS', 6)
-
-# Derived values
-HAVE_FCNTL_O_NONBLOCK = HAVE_FCNTL and HAVE_O_NONBLOCK
-HAVE_IOCTL_FIONBIO = HAVE_IOCTL and HAVE_FIONBIO
-HAVE_IOCTLSOCKET_FIONBIO = HAVE_IOCTLSOCKET and HAVE_FIONBIO
-
-ares_internal_conf_data.set('HAVE_FCNTL_O_NONBLOCK', HAVE_FCNTL_O_NONBLOCK)
-ares_internal_conf_data.set('HAVE_IOCTL_FIONBIO', HAVE_IOCTL_FIONBIO)
-ares_internal_conf_data.set('HAVE_IOCTLSOCKET_FIONBIO', HAVE_IOCTLSOCKET_FIONBIO)
-
-
-cares_threads = true
-
-if cares_threads
- ares_internal_conf_data.set('CARES_THREADS', true)
- ares_internal_conf_data.set('HAVE_PTHREAD_H', c_compiler.has_header('pthread.h'))
- ares_internal_conf_data.set('HAVE_PTHREAD_NP_H', c_compiler.has_header('pthread_np.h'))
- # FIXME: check?
- ares_internal_conf_data.set('HAVE_PTHREAD_INIT', true)
-endif
-
-
-# FIXME: check
-ares_internal_conf_data.set('RECVFROM_TYPE_RETV', 'ssize_t')
-ares_internal_conf_data.set('RECVFROM_TYPE_ARG3', 'size_t')
-
-
-# FIXME: check for symbol presence
-ares_internal_conf_data.set('HAVE_AF_INET6', true)
-
-
-configure_file(output : 'ares_config.h',
- configuration : ares_internal_conf_data)
-
-
-lib_c_src = [
- 'src/lib/ares__addrinfo2hostent.c',
- 'src/lib/ares__addrinfo_localhost.c',
- 'src/lib/ares_android.c',
- 'src/lib/ares_android.h',
- 'src/lib/ares__buf.c',
- 'src/lib/ares__buf.h',
- 'src/lib/ares_cancel.c',
- 'src/lib/ares__close_sockets.c',
- 'src/lib/ares_create_query.c',
- 'src/lib/ares_data.c',
- 'src/lib/ares_data.h',
- 'src/lib/ares_destroy.c',
- 'src/lib/ares_dns_mapping.c',
- 'src/lib/ares_dns_name.c',
- 'src/lib/ares_dns_parse.c',
- 'src/lib/ares_dns_private.h',
- 'src/lib/ares_dns_record.c',
- 'src/lib/ares_dns_write.c',
- 'src/lib/ares_expand_name.c',
- 'src/lib/ares_expand_string.c',
- 'src/lib/ares_fds.c',
- 'src/lib/ares_freeaddrinfo.c',
- 'src/lib/ares_free_hostent.c',
- 'src/lib/ares_free_string.c',
- 'src/lib/ares_getaddrinfo.c',
- 'src/lib/ares_getenv.c',
- 'src/lib/ares_getenv.h',
- 'src/lib/ares_gethostbyaddr.c',
- 'src/lib/ares_gethostbyname.c',
- 'src/lib/ares_getnameinfo.c',
- 'src/lib/ares_getsock.c',
- 'src/lib/ares__hosts_file.c',
- 'src/lib/ares__htable_asvp.c',
- 'src/lib/ares__htable_asvp.h',
- 'src/lib/ares__htable.c',
- 'src/lib/ares__htable.h',
- 'src/lib/ares__htable_strvp.c',
- 'src/lib/ares__htable_strvp.h',
- 'src/lib/ares__htable_szvp.c',
- 'src/lib/ares__htable_szvp.h',
- 'src/lib/ares__iface_ips.c',
- 'src/lib/ares__iface_ips.h',
- 'src/lib/ares_inet_net_pton.h',
- 'src/lib/ares_init.c',
- 'src/lib/ares_ipv6.h',
- 'src/lib/ares_library_init.c',
- 'src/lib/ares__llist.c',
- 'src/lib/ares__llist.h',
- 'src/lib/ares_math.c',
- 'src/lib/ares_mkquery.c',
- 'src/lib/ares_options.c',
- 'src/lib/ares_parse_aaaa_reply.c',
- 'src/lib/ares_parse_a_reply.c',
- 'src/lib/ares_parse_caa_reply.c',
- 'src/lib/ares__parse_into_addrinfo.c',
- 'src/lib/ares_parse_mx_reply.c',
- 'src/lib/ares_parse_naptr_reply.c',
- 'src/lib/ares_parse_ns_reply.c',
- 'src/lib/ares_parse_ptr_reply.c',
- 'src/lib/ares_parse_soa_reply.c',
- 'src/lib/ares_parse_srv_reply.c',
- 'src/lib/ares_parse_txt_reply.c',
- 'src/lib/ares_parse_uri_reply.c',
- 'src/lib/ares_platform.c',
- 'src/lib/ares_platform.h',
- 'src/lib/ares_private.h',
- 'src/lib/ares_process.c',
- 'src/lib/ares_qcache.c',
- 'src/lib/ares_query.c',
- 'src/lib/ares_rand.c',
- 'src/lib/ares__read_line.c',
- 'src/lib/ares_search.c',
- 'src/lib/ares_send.c',
- 'src/lib/ares_setup.h',
- 'src/lib/ares__slist.c',
- 'src/lib/ares__slist.h',
- 'src/lib/ares__socket.c',
- 'src/lib/ares__sortaddrinfo.c',
- 'src/lib/ares_str.c',
- 'src/lib/ares_strcasecmp.c',
- 'src/lib/ares_strcasecmp.h',
- 'src/lib/ares_strerror.c',
- 'src/lib/ares_str.h',
- 'src/lib/ares_strsplit.c',
- 'src/lib/ares_strsplit.h',
- 'src/lib/ares_sysconfig.c',
- 'src/lib/ares_sysconfig_files.c',
- 'src/lib/ares__threads.c',
- 'src/lib/ares_timeout.c',
- 'src/lib/ares__timeval.c',
- 'src/lib/ares_update_servers.c',
- 'src/lib/ares_version.c',
- 'src/lib/config-dos.h',
- 'src/lib/config-win32.h',
- 'src/lib/inet_net_pton.c',
- 'src/lib/inet_ntop.c',
- 'src/lib/setup_once.h',
-]
-
-libcares = static_library('libcares', [lib_c_src],
- include_directories : ['include'],
- dependencies : [])
-
-
-cares_dep = declare_dependency(
- include_directories : ['include/'],
- link_with : [libcares],
-)
diff --git a/subprojects/curl/meson.build b/subprojects/curl/meson.build
@@ -320,8 +320,10 @@ mbedcrypto_dep = mbedtls_proj.get_variable('mbedcrypto_dep')
mbedtls_dep = mbedtls_proj.get_variable('mbedtls_dep')
mbedx509_dep = mbedtls_proj.get_variable('mbedx509_dep')
-cares_proj = subproject('c-ares', required : true)
-cares_dep = cares_proj.get_variable('cares_dep')
+cmake = import('cmake')
+
+cares_proj = cmake.subproject('c-ares', required : true)
+cares_dep = cares_proj.dependency('c-ares')
libcurl = static_library('curl', [lib_c_src, lib_curlx_src, lib_vtls_src, lib_vauth_src, lib_vquic_src, lib_vssh_src],
include_directories : ['include', 'lib'],
diff --git a/subprojects/libsodium b/subprojects/libsodium
@@ -0,0 +1 @@
+Subproject commit 260622e5b69bce9b955603a98e46354125a932a4
diff --git a/subprojects/mbedtls/meson.build b/subprojects/mbedtls/meson.build
@@ -1,147 +0,0 @@
-project('mbedtls', 'c')
-
-if meson.is_subproject()
- message('mbedtls is subproject')
-else
- message('mbedtls is NOT subproject')
-endif
-
-src_crypto = [
- 'library/aes.c',
- 'library/aesni.c',
- 'library/aesce.c',
- 'library/aria.c',
- 'library/asn1parse.c',
- 'library/asn1write.c',
- 'library/base64.c',
- 'library/bignum.c',
- 'library/bignum_core.c',
- 'library/bignum_mod.c',
- 'library/bignum_mod_raw.c',
- 'library/block_cipher.c',
- 'library/camellia.c',
- 'library/ccm.c',
- 'library/chacha20.c',
- 'library/chachapoly.c',
- 'library/cipher.c',
- 'library/cipher_wrap.c',
- 'library/constant_time.c',
- 'library/cmac.c',
- 'library/ctr_drbg.c',
- 'library/des.c',
- 'library/dhm.c',
- 'library/ecdh.c',
- 'library/ecdsa.c',
- 'library/ecjpake.c',
- 'library/ecp.c',
- 'library/ecp_curves.c',
- 'library/ecp_curves_new.c',
- 'library/entropy.c',
- 'library/entropy_poll.c',
- 'library/error.c',
- 'library/gcm.c',
- 'library/hkdf.c',
- 'library/hmac_drbg.c',
- 'library/lmots.c',
- 'library/lms.c',
- 'library/md.c',
- 'library/md5.c',
- 'library/memory_buffer_alloc.c',
- 'library/nist_kw.c',
- 'library/oid.c',
- 'library/padlock.c',
- 'library/pem.c',
- 'library/pk.c',
- 'library/pk_ecc.c',
- 'library/pk_wrap.c',
- 'library/pkcs12.c',
- 'library/pkcs5.c',
- 'library/pkparse.c',
- 'library/pkwrite.c',
- 'library/platform.c',
- 'library/platform_util.c',
- 'library/poly1305.c',
- 'library/psa_crypto.c',
- 'library/psa_crypto_aead.c',
- 'library/psa_crypto_cipher.c',
- 'library/psa_crypto_client.c',
- 'library/psa_crypto_driver_wrappers_no_static.c',
- 'library/psa_crypto_ecp.c',
- 'library/psa_crypto_ffdh.c',
- 'library/psa_crypto_hash.c',
- 'library/psa_crypto_mac.c',
- 'library/psa_crypto_pake.c',
- 'library/psa_crypto_rsa.c',
- 'library/psa_crypto_se.c',
- 'library/psa_crypto_slot_management.c',
- 'library/psa_crypto_storage.c',
- 'library/psa_its_file.c',
- 'library/psa_util.c',
- 'library/ripemd160.c',
- 'library/rsa.c',
- 'library/rsa_alt_helpers.c',
- 'library/sha1.c',
- 'library/sha256.c',
- 'library/sha512.c',
- 'library/sha3.c',
- 'library/threading.c',
- 'library/timing.c',
- 'library/version.c',
- 'library/version_features.c',
-]
-
-src_x509 = [
- 'library/pkcs7.c',
- 'library/x509.c',
- 'library/x509_create.c',
- 'library/x509_crl.c',
- 'library/x509_crt.c',
- 'library/x509_csr.c',
- 'library/x509write.c',
- 'library/x509write_crt.c',
- 'library/x509write_csr.c',
-]
-
-src_tls = [
- 'library/debug.c',
- 'library/mps_reader.c',
- 'library/mps_trace.c',
- 'library/net_sockets.c',
- 'library/ssl_cache.c',
- 'library/ssl_ciphersuites.c',
- 'library/ssl_client.c',
- 'library/ssl_cookie.c',
- 'library/ssl_debug_helpers_generated.c',
- 'library/ssl_msg.c',
- 'library/ssl_ticket.c',
- 'library/ssl_tls.c',
- 'library/ssl_tls12_client.c',
- 'library/ssl_tls12_server.c',
- 'library/ssl_tls13_keys.c',
- 'library/ssl_tls13_server.c',
- 'library/ssl_tls13_client.c',
- 'library/ssl_tls13_generic.c',
-]
-
-mbedcrypto = static_library('mbedcrypto', src_crypto,
- include_directories : ['include'])
-
-mbedtls = static_library('mbedtls', src_tls,
- include_directories : ['include'])
-
-mbedx509 = static_library('mbedx509', src_x509,
- include_directories : ['include'])
-
-
-mbedcrypto_dep = declare_dependency(
- include_directories : ['include'],
- link_with : [mbedcrypto],
-)
-mbedtls_dep = declare_dependency(
- include_directories : ['include'],
- link_with : [mbedtls],
-)
-mbedx509_dep = declare_dependency(
- include_directories : ['include'],
- link_with : [mbedx509],
-)