• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1config_setting(
2    name = "darwin",
3    values = {"cpu": "darwin"},
4)
5
6config_setting(
7    name = "windows",
8    values = {"cpu": "x64_windows"},
9)
10
11# Android is not officially supported through C++.
12# This just helps with the build for now.
13config_setting(
14    name = "android",
15    values = {
16        "crosstool_top": "//external:android/crosstool",
17    },
18)
19
20# iOS is not officially supported through C++.
21# This just helps with the build for now.
22config_setting(
23    name = "ios_x86_64",
24    values = {"cpu": "ios_x86_64"},
25)
26
27config_setting(
28    name = "ios_armv7",
29    values = {"cpu": "ios_armv7"},
30)
31
32config_setting(
33    name = "ios_armv7s",
34    values = {"cpu": "ios_armv7s"},
35)
36
37config_setting(
38    name = "ios_arm64",
39    values = {"cpu": "ios_arm64"},
40)
41
42genrule(
43    name = "ares_build_h",
44    srcs = ["@com_github_grpc_grpc//third_party/cares:ares_build.h"],
45    outs = ["ares_build.h"],
46    cmd = "cat $< > $@",
47)
48
49genrule(
50    name = "ares_config_h",
51    srcs = select({
52        ":ios_x86_64": ["@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h"],
53        ":ios_armv7": ["@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h"],
54        ":ios_armv7s": ["@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h"],
55        ":ios_arm64": ["@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h"],
56        ":darwin": ["@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h"],
57        ":windows": ["@com_github_grpc_grpc//third_party/cares:config_windows/ares_config.h"],
58        ":android": ["@com_github_grpc_grpc//third_party/cares:config_android/ares_config.h"],
59        "//conditions:default": ["@com_github_grpc_grpc//third_party/cares:config_linux/ares_config.h"],
60    }),
61    outs = ["ares_config.h"],
62    cmd = "cat $< > $@",
63)
64
65cc_library(
66    name = "ares",
67    srcs = [
68        "ares__close_sockets.c",
69        "ares__get_hostent.c",
70        "ares__read_line.c",
71        "ares__timeval.c",
72        "ares_cancel.c",
73        "ares_create_query.c",
74        "ares_data.c",
75        "ares_destroy.c",
76        "ares_expand_name.c",
77        "ares_expand_string.c",
78        "ares_fds.c",
79        "ares_free_hostent.c",
80        "ares_free_string.c",
81        "ares_getenv.c",
82        "ares_gethostbyaddr.c",
83        "ares_gethostbyname.c",
84        "ares_getnameinfo.c",
85        "ares_getopt.c",
86        "ares_getsock.c",
87        "ares_init.c",
88        "ares_library_init.c",
89        "ares_llist.c",
90        "ares_mkquery.c",
91        "ares_nowarn.c",
92        "ares_options.c",
93        "ares_parse_a_reply.c",
94        "ares_parse_aaaa_reply.c",
95        "ares_parse_mx_reply.c",
96        "ares_parse_naptr_reply.c",
97        "ares_parse_ns_reply.c",
98        "ares_parse_ptr_reply.c",
99        "ares_parse_soa_reply.c",
100        "ares_parse_srv_reply.c",
101        "ares_parse_txt_reply.c",
102        "ares_platform.c",
103        "ares_process.c",
104        "ares_query.c",
105        "ares_search.c",
106        "ares_send.c",
107        "ares_strcasecmp.c",
108        "ares_strdup.c",
109        "ares_strerror.c",
110        "ares_timeout.c",
111        "ares_version.c",
112        "ares_writev.c",
113        "bitncmp.c",
114        "inet_net_pton.c",
115        "inet_ntop.c",
116        "windows_port.c",
117    ],
118    hdrs = [
119        "ares.h",
120        "ares_build.h",
121        "ares_config.h",
122        "ares_data.h",
123        "ares_dns.h",
124        "ares_getenv.h",
125        "ares_getopt.h",
126        "ares_inet_net_pton.h",
127        "ares_iphlpapi.h",
128        "ares_ipv6.h",
129        "ares_library_init.h",
130        "ares_llist.h",
131        "ares_nowarn.h",
132        "ares_platform.h",
133        "ares_private.h",
134        "ares_rules.h",
135        "ares_setup.h",
136        "ares_strcasecmp.h",
137        "ares_strdup.h",
138        "ares_version.h",
139        "bitncmp.h",
140        "config-win32.h",
141        "nameser.h",
142        "setup_once.h",
143    ],
144    copts = [
145        "-D_GNU_SOURCE",
146        "-D_HAS_EXCEPTIONS=0",
147        "-DHAVE_CONFIG_H",
148    ] + select({
149        ":windows": [
150            "-DNOMINMAX",
151            "-D_CRT_SECURE_NO_DEPRECATE",
152            "-D_CRT_NONSTDC_NO_DEPRECATE",
153            "-D_WIN32_WINNT=0x0600",
154        ],
155        "//conditions:default": [],
156    }),
157    defines = ["CARES_STATICLIB"],
158    includes = ["."],
159    linkopts = select({
160        ":windows": ["-defaultlib:ws2_32.lib"],
161        "//conditions:default": [],
162    }),
163    linkstatic = 1,
164    visibility = [
165        "//visibility:public",
166    ],
167)
168