BUILD 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. load("@rules_cc//cc:defs.bzl", "cc_proto_library")
  2. load("@rules_proto//proto:defs.bzl", "proto_library")
  3. load(":srpc.bzl", "srpc_cc_library")
  4. proto_library(
  5. name = "message_proto",
  6. srcs = [
  7. "src/message/rpc_meta.proto",
  8. "src/message/rpc_meta_brpc.proto",
  9. "src/message/rpc_meta_trpc.proto",
  10. ],
  11. strip_import_prefix = "src/message",
  12. )
  13. cc_proto_library(
  14. name = "MessageProto",
  15. deps = [":message_proto"],
  16. )
  17. proto_library(
  18. name = "module_proto",
  19. srcs = [
  20. "src/module/proto/opentelemetry_common.proto",
  21. "src/module/proto/opentelemetry_resource.proto",
  22. "src/module/proto/opentelemetry_trace.proto",
  23. "src/module/proto/opentelemetry_metrics.proto",
  24. "src/module/proto/opentelemetry_metrics_service.proto",
  25. ],
  26. strip_import_prefix = "src/module/proto",
  27. )
  28. cc_proto_library(
  29. name = "ModuleProto",
  30. deps = [":module_proto"],
  31. )
  32. cc_library(
  33. name = "srpc_hdrs",
  34. hdrs = glob(["src/include/srpc/*"]),
  35. includes = ["src/include"],
  36. visibility = ["//visibility:public"],
  37. deps = [
  38. "@workflow//:workflow_hdrs",
  39. ],
  40. )
  41. cc_library(
  42. name = "srpc",
  43. srcs = glob(["src/**/*.cc"]),
  44. hdrs = glob([
  45. "src/**/*.h",
  46. "src/**/*.inl",
  47. ]),
  48. includes = [
  49. "src",
  50. "src/compress",
  51. "src/message",
  52. "src/module",
  53. "src/thrift",
  54. "src/var",
  55. ],
  56. visibility = ["//visibility:public"],
  57. deps = [
  58. ":MessageProto",
  59. ":ModuleProto",
  60. "@lz4",
  61. "@snappy",
  62. "@workflow//:http",
  63. "@workflow//:redis",
  64. "@workflow//:upstream",
  65. ],
  66. )
  67. cc_library(
  68. name = "srpc_generator_lib",
  69. srcs = glob(
  70. [
  71. "src/generator/*.cc",
  72. ],
  73. exclude = [
  74. "src/compiler.cc",
  75. ],
  76. ),
  77. hdrs = glob([
  78. "src/generator/*.h",
  79. ]),
  80. includes = ["src/generator"],
  81. visibility = ["//visibility:public"],
  82. deps = [
  83. ":srpc",
  84. ],
  85. )
  86. cc_binary(
  87. name = "srpc_generator",
  88. srcs = ["src/generator/compiler.cc"],
  89. visibility = ["//visibility:public"],
  90. deps = [
  91. ":srpc",
  92. ":srpc_generator_lib",
  93. ],
  94. )
  95. proto_library(
  96. name = "echo_pb_proto",
  97. srcs = [
  98. "tutorial/echo_pb.proto",
  99. ],
  100. strip_import_prefix = "tutorial",
  101. )
  102. cc_proto_library(
  103. name = "EchoProto",
  104. deps = [":echo_pb_proto"],
  105. )
  106. srpc_cc_library(
  107. name = "echo_pb_srpc",
  108. srcs = ["tutorial/echo_pb.proto"],
  109. deps = [":EchoProto"],
  110. )
  111. cc_binary(
  112. name = "srpc_pb_server",
  113. srcs = ["tutorial/tutorial-01-srpc_pb_server.cc"],
  114. linkopts = [
  115. "-lpthread",
  116. "-lssl",
  117. "-lcrypto",
  118. ],
  119. deps = [
  120. ":echo_pb_srpc",
  121. ":srpc",
  122. ":srpc_hdrs",
  123. ],
  124. )
  125. cc_binary(
  126. name = "srpc_pb_client",
  127. srcs = ["tutorial/tutorial-02-srpc_pb_client.cc"],
  128. linkopts = [
  129. "-lpthread",
  130. "-lssl",
  131. "-lcrypto",
  132. ],
  133. deps = [
  134. ":echo_pb_srpc",
  135. ":srpc",
  136. ":srpc_hdrs",
  137. ],
  138. )
  139. srpc_cc_library(
  140. name = "echo_thrift_srpc",
  141. srcs = ["tutorial/echo_thrift.thrift"],
  142. type = "thrift",
  143. )
  144. cc_binary(
  145. name = "srpc_thrift_server",
  146. srcs = ["tutorial/tutorial-03-srpc_thrift_server.cc"],
  147. linkopts = [
  148. "-lpthread",
  149. "-lssl",
  150. "-lcrypto",
  151. ],
  152. deps = [
  153. ":echo_thrift_srpc",
  154. ":srpc",
  155. ":srpc_hdrs",
  156. ],
  157. )
  158. cc_binary(
  159. name = "srpc_thrift_client",
  160. srcs = ["tutorial/tutorial-04-srpc_thrift_client.cc"],
  161. linkopts = [
  162. "-lpthread",
  163. "-lssl",
  164. "-lcrypto",
  165. ],
  166. deps = [
  167. ":echo_thrift_srpc",
  168. ":srpc",
  169. ":srpc_hdrs",
  170. ],
  171. )
  172. cc_binary(
  173. name = "brpc_pb_server",
  174. srcs = ["tutorial/tutorial-05-brpc_pb_server.cc"],
  175. linkopts = [
  176. "-lpthread",
  177. "-lssl",
  178. "-lcrypto",
  179. ],
  180. deps = [
  181. ":echo_pb_srpc",
  182. ":srpc",
  183. ":srpc_hdrs",
  184. ],
  185. )
  186. cc_binary(
  187. name = "brpc_pb_client",
  188. srcs = ["tutorial/tutorial-06-brpc_pb_client.cc"],
  189. linkopts = [
  190. "-lpthread",
  191. "-lssl",
  192. "-lcrypto",
  193. ],
  194. deps = [
  195. ":echo_pb_srpc",
  196. ":srpc",
  197. ":srpc_hdrs",
  198. ],
  199. )
  200. cc_binary(
  201. name = "thrift_thrift_server",
  202. srcs = ["tutorial/tutorial-07-thrift_thrift_server.cc"],
  203. linkopts = [
  204. "-lpthread",
  205. "-lssl",
  206. "-lcrypto",
  207. ],
  208. deps = [
  209. ":echo_thrift_srpc",
  210. ":srpc",
  211. ":srpc_hdrs",
  212. ],
  213. )
  214. cc_binary(
  215. name = "thrift_thrift_client",
  216. srcs = ["tutorial/tutorial-08-thrift_thrift_client.cc"],
  217. linkopts = [
  218. "-lpthread",
  219. "-lssl",
  220. "-lcrypto",
  221. ],
  222. deps = [
  223. ":echo_thrift_srpc",
  224. ":srpc",
  225. ":srpc_hdrs",
  226. ],
  227. )
  228. cc_binary(
  229. name = "client_task",
  230. srcs = ["tutorial/tutorial-09-client_task.cc"],
  231. linkopts = [
  232. "-lpthread",
  233. "-lssl",
  234. "-lcrypto",
  235. ],
  236. deps = [
  237. ":echo_pb_srpc",
  238. ":srpc",
  239. ":srpc_hdrs",
  240. ],
  241. )
  242. cc_binary(
  243. name = "server_async",
  244. srcs = ["tutorial/tutorial-10-server_async.cc"],
  245. linkopts = [
  246. "-lpthread",
  247. "-lssl",
  248. "-lcrypto",
  249. ],
  250. deps = [
  251. ":echo_pb_srpc",
  252. ":srpc",
  253. ":srpc_hdrs",
  254. ],
  255. )
  256. proto_library(
  257. name = "helloworld_proto",
  258. srcs = [
  259. "tutorial/helloworld.proto",
  260. ],
  261. strip_import_prefix = "tutorial",
  262. )
  263. cc_proto_library(
  264. name = "HelloworldProto",
  265. deps = [":helloworld_proto"],
  266. )
  267. srpc_cc_library(
  268. name = "helloworld_pb_srpc",
  269. srcs = ["tutorial/helloworld.proto"],
  270. deps = [":HelloworldProto"],
  271. )
  272. cc_binary(
  273. name = "trpc_pb_server",
  274. srcs = ["tutorial/tutorial-11-trpc_pb_server.cc"],
  275. linkopts = [
  276. "-lpthread",
  277. "-lssl",
  278. "-lcrypto",
  279. ],
  280. deps = [
  281. ":helloworld_pb_srpc",
  282. ":srpc",
  283. ":srpc_hdrs",
  284. ],
  285. )
  286. cc_binary(
  287. name = "trpc_pb_client",
  288. srcs = ["tutorial/tutorial-12-trpc_pb_client.cc"],
  289. linkopts = [
  290. "-lpthread",
  291. "-lssl",
  292. "-lcrypto",
  293. ],
  294. deps = [
  295. ":helloworld_pb_srpc",
  296. ":srpc",
  297. ":srpc_hdrs",
  298. ],
  299. )
  300. cc_binary(
  301. name = "trpc_http_server",
  302. srcs = ["tutorial/tutorial-13-trpc_http_server.cc"],
  303. linkopts = [
  304. "-lpthread",
  305. "-lssl",
  306. "-lcrypto",
  307. ],
  308. deps = [
  309. ":helloworld_pb_srpc",
  310. ":srpc",
  311. ":srpc_hdrs",
  312. ],
  313. )
  314. cc_binary(
  315. name = "trpc_http_client",
  316. srcs = ["tutorial/tutorial-14-trpc_http_client.cc"],
  317. linkopts = [
  318. "-lpthread",
  319. "-lssl",
  320. "-lcrypto",
  321. ],
  322. deps = [
  323. ":helloworld_pb_srpc",
  324. ":srpc",
  325. ":srpc_hdrs",
  326. ],
  327. )
  328. cc_binary(
  329. name = "srpc_pb_proxy",
  330. srcs = ["tutorial/tutorial-15-srpc_pb_proxy.cc"],
  331. linkopts = [
  332. "-lpthread",
  333. "-lssl",
  334. "-lcrypto",
  335. ],
  336. deps = [
  337. ":echo_pb_srpc",
  338. ":srpc",
  339. ":srpc_hdrs",
  340. ],
  341. )
  342. cc_binary(
  343. name = "server_with_metrics",
  344. srcs = ["tutorial/tutorial-16-server_with_metrics.cc"],
  345. linkopts = [
  346. "-lpthread",
  347. "-lssl",
  348. "-lcrypto",
  349. ],
  350. deps = [
  351. ":echo_pb_srpc",
  352. ":srpc",
  353. ":srpc_hdrs",
  354. ],
  355. )