cares.BUILD 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
  2. config_setting(
  3. name = "darwin",
  4. values = {"cpu": "darwin"},
  5. )
  6. config_setting(
  7. name = "darwin_x86_64",
  8. values = {"cpu": "darwin_x86_64"},
  9. )
  10. config_setting(
  11. name = "darwin_arm64",
  12. values = {"cpu": "darwin_arm64"},
  13. )
  14. config_setting(
  15. name = "darwin_arm64e",
  16. values = {"cpu": "darwin_arm64e"},
  17. )
  18. config_setting(
  19. name = "windows",
  20. values = {"cpu": "x64_windows"},
  21. )
  22. # Android is not officially supported through C++.
  23. # This just helps with the build for now.
  24. config_setting(
  25. name = "android",
  26. values = {
  27. "crosstool_top": "//external:android/crosstool",
  28. },
  29. )
  30. # iOS is not officially supported through C++.
  31. # This just helps with the build for now.
  32. config_setting(
  33. name = "ios_x86_64",
  34. values = {"cpu": "ios_x86_64"},
  35. )
  36. config_setting(
  37. name = "ios_armv7",
  38. values = {"cpu": "ios_armv7"},
  39. )
  40. config_setting(
  41. name = "ios_armv7s",
  42. values = {"cpu": "ios_armv7s"},
  43. )
  44. config_setting(
  45. name = "ios_arm64",
  46. values = {"cpu": "ios_arm64"},
  47. )
  48. # The following architectures are found in
  49. # https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java
  50. config_setting(
  51. name = "tvos_x86_64",
  52. values = {"cpu": "tvos_x86_64"},
  53. )
  54. config_setting(
  55. name = "tvos_arm64",
  56. values = {"cpu": "tvos_arm64"}
  57. )
  58. config_setting(
  59. name = "watchos_i386",
  60. values = {"cpu": "watchos_i386"},
  61. )
  62. config_setting(
  63. name = "watchos_x86_64",
  64. values = {"cpu": "watchos_x86_64"}
  65. )
  66. config_setting(
  67. name = "watchos_armv7k",
  68. values = {"cpu": "watchos_armv7k"},
  69. )
  70. config_setting(
  71. name = "watchos_arm64_32",
  72. values = {"cpu": "watchos_arm64_32"}
  73. )
  74. copy_file(
  75. name = "ares_build_h",
  76. src = "@com_github_grpc_grpc//third_party/cares:ares_build.h",
  77. out = "ares_build.h",
  78. )
  79. copy_file(
  80. name = "ares_config_h",
  81. src = select({
  82. ":ios_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  83. ":ios_armv7": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  84. ":ios_armv7s": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  85. ":ios_arm64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  86. ":tvos_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  87. ":tvos_arm64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  88. ":watchos_i386": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  89. ":watchos_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  90. ":watchos_armv7k": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  91. ":watchos_arm64_32": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  92. ":darwin": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  93. ":darwin_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  94. ":darwin_arm64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  95. ":darwin_arm64e": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
  96. ":windows": "@com_github_grpc_grpc//third_party/cares:config_windows/ares_config.h",
  97. ":android": "@com_github_grpc_grpc//third_party/cares:config_android/ares_config.h",
  98. "//conditions:default": "@com_github_grpc_grpc//third_party/cares:config_linux/ares_config.h",
  99. }),
  100. out = "ares_config.h",
  101. )
  102. cc_library(
  103. name = "ares",
  104. srcs = [
  105. "src/lib/ares_init.c",
  106. "src/lib/ares_expand_string.c",
  107. "src/lib/ares_strcasecmp.c",
  108. "src/lib/ares_destroy.c",
  109. "src/lib/ares_free_string.c",
  110. "src/lib/ares__timeval.c",
  111. "src/lib/ares_library_init.c",
  112. "src/lib/ares_getsock.c",
  113. "src/lib/ares_process.c",
  114. "src/lib/ares_create_query.c",
  115. "src/lib/ares_fds.c",
  116. "src/lib/ares_gethostbyname.c",
  117. "src/lib/ares_mkquery.c",
  118. "src/lib/ares_freeaddrinfo.c",
  119. "src/lib/ares_strdup.c",
  120. "src/lib/ares_timeout.c",
  121. "src/lib/ares_getnameinfo.c",
  122. "src/lib/ares_parse_soa_reply.c",
  123. "src/lib/ares_parse_naptr_reply.c",
  124. "src/lib/ares_parse_a_reply.c",
  125. "src/lib/ares_send.c",
  126. "src/lib/ares_nowarn.c",
  127. "src/lib/ares__sortaddrinfo.c",
  128. "src/lib/ares_android.c",
  129. "src/lib/ares_strerror.c",
  130. "src/lib/ares_parse_caa_reply.c",
  131. "src/lib/ares__close_sockets.c",
  132. "src/lib/ares_llist.c",
  133. "src/lib/ares_parse_aaaa_reply.c",
  134. "src/lib/ares_getaddrinfo.c",
  135. "src/lib/ares_parse_ns_reply.c",
  136. "src/lib/windows_port.c",
  137. "src/lib/bitncmp.c",
  138. "src/lib/ares_strsplit.c",
  139. "src/lib/ares_data.c",
  140. "src/lib/ares_free_hostent.c",
  141. "src/lib/ares_platform.c",
  142. "src/lib/ares_parse_txt_reply.c",
  143. "src/lib/ares__parse_into_addrinfo.c",
  144. "src/lib/ares_gethostbyaddr.c",
  145. "src/lib/ares_parse_srv_reply.c",
  146. "src/lib/ares_version.c",
  147. "src/lib/ares_getenv.c",
  148. "src/lib/ares_search.c",
  149. "src/lib/ares_parse_mx_reply.c",
  150. "src/lib/ares__get_hostent.c",
  151. "src/lib/ares__readaddrinfo.c",
  152. "src/lib/ares_parse_ptr_reply.c",
  153. "src/lib/ares__read_line.c",
  154. "src/lib/ares_query.c",
  155. "src/lib/ares_options.c",
  156. "src/lib/inet_net_pton.c",
  157. "src/lib/ares_expand_name.c",
  158. "src/lib/inet_ntop.c",
  159. "src/lib/ares_cancel.c",
  160. "src/lib/ares_writev.c",
  161. ],
  162. hdrs = [
  163. "ares_build.h",
  164. "ares_config.h",
  165. "include/ares_version.h",
  166. "include/ares.h",
  167. "include/ares_rules.h",
  168. "include/ares_dns.h",
  169. "src/lib/ares_data.h",
  170. "src/lib/ares_strsplit.h",
  171. "src/lib/bitncmp.h",
  172. "src/lib/ares_iphlpapi.h",
  173. "src/lib/ares_inet_net_pton.h",
  174. "src/lib/ares_getenv.h",
  175. "src/lib/ares_platform.h",
  176. "src/lib/ares_writev.h",
  177. "src/lib/ares_private.h",
  178. "src/lib/ares_setup.h",
  179. "src/lib/config-win32.h",
  180. "src/lib/ares_strcasecmp.h",
  181. "src/lib/setup_once.h",
  182. "src/lib/ares_ipv6.h",
  183. "src/lib/ares_library_init.h",
  184. "src/lib/ares_nameser.h",
  185. "src/lib/ares_strdup.h",
  186. "src/lib/config-dos.h",
  187. "src/lib/ares_llist.h",
  188. "src/lib/ares_nowarn.h",
  189. "src/lib/ares_android.h",
  190. ],
  191. copts = [
  192. "-D_GNU_SOURCE",
  193. "-D_HAS_EXCEPTIONS=0",
  194. "-DHAVE_CONFIG_H",
  195. ] + select({
  196. ":windows": [
  197. "-DNOMINMAX",
  198. "-D_CRT_SECURE_NO_DEPRECATE",
  199. "-D_CRT_NONSTDC_NO_DEPRECATE",
  200. "-D_WIN32_WINNT=0x0600",
  201. ],
  202. "//conditions:default": [],
  203. }),
  204. defines = ["CARES_STATICLIB"],
  205. includes = ["include", "."],
  206. linkopts = select({
  207. ":windows": ["-defaultlib:ws2_32.lib"],
  208. "//conditions:default": [],
  209. }),
  210. linkstatic = 1,
  211. visibility = [
  212. "//visibility:public",
  213. ],
  214. alwayslink = 1,
  215. )