commit 33ae999e4f887ecbc8319923276e6c97e4475356
parent 636875e056950a5637ca94c3bbcdc86ab75cbf72
Author: Florian Dold <florian@dold.me>
Date: Thu, 18 Jan 2024 12:34:36 +0100
cares meson build WIP
Diffstat:
2 files changed, 182 insertions(+), 0 deletions(-)
diff --git a/subprojects/c-ares/include/ares_build.h.mesonin b/subprojects/c-ares/include/ares_build.h.mesonin
@@ -0,0 +1,52 @@
+#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/meson.build b/subprojects/c-ares/meson.build
@@ -0,0 +1,130 @@
+project('cares', 'c')
+
+c_compiler = meson.get_compiler('c')
+
+cares_inc = include_directories(['include/'])
+
+conf_data = configuration_data()
+
+conf_data.set('CARES_TYPEOF_ARES_SOCKLEN_T', 'socklen_t')
+conf_data.set('CARES_TYPEOF_ARES_SSIZE_T', 'ssize_t')
+
+add_project_arguments('-DHAVE_SYS_TYPES_H', language : 'c')
+add_project_arguments('-DHAVE_NETDB_H', language : 'c')
+add_project_arguments('-DHAVE_RESOLV_H', language : 'c')
+add_project_arguments('-DHAVE_ARPA_INET_H', language : 'c')
+add_project_arguments('-DHAVE_NET_IF_H', language : 'c')
+add_project_arguments('-DHAVE_SYS_SOCKET_H', language : 'c')
+
+
+add_project_arguments('-DCARES_HAVE_SYS_TYPES_H', language : 'c')
+add_project_arguments('-DCARES_HAVE_SYS_RANDOM_H', language : 'c')
+add_project_arguments('-DCARES_HAVE_SYS_SOCKET_H', language : 'c')
+
+configure_file(input : 'include/ares_build.h.in',
+ output : 'ares_build.h',
+ configuration : 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 : [])