quickjs-tart

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

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:
A.gitmodules | 3+++
Mcross/build-android.sh | 7+++++++
Mmeson.build | 20+++++++++-----------
Dsubprojects/c-ares/include/ares_build.h.mesonin | 52----------------------------------------------------
Dsubprojects/c-ares/include/meson.build | 14--------------
Dsubprojects/c-ares/meson.build | 493-------------------------------------------------------------------------------
Msubprojects/curl/meson.build | 6++++--
Asubprojects/libsodium | 1+
Dsubprojects/mbedtls/meson.build | 147-------------------------------------------------------------------------------
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], -)