BUILD.bazel 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066
  1. # Bazel build
  2. # C/C++ documentation: https://docs.bazel.build/versions/master/be/c-cpp.html
  3. load("@rules_python//python:defs.bzl", "py_library")
  4. load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
  5. load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
  6. load("@com_github_grpc_grpc//bazel:cython_library.bzl", "pyx_library")
  7. load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
  8. load("//bazel:ray.bzl", "COPTS", "PYX_COPTS", "PYX_SRCS", "copy_to_workspace")
  9. config_setting(
  10. name = "msvc-cl",
  11. flag_values = {"@bazel_tools//tools/cpp:compiler": "msvc-cl"},
  12. )
  13. config_setting(
  14. name = "clang-cl",
  15. flag_values = {"@bazel_tools//tools/cpp:compiler": "clang-cl"},
  16. )
  17. config_setting(
  18. name = "opt",
  19. values = {"compilation_mode": "opt"},
  20. )
  21. # === Begin of rpc definitions ===
  22. # GRPC common lib.
  23. cc_library(
  24. name = "grpc_common_lib",
  25. srcs = glob([
  26. "src/ray/rpc/*.cc",
  27. ]),
  28. hdrs = glob([
  29. "src/ray/rpc/*.h",
  30. "src/ray/raylet_client/*.h",
  31. ]),
  32. copts = COPTS,
  33. strip_include_prefix = "src",
  34. deps = [
  35. ":ray_common",
  36. "@boost//:asio",
  37. "@com_github_grpc_grpc//:grpc++",
  38. "@com_google_protobuf//:protobuf",
  39. ],
  40. )
  41. # Node manager gRPC lib.
  42. cc_grpc_library(
  43. name = "node_manager_cc_grpc",
  44. srcs = ["//src/ray/protobuf:node_manager_proto"],
  45. grpc_only = True,
  46. deps = ["//src/ray/protobuf:node_manager_cc_proto"],
  47. )
  48. # Node manager server and client.
  49. cc_library(
  50. name = "node_manager_rpc",
  51. srcs = glob([
  52. "src/ray/rpc/node_manager/*.cc",
  53. ]),
  54. hdrs = glob([
  55. "src/ray/rpc/node_manager/*.h",
  56. ]),
  57. copts = COPTS,
  58. strip_include_prefix = "src",
  59. deps = [
  60. ":grpc_common_lib",
  61. ":node_manager_cc_grpc",
  62. ":ray_common",
  63. "@boost//:asio",
  64. "@com_github_grpc_grpc//:grpc++",
  65. ],
  66. )
  67. # gcs_service gRPC lib.
  68. cc_grpc_library(
  69. name = "gcs_service_cc_grpc",
  70. srcs = ["//src/ray/protobuf:gcs_service_proto"],
  71. grpc_only = True,
  72. deps = ["//src/ray/protobuf:gcs_service_cc_proto"],
  73. )
  74. # gcs rpc server and client.
  75. cc_library(
  76. name = "gcs_service_rpc",
  77. hdrs = glob([
  78. "src/ray/rpc/gcs_server/gcs_rpc_server.h",
  79. "src/ray/rpc/gcs_server/gcs_rpc_client.h",
  80. ]),
  81. copts = COPTS,
  82. strip_include_prefix = "src",
  83. deps = [
  84. ":gcs_service_cc_grpc",
  85. ":grpc_common_lib",
  86. ":pubsub_lib",
  87. ":ray_common",
  88. "@boost//:asio",
  89. "@com_github_grpc_grpc//:grpc++",
  90. ],
  91. )
  92. # Object manager gRPC lib.
  93. cc_grpc_library(
  94. name = "object_manager_cc_grpc",
  95. srcs = ["//src/ray/protobuf:object_manager_proto"],
  96. grpc_only = True,
  97. deps = ["//src/ray/protobuf:object_manager_cc_proto"],
  98. )
  99. # Object manager rpc server and client.
  100. cc_library(
  101. name = "object_manager_rpc",
  102. hdrs = glob([
  103. "src/ray/rpc/object_manager/*.h",
  104. ]),
  105. copts = COPTS,
  106. strip_include_prefix = "src",
  107. deps = [
  108. ":grpc_common_lib",
  109. ":object_manager_cc_grpc",
  110. ":ray_common",
  111. "@boost//:asio",
  112. "@com_github_grpc_grpc//:grpc++",
  113. ],
  114. )
  115. # Worker gRPC lib.
  116. cc_grpc_library(
  117. name = "worker_cc_grpc",
  118. srcs = ["//src/ray/protobuf:core_worker_proto"],
  119. grpc_only = True,
  120. deps = ["//src/ray/protobuf:worker_cc_proto"],
  121. )
  122. # worker server and client.
  123. cc_library(
  124. name = "worker_rpc",
  125. srcs = glob([
  126. "src/ray/rpc/worker/*.cc",
  127. ]),
  128. hdrs = glob([
  129. "src/ray/rpc/worker/*.h",
  130. ]),
  131. copts = COPTS,
  132. strip_include_prefix = "src",
  133. deps = [
  134. ":grpc_common_lib",
  135. ":pubsub_lib",
  136. ":ray_common",
  137. ":worker_cc_grpc",
  138. "@boost//:asio",
  139. "@boost//:thread",
  140. "@com_github_grpc_grpc//:grpc++",
  141. ],
  142. )
  143. # Metrics Agent gRPC lib.
  144. cc_grpc_library(
  145. name = "reporter_cc_grpc",
  146. srcs = ["//src/ray/protobuf:reporter_proto"],
  147. grpc_only = True,
  148. deps = ["//src/ray/protobuf:reporter_cc_proto"],
  149. )
  150. # Metrics Agent client.
  151. cc_library(
  152. name = "reporter_rpc",
  153. hdrs = glob([
  154. "src/ray/rpc/metrics_agent_client.h",
  155. ]),
  156. copts = COPTS,
  157. strip_include_prefix = "src",
  158. deps = [
  159. ":grpc_common_lib",
  160. ":ray_common",
  161. ":reporter_cc_grpc",
  162. "@boost//:asio",
  163. "@boost//:thread",
  164. "@com_github_grpc_grpc//:grpc++",
  165. ],
  166. )
  167. # Agent manager.
  168. cc_grpc_library(
  169. name = "agent_manager_cc_grpc",
  170. srcs = ["//src/ray/protobuf:agent_manager_proto"],
  171. grpc_only = True,
  172. deps = ["//src/ray/protobuf:agent_manager_cc_proto"],
  173. )
  174. cc_library(
  175. name = "agent_manager_rpc",
  176. hdrs = glob([
  177. "src/ray/rpc/agent_manager/*.h",
  178. ]),
  179. copts = COPTS,
  180. strip_include_prefix = "src",
  181. deps = [
  182. ":agent_manager_cc_grpc",
  183. ":grpc_common_lib",
  184. ":ray_common",
  185. "@boost//:asio",
  186. "@com_github_grpc_grpc//:grpc++",
  187. ],
  188. )
  189. # runtime env.
  190. cc_grpc_library(
  191. name = "runtime_env_cc_grpc",
  192. srcs = ["//src/ray/protobuf:runtime_env_agent_proto"],
  193. grpc_only = True,
  194. deps = [
  195. "//src/ray/protobuf:agent_manager_cc_proto",
  196. "//src/ray/protobuf:common_cc_proto",
  197. "//src/ray/protobuf:runtime_env_agent_cc_proto",
  198. ],
  199. )
  200. cc_library(
  201. name = "runtime_env_rpc",
  202. hdrs = glob([
  203. "src/ray/rpc/runtime_env/*.h",
  204. ]),
  205. copts = COPTS,
  206. strip_include_prefix = "src",
  207. deps = [
  208. ":grpc_common_lib",
  209. ":ray_common",
  210. ":runtime_env_cc_grpc",
  211. "@boost//:asio",
  212. "@com_github_grpc_grpc//:grpc++",
  213. ],
  214. )
  215. # pubsub.
  216. cc_grpc_library(
  217. name = "pubsub_cc_grpc",
  218. srcs = ["//src/ray/protobuf:pubsub_proto"],
  219. grpc_only = True,
  220. deps = [
  221. "//src/ray/protobuf:common_cc_proto",
  222. "//src/ray/protobuf:gcs_cc_proto",
  223. "//src/ray/protobuf:pubsub_cc_proto",
  224. ],
  225. )
  226. cc_library(
  227. name = "pubsub_rpc",
  228. copts = COPTS,
  229. deps = [
  230. "pubsub_cc_grpc",
  231. ":grpc_common_lib",
  232. ":ray_common",
  233. ],
  234. )
  235. # === End of rpc definitions ===
  236. # === Begin of plasma definitions ===
  237. # TODO(mehrdadn): (How to) support dynamic linking?
  238. PROPAGATED_WINDOWS_DEFINES = ["ARROW_STATIC"]
  239. PLASMA_COPTS = COPTS + select({
  240. "@bazel_tools//src/conditions:windows": [
  241. ] + ["-D" + define for define in PROPAGATED_WINDOWS_DEFINES],
  242. "//conditions:default": [
  243. "-DARROW_USE_GLOG",
  244. ],
  245. })
  246. PLASMA_LINKOPTS = [] + select({
  247. "@bazel_tools//src/conditions:windows": [
  248. "-DefaultLib:" + "ws2_32.lib",
  249. ],
  250. "//conditions:default": [
  251. ],
  252. })
  253. cc_library(
  254. name = "plasma_client",
  255. srcs = [
  256. "src/ray/object_manager/plasma/client.cc",
  257. "src/ray/object_manager/plasma/connection.cc",
  258. "src/ray/object_manager/plasma/malloc.cc",
  259. "src/ray/object_manager/plasma/plasma.cc",
  260. "src/ray/object_manager/plasma/protocol.cc",
  261. "src/ray/object_manager/plasma/shared_memory.cc",
  262. ] + select({
  263. "@bazel_tools//src/conditions:windows": [
  264. ],
  265. "//conditions:default": [
  266. "src/ray/object_manager/plasma/fling.cc",
  267. ],
  268. }),
  269. hdrs = [
  270. "src/ray/object_manager/plasma/client.h",
  271. "src/ray/object_manager/plasma/common.h",
  272. "src/ray/object_manager/plasma/compat.h",
  273. "src/ray/object_manager/plasma/connection.h",
  274. "src/ray/object_manager/plasma/malloc.h",
  275. "src/ray/object_manager/plasma/plasma.h",
  276. "src/ray/object_manager/plasma/plasma_generated.h",
  277. "src/ray/object_manager/plasma/protocol.h",
  278. "src/ray/object_manager/plasma/shared_memory.h",
  279. ] + select({
  280. "@bazel_tools//src/conditions:windows": [
  281. ],
  282. "//conditions:default": [
  283. "src/ray/object_manager/plasma/fling.h",
  284. ],
  285. }),
  286. copts = PLASMA_COPTS,
  287. defines = select({
  288. "@bazel_tools//src/conditions:windows": PROPAGATED_WINDOWS_DEFINES,
  289. "//conditions:default": [],
  290. }),
  291. linkopts = PLASMA_LINKOPTS,
  292. strip_include_prefix = "src",
  293. deps = [
  294. ":plasma_fbs",
  295. ":ray_common",
  296. ":ray_util",
  297. "//src/ray/protobuf:common_cc_proto",
  298. "@msgpack",
  299. ],
  300. )
  301. cc_library(
  302. name = "plasma_store_server_lib",
  303. srcs = [
  304. "src/ray/object_manager/plasma/create_request_queue.cc",
  305. "src/ray/object_manager/plasma/dlmalloc.cc",
  306. "src/ray/object_manager/plasma/eviction_policy.cc",
  307. "src/ray/object_manager/plasma/plasma_allocator.cc",
  308. "src/ray/object_manager/plasma/store.cc",
  309. "src/ray/object_manager/plasma/store_runner.cc",
  310. ],
  311. hdrs = [
  312. "src/ray/object_manager/common.h",
  313. "src/ray/object_manager/plasma/create_request_queue.h",
  314. "src/ray/object_manager/plasma/eviction_policy.h",
  315. "src/ray/object_manager/plasma/plasma_allocator.h",
  316. "src/ray/object_manager/plasma/store.h",
  317. "src/ray/object_manager/plasma/store_runner.h",
  318. "src/ray/thirdparty/dlmalloc.c",
  319. ],
  320. copts = PLASMA_COPTS,
  321. linkopts = PLASMA_LINKOPTS,
  322. strip_include_prefix = "src",
  323. deps = [
  324. ":plasma_client",
  325. ],
  326. )
  327. FLATC_ARGS = [
  328. "--gen-object-api",
  329. "--gen-mutable",
  330. "--scoped-enums",
  331. ]
  332. flatbuffer_cc_library(
  333. name = "plasma_fbs",
  334. srcs = ["src/ray/object_manager/plasma/plasma.fbs"],
  335. flatc_args = FLATC_ARGS,
  336. out_prefix = "src/ray/object_manager/plasma/",
  337. )
  338. # === End of plasma definitions ===
  339. cc_library(
  340. name = "ray_common",
  341. srcs = glob(
  342. [
  343. "src/ray/common/**/*.cc",
  344. ],
  345. exclude = [
  346. "src/ray/common/**/*_test.cc",
  347. ],
  348. ) + [
  349. "src/ray/raylet/scheduling/cluster_resource_data.cc",
  350. "src/ray/raylet/scheduling/fixed_point.cc",
  351. "src/ray/raylet/scheduling/scheduling_ids.cc",
  352. ],
  353. hdrs = glob(
  354. [
  355. "src/ray/common/*.h",
  356. "src/ray/common/**/*.h",
  357. ],
  358. ) + [
  359. "src/ray/raylet/scheduling/cluster_resource_data.h",
  360. "src/ray/raylet/scheduling/fixed_point.h",
  361. "src/ray/raylet/scheduling/scheduling_ids.h",
  362. ],
  363. copts = COPTS,
  364. strip_include_prefix = "src",
  365. visibility = ["//visibility:public"],
  366. deps = [
  367. ":node_manager_fbs",
  368. ":ray_util",
  369. "//src/ray/protobuf:common_cc_proto",
  370. "//src/ray/protobuf:gcs_cc_proto",
  371. "@boost//:asio",
  372. "@com_github_grpc_grpc//:grpc++",
  373. "@com_google_absl//absl/container:flat_hash_map",
  374. "@com_google_absl//absl/container:flat_hash_set",
  375. "@com_google_absl//absl/memory",
  376. "@com_google_absl//absl/synchronization",
  377. "@com_google_absl//absl/time",
  378. "@com_google_googletest//:gtest",
  379. "@msgpack",
  380. "@nlohmann_json",
  381. ],
  382. )
  383. # This header is used to warp some streaming code so we can reduce suspicious
  384. # symbols export.
  385. cc_library(
  386. name = "exported_streaming_internal",
  387. srcs = glob(
  388. [
  389. "src/ray/streaming/streaming.cc",
  390. ],
  391. ),
  392. hdrs = glob(
  393. [
  394. "src/ray/streaming/streaming.h",
  395. ],
  396. ),
  397. copts = COPTS,
  398. strip_include_prefix = "src",
  399. visibility = ["//visibility:public"],
  400. deps = [
  401. ":core_worker_lib",
  402. ],
  403. alwayslink = 1,
  404. )
  405. cc_binary(
  406. name = "raylet",
  407. srcs = ["src/ray/raylet/main.cc"],
  408. copts = COPTS,
  409. visibility = ["//java:__subpackages__"],
  410. deps = [
  411. ":ray_util",
  412. ":raylet_lib",
  413. "@com_github_gflags_gflags//:gflags",
  414. ],
  415. )
  416. cc_library(
  417. name = "gcs_pub_sub_lib",
  418. srcs = glob(
  419. [
  420. "src/ray/gcs/pubsub/gcs_pub_sub.cc",
  421. ],
  422. ),
  423. hdrs = glob(
  424. [
  425. "src/ray/gcs/pubsub/gcs_pub_sub.h",
  426. ],
  427. ),
  428. copts = COPTS,
  429. strip_include_prefix = "src",
  430. deps = [
  431. ":gcs",
  432. ":ray_common",
  433. ":redis_client",
  434. ],
  435. )
  436. cc_test(
  437. name = "gcs_pub_sub_test",
  438. srcs = ["src/ray/gcs/pubsub/test/gcs_pub_sub_test.cc"],
  439. args = [
  440. "$(location redis-server)",
  441. "$(location redis-cli)",
  442. "$(location libray_redis_module.so)",
  443. ],
  444. copts = COPTS,
  445. data = [
  446. "//:libray_redis_module.so",
  447. "//:redis-cli",
  448. "//:redis-server",
  449. ],
  450. deps = [
  451. ":gcs_pub_sub_lib",
  452. "@com_google_googletest//:gtest_main",
  453. ],
  454. )
  455. cc_library(
  456. name = "gcs_server_lib",
  457. srcs = glob(
  458. [
  459. "src/ray/gcs/gcs_server/*.cc",
  460. ],
  461. exclude = [
  462. "src/ray/gcs/gcs_server/gcs_server_main.cc",
  463. "src/ray/gcs/gcs_server/test/*.cc",
  464. ],
  465. ),
  466. hdrs = glob(
  467. [
  468. "src/ray/gcs/gcs_server/*.h",
  469. ],
  470. ),
  471. copts = COPTS,
  472. strip_include_prefix = "src",
  473. deps = [
  474. ":agent_manager_rpc",
  475. ":gcs",
  476. ":gcs_pub_sub_lib",
  477. ":gcs_service_rpc",
  478. ":gcs_table_storage_lib",
  479. ":node_manager_rpc",
  480. ":pubsub_lib",
  481. ":raylet_client_lib",
  482. ":worker_rpc",
  483. ],
  484. )
  485. cc_binary(
  486. name = "gcs_server",
  487. srcs = [
  488. "src/ray/gcs/gcs_server/gcs_server_main.cc",
  489. ],
  490. copts = COPTS,
  491. visibility = ["//java:__subpackages__"],
  492. deps = [
  493. ":gcs_server_lib",
  494. ":stats_lib",
  495. "@com_github_gflags_gflags//:gflags",
  496. ],
  497. )
  498. # Ray native pubsub module.
  499. cc_library(
  500. name = "pubsub_lib",
  501. srcs = glob([
  502. "src/ray/pubsub/*.cc",
  503. ]),
  504. hdrs = glob([
  505. "src/ray/pubsub/*.h",
  506. ]),
  507. copts = COPTS,
  508. strip_include_prefix = "src",
  509. visibility = ["//visibility:public"],
  510. deps = [
  511. ":pubsub_rpc",
  512. "@com_google_absl//absl/container:flat_hash_map",
  513. "@com_google_absl//absl/container:flat_hash_set",
  514. "@com_google_absl//absl/synchronization",
  515. ],
  516. )
  517. cc_library(
  518. name = "stats_lib",
  519. srcs = glob(
  520. [
  521. "src/ray/stats/*.cc",
  522. ],
  523. exclude = [
  524. "src/ray/stats/*_test.cc",
  525. ],
  526. ),
  527. hdrs = glob(
  528. [
  529. "src/ray/stats/*.h",
  530. ],
  531. ),
  532. copts = COPTS,
  533. linkopts = select({
  534. "@bazel_tools//src/conditions:windows": [
  535. ],
  536. "//conditions:default": [
  537. "-lpthread",
  538. ],
  539. }),
  540. strip_include_prefix = "src",
  541. deps = [
  542. ":ray_util",
  543. ":reporter_rpc",
  544. "@com_github_jupp0r_prometheus_cpp//pull",
  545. "@com_google_absl//absl/base:core_headers",
  546. "@com_google_absl//absl/memory",
  547. "@com_google_absl//absl/strings",
  548. "@com_google_googletest//:gtest",
  549. "@io_opencensus_cpp//opencensus/exporters/stats/prometheus:prometheus_exporter",
  550. "@io_opencensus_cpp//opencensus/exporters/stats/stdout:stdout_exporter",
  551. "@io_opencensus_cpp//opencensus/stats",
  552. "@io_opencensus_cpp//opencensus/tags",
  553. ],
  554. )
  555. cc_library(
  556. name = "raylet_lib",
  557. srcs = glob(
  558. [
  559. "src/ray/raylet/**/*.cc",
  560. ],
  561. exclude = [
  562. "src/ray/raylet/**/*_test.cc",
  563. "src/ray/raylet/main.cc",
  564. ],
  565. ),
  566. hdrs = glob(
  567. [
  568. "src/ray/raylet/**/*.h",
  569. "src/ray/core_worker/common.h",
  570. ],
  571. ),
  572. copts = COPTS,
  573. linkopts = select({
  574. "@bazel_tools//src/conditions:windows": [
  575. ],
  576. "//conditions:default": [
  577. "-lpthread",
  578. ],
  579. }),
  580. strip_include_prefix = "src",
  581. visibility = ["//streaming:__subpackages__"],
  582. deps = [
  583. ":agent_manager_rpc",
  584. ":gcs",
  585. ":node_manager_fbs",
  586. ":node_manager_rpc",
  587. ":object_manager",
  588. ":plasma_client",
  589. ":pubsub_lib",
  590. ":ray_common",
  591. ":ray_util",
  592. ":runtime_env_rpc",
  593. ":service_based_gcs_client_lib",
  594. ":stats_lib",
  595. ":worker_rpc",
  596. "//src/ray/protobuf:common_cc_proto",
  597. "@boost//:asio",
  598. "@boost//:filesystem",
  599. "@boost//:system",
  600. "@com_github_jupp0r_prometheus_cpp//pull",
  601. "@com_google_absl//absl/base:core_headers",
  602. "@com_google_absl//absl/container:flat_hash_set",
  603. "@com_google_absl//absl/memory",
  604. "@com_google_absl//absl/strings",
  605. "@com_google_googletest//:gtest",
  606. "@io_opencensus_cpp//opencensus/exporters/stats/prometheus:prometheus_exporter",
  607. "@io_opencensus_cpp//opencensus/stats",
  608. "@io_opencensus_cpp//opencensus/tags",
  609. ],
  610. )
  611. cc_library(
  612. name = "raylet_client_lib",
  613. srcs = glob([
  614. "src/ray/raylet_client/*.cc",
  615. ]),
  616. hdrs = glob([
  617. "src/ray/raylet_client/*.h",
  618. ]),
  619. copts = COPTS,
  620. linkopts = select({
  621. "@bazel_tools//src/conditions:windows": [
  622. ],
  623. "//conditions:default": [
  624. "-lpthread",
  625. ],
  626. }),
  627. strip_include_prefix = "src",
  628. visibility = ["//streaming:__subpackages__"],
  629. deps = [
  630. ":agent_manager_rpc",
  631. ":node_manager_fbs",
  632. ":node_manager_rpc",
  633. ":ray_common",
  634. ":ray_util",
  635. "//src/ray/protobuf:gcs_cc_proto",
  636. "@boost//:asio",
  637. ],
  638. )
  639. cc_library(
  640. name = "core_worker_lib",
  641. srcs = glob(
  642. [
  643. "src/ray/core_worker/*.cc",
  644. "src/ray/core_worker/store_provider/*.cc",
  645. "src/ray/core_worker/store_provider/memory_store/*.cc",
  646. "src/ray/core_worker/transport/*.cc",
  647. ],
  648. exclude = [
  649. "src/ray/core_worker/**/*_test.cc",
  650. "src/ray/core_worker/mock_worker.cc",
  651. ],
  652. ),
  653. hdrs = glob([
  654. "src/ray/core_worker/*.h",
  655. "src/ray/core_worker/store_provider/*.h",
  656. "src/ray/core_worker/store_provider/memory_store/*.h",
  657. "src/ray/core_worker/transport/*.h",
  658. ]),
  659. copts = COPTS,
  660. strip_include_prefix = "src",
  661. visibility = ["//visibility:public"],
  662. deps = [
  663. ":gcs",
  664. ":plasma_client",
  665. ":ray_common",
  666. ":ray_util",
  667. ":raylet_client_lib",
  668. ":service_based_gcs_client_lib",
  669. ":stats_lib",
  670. ":worker_rpc",
  671. "//src/ray/protobuf:worker_cc_proto",
  672. "@boost//:fiber",
  673. "@com_google_absl//absl/container:flat_hash_map",
  674. "@com_google_absl//absl/container:flat_hash_set",
  675. ],
  676. )
  677. cc_library(
  678. name = "mock_worker_lib",
  679. srcs = ["src/ray/core_worker/test/mock_worker.cc"],
  680. hdrs = glob([
  681. "src/ray/core_worker/test/*.h",
  682. ]),
  683. copts = COPTS,
  684. strip_include_prefix = "src",
  685. deps = [
  686. ":core_worker_lib",
  687. ],
  688. )
  689. cc_binary(
  690. name = "mock_worker",
  691. copts = COPTS,
  692. deps = [
  693. ":mock_worker_lib",
  694. ],
  695. )
  696. cc_test(
  697. name = "core_worker_test",
  698. srcs = ["src/ray/core_worker/test/core_worker_test.cc"],
  699. args = [
  700. "$(location raylet)",
  701. "$(location mock_worker)",
  702. "$(location gcs_server)",
  703. "$(location redis-cli)",
  704. "$(location redis-server)",
  705. "$(location libray_redis_module.so)",
  706. ],
  707. copts = COPTS,
  708. data = [
  709. "//:gcs_server",
  710. "//:libray_redis_module.so",
  711. "//:mock_worker",
  712. "//:raylet",
  713. "//:redis-cli",
  714. "//:redis-server",
  715. ],
  716. deps = [
  717. ":core_worker_lib",
  718. ":gcs",
  719. "@com_google_absl//absl/container:flat_hash_map",
  720. "@com_google_absl//absl/container:flat_hash_set",
  721. "@com_google_googletest//:gtest_main",
  722. ],
  723. )
  724. cc_test(
  725. name = "memory_store_test",
  726. srcs = ["src/ray/core_worker/test/memory_store_test.cc"],
  727. copts = COPTS,
  728. deps = [
  729. ":core_worker_lib",
  730. "@com_google_googletest//:gtest_main",
  731. ],
  732. )
  733. cc_test(
  734. name = "direct_actor_transport_test",
  735. srcs = ["src/ray/core_worker/test/direct_actor_transport_test.cc"],
  736. copts = COPTS,
  737. deps = [
  738. ":core_worker_lib",
  739. "@com_google_googletest//:gtest_main",
  740. ],
  741. )
  742. cc_test(
  743. name = "direct_task_transport_test",
  744. srcs = ["src/ray/core_worker/test/direct_task_transport_test.cc"],
  745. copts = COPTS,
  746. deps = [
  747. ":core_worker_lib",
  748. "@com_google_googletest//:gtest_main",
  749. ],
  750. )
  751. cc_test(
  752. name = "reference_count_test",
  753. srcs = ["src/ray/core_worker/reference_count_test.cc"],
  754. copts = COPTS,
  755. deps = [
  756. ":core_worker_lib",
  757. "@com_google_googletest//:gtest_main",
  758. ],
  759. )
  760. cc_test(
  761. name = "object_recovery_manager_test",
  762. srcs = ["src/ray/core_worker/test/object_recovery_manager_test.cc"],
  763. copts = COPTS,
  764. deps = [
  765. ":core_worker_lib",
  766. "@com_google_googletest//:gtest_main",
  767. ],
  768. )
  769. cc_test(
  770. name = "scheduling_queue_test",
  771. srcs = ["src/ray/core_worker/test/scheduling_queue_test.cc"],
  772. copts = COPTS,
  773. deps = [
  774. ":core_worker_lib",
  775. "@com_google_googletest//:gtest_main",
  776. ],
  777. )
  778. cc_test(
  779. name = "task_manager_test",
  780. srcs = ["src/ray/core_worker/test/task_manager_test.cc"],
  781. copts = COPTS,
  782. deps = [
  783. ":core_worker_lib",
  784. "@com_google_googletest//:gtest_main",
  785. ],
  786. )
  787. cc_test(
  788. name = "actor_manager_test",
  789. srcs = ["src/ray/core_worker/test/actor_manager_test.cc"],
  790. copts = COPTS,
  791. deps = [
  792. ":core_worker_lib",
  793. "@com_google_googletest//:gtest_main",
  794. ],
  795. )
  796. cc_test(
  797. name = "lease_policy_test",
  798. srcs = ["src/ray/core_worker/test/lease_policy_test.cc"],
  799. copts = COPTS,
  800. deps = [
  801. ":core_worker_lib",
  802. "@com_google_googletest//:gtest_main",
  803. ],
  804. )
  805. cc_test(
  806. name = "cluster_resource_scheduler_test",
  807. srcs = [
  808. "src/ray/raylet/scheduling/cluster_resource_scheduler_test.cc",
  809. ],
  810. copts = COPTS,
  811. deps = [
  812. ":raylet_lib",
  813. "@com_google_googletest//:gtest_main",
  814. ],
  815. )
  816. cc_test(
  817. name = "scheduling_policy_test",
  818. srcs = [
  819. "src/ray/raylet/scheduling/scheduling_policy_test.cc",
  820. ],
  821. copts = COPTS,
  822. deps = [
  823. ":raylet_lib",
  824. "@com_google_googletest//:gtest_main",
  825. ],
  826. )
  827. cc_test(
  828. name = "cluster_task_manager_test",
  829. srcs = [
  830. "src/ray/raylet/scheduling/cluster_task_manager_test.cc",
  831. ],
  832. copts = COPTS,
  833. deps = [
  834. ":raylet_lib",
  835. "@com_google_googletest//:gtest_main",
  836. ],
  837. )
  838. cc_test(
  839. name = "local_object_manager_test",
  840. srcs = [
  841. "src/ray/raylet/test/local_object_manager_test.cc",
  842. ],
  843. copts = COPTS,
  844. deps = [
  845. ":raylet_lib",
  846. "@com_google_googletest//:gtest_main",
  847. ],
  848. )
  849. cc_test(
  850. name = "pull_manager_test",
  851. srcs = [
  852. "src/ray/object_manager/test/pull_manager_test.cc",
  853. ],
  854. copts = COPTS,
  855. deps = [
  856. ":object_manager",
  857. "@com_google_googletest//:gtest_main",
  858. ],
  859. )
  860. cc_test(
  861. name = "push_manager_test",
  862. srcs = [
  863. "src/ray/object_manager/test/push_manager_test.cc",
  864. ],
  865. copts = COPTS,
  866. deps = [
  867. ":raylet_lib",
  868. "@com_google_googletest//:gtest_main",
  869. ],
  870. )
  871. cc_test(
  872. name = "spilled_object_test",
  873. srcs = [
  874. "src/ray/object_manager/test/spilled_object_test.cc",
  875. ],
  876. copts = COPTS,
  877. deps = [
  878. ":raylet_lib",
  879. "@boost//:endian",
  880. "@com_google_absl//absl/strings:str_format",
  881. "@com_google_googletest//:gtest_main",
  882. ],
  883. )
  884. cc_test(
  885. name = "create_request_queue_test",
  886. srcs = [
  887. "src/ray/object_manager/test/create_request_queue_test.cc",
  888. ],
  889. copts = COPTS,
  890. deps = [
  891. ":plasma_store_server_lib",
  892. "@com_google_googletest//:gtest",
  893. "@com_google_googletest//:gtest_main",
  894. ],
  895. )
  896. cc_test(
  897. name = "worker_pool_test",
  898. srcs = ["src/ray/raylet/worker_pool_test.cc"],
  899. copts = COPTS,
  900. deps = [
  901. ":raylet_lib",
  902. "@com_google_googletest//:gtest_main",
  903. ],
  904. )
  905. cc_test(
  906. name = "placement_group_resource_manager_test",
  907. srcs = ["src/ray/raylet/placement_group_resource_manager_test.cc"],
  908. copts = COPTS,
  909. deps = [
  910. "gcs_test_util_lib",
  911. "ray_common",
  912. "raylet_lib",
  913. "@com_google_googletest//:gtest_main",
  914. ],
  915. )
  916. cc_test(
  917. name = "id_test",
  918. srcs = ["src/ray/common/id_test.cc"],
  919. copts = COPTS,
  920. deps = [
  921. "ray_common",
  922. "@com_google_googletest//:gtest_main",
  923. ],
  924. )
  925. cc_test(
  926. name = "logging_test",
  927. srcs = ["src/ray/util/logging_test.cc"],
  928. args = ["--gtest_filter=PrintLogTest*"],
  929. copts = COPTS,
  930. deps = [
  931. ":ray_util",
  932. "@boost//:asio",
  933. "@com_google_googletest//:gtest_main",
  934. ],
  935. )
  936. cc_test(
  937. name = "event_test",
  938. srcs = ["src/ray/util/event_test.cc"],
  939. copts = COPTS,
  940. deps = [
  941. ":ray_util",
  942. "@boost//:filesystem",
  943. "@com_google_googletest//:gtest_main",
  944. ],
  945. )
  946. cc_test(
  947. name = "filesystem_test",
  948. srcs = ["src/ray/util/filesystem_test.cc"],
  949. copts = COPTS,
  950. deps = [
  951. ":ray_util",
  952. "@com_google_googletest//:gtest_main",
  953. ],
  954. )
  955. cc_test(
  956. name = "util_test",
  957. srcs = ["src/ray/util/util_test.cc"],
  958. copts = COPTS,
  959. deps = [
  960. ":ray_util",
  961. "@boost//:asio",
  962. "@com_google_googletest//:gtest_main",
  963. ],
  964. )
  965. cc_test(
  966. name = "throttler_test",
  967. srcs = ["src/ray/util/throttler_test.cc"],
  968. copts = COPTS,
  969. deps = [
  970. ":ray_util",
  971. "@com_google_absl//absl/time",
  972. "@com_google_googletest//:gtest_main",
  973. ],
  974. )
  975. cc_test(
  976. name = "sample_test",
  977. srcs = ["src/ray/util/sample_test.cc"],
  978. copts = COPTS,
  979. deps = [
  980. ":ray_common",
  981. "@com_google_googletest//:gtest_main",
  982. ],
  983. )
  984. cc_test(
  985. name = "dependency_manager_test",
  986. srcs = ["src/ray/raylet/dependency_manager_test.cc"],
  987. copts = COPTS,
  988. deps = [
  989. ":raylet_lib",
  990. "@com_google_googletest//:gtest_main",
  991. ],
  992. )
  993. cc_test(
  994. name = "client_connection_test",
  995. srcs = ["src/ray/common/test/client_connection_test.cc"],
  996. copts = COPTS,
  997. deps = [
  998. ":ray_common",
  999. "@com_google_googletest//:gtest_main",
  1000. ],
  1001. )
  1002. cc_test(
  1003. name = "publisher_test",
  1004. srcs = ["src/ray/pubsub/test/publisher_test.cc"],
  1005. copts = COPTS,
  1006. deps = [
  1007. ":pubsub_lib",
  1008. "@com_google_googletest//:gtest_main",
  1009. ],
  1010. )
  1011. cc_test(
  1012. name = "subscriber_test",
  1013. srcs = [
  1014. "src/ray/pubsub/test/subscriber_test.cc",
  1015. ],
  1016. copts = COPTS,
  1017. deps = [
  1018. ":pubsub_lib",
  1019. "@com_google_googletest//:gtest_main",
  1020. ],
  1021. )
  1022. cc_test(
  1023. name = "signal_test",
  1024. srcs = ["src/ray/util/signal_test.cc"],
  1025. copts = COPTS,
  1026. deps = [
  1027. ":raylet_lib",
  1028. "@com_google_googletest//:gtest_main",
  1029. ],
  1030. )
  1031. cc_test(
  1032. name = "sequencer_test",
  1033. srcs = ["src/ray/util/sequencer_test.cc"],
  1034. copts = COPTS,
  1035. deps = [
  1036. ":ray_util",
  1037. "@com_google_googletest//:gtest_main",
  1038. ],
  1039. )
  1040. cc_test(
  1041. name = "stats_test",
  1042. srcs = ["src/ray/stats/stats_test.cc"],
  1043. copts = COPTS,
  1044. tags = ["stats"],
  1045. deps = [
  1046. ":stats_lib",
  1047. "@com_google_googletest//:gtest_main",
  1048. ],
  1049. )
  1050. cc_test(
  1051. name = "metric_exporter_client_test",
  1052. srcs = ["src/ray/stats/metric_exporter_client_test.cc"],
  1053. copts = COPTS,
  1054. tags = ["stats"],
  1055. deps = [
  1056. ":stats_lib",
  1057. "@com_google_googletest//:gtest_main",
  1058. ],
  1059. )
  1060. cc_library(
  1061. name = "gcs_test_util_lib",
  1062. hdrs = [
  1063. "src/ray/gcs/test/gcs_test_util.h",
  1064. ],
  1065. copts = COPTS,
  1066. strip_include_prefix = "src",
  1067. deps = [
  1068. ":gcs",
  1069. ":gcs_service_rpc",
  1070. ],
  1071. )
  1072. cc_test(
  1073. name = "gcs_server_rpc_test",
  1074. srcs = [
  1075. "src/ray/gcs/gcs_server/test/gcs_server_rpc_test.cc",
  1076. ],
  1077. args = [
  1078. "$(location redis-server)",
  1079. "$(location redis-cli)",
  1080. "$(location libray_redis_module.so)",
  1081. ],
  1082. copts = COPTS,
  1083. data = [
  1084. "//:libray_redis_module.so",
  1085. "//:redis-cli",
  1086. "//:redis-server",
  1087. ],
  1088. deps = [
  1089. ":gcs_server_lib",
  1090. ":gcs_test_util_lib",
  1091. "@com_google_googletest//:gtest_main",
  1092. ],
  1093. )
  1094. cc_library(
  1095. name = "gcs_server_test_util",
  1096. hdrs = [
  1097. "src/ray/gcs/gcs_server/test/gcs_server_test_util.h",
  1098. ],
  1099. copts = COPTS,
  1100. strip_include_prefix = "src",
  1101. )
  1102. cc_test(
  1103. name = "gcs_node_manager_test",
  1104. srcs = [
  1105. "src/ray/gcs/gcs_server/test/gcs_node_manager_test.cc",
  1106. ],
  1107. copts = COPTS,
  1108. deps = [
  1109. ":gcs_server_lib",
  1110. ":gcs_server_test_util",
  1111. ":gcs_test_util_lib",
  1112. "@com_google_googletest//:gtest_main",
  1113. ],
  1114. )
  1115. cc_test(
  1116. name = "gcs_placement_group_manager_test",
  1117. srcs = [
  1118. "src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc",
  1119. ],
  1120. copts = COPTS,
  1121. deps = [
  1122. ":gcs_server_lib",
  1123. ":gcs_server_test_util",
  1124. ":gcs_test_util_lib",
  1125. "@com_google_googletest//:gtest_main",
  1126. ],
  1127. )
  1128. cc_test(
  1129. name = "gcs_placement_group_scheduler_test",
  1130. srcs = [
  1131. "src/ray/gcs/gcs_server/test/gcs_placement_group_scheduler_test.cc",
  1132. ],
  1133. copts = COPTS,
  1134. deps = [
  1135. ":gcs_server_lib",
  1136. ":gcs_server_test_util",
  1137. ":gcs_test_util_lib",
  1138. "@com_google_googletest//:gtest_main",
  1139. ],
  1140. )
  1141. cc_test(
  1142. name = "gcs_actor_scheduler_test",
  1143. srcs = [
  1144. "src/ray/gcs/gcs_server/test/gcs_actor_scheduler_test.cc",
  1145. ],
  1146. copts = COPTS,
  1147. deps = [
  1148. ":gcs_server_lib",
  1149. ":gcs_server_test_util",
  1150. ":gcs_test_util_lib",
  1151. "@com_google_googletest//:gtest_main",
  1152. ],
  1153. )
  1154. cc_test(
  1155. name = "gcs_actor_manager_test",
  1156. srcs = [
  1157. "src/ray/gcs/gcs_server/test/gcs_actor_manager_test.cc",
  1158. ],
  1159. copts = COPTS,
  1160. deps = [
  1161. ":gcs_server_lib",
  1162. ":gcs_server_test_util",
  1163. ":gcs_test_util_lib",
  1164. "@com_google_googletest//:gtest_main",
  1165. ],
  1166. )
  1167. cc_library(
  1168. name = "gcs_table_storage_lib",
  1169. srcs = glob(
  1170. [
  1171. "src/ray/gcs/gcs_server/gcs_table_storage.cc",
  1172. ],
  1173. ),
  1174. hdrs = glob(
  1175. [
  1176. "src/ray/gcs/gcs_server/gcs_table_storage.h",
  1177. ],
  1178. ),
  1179. copts = COPTS,
  1180. strip_include_prefix = "src",
  1181. deps = [
  1182. ":gcs",
  1183. ":gcs_in_memory_store_client",
  1184. ":pubsub_lib",
  1185. ":ray_common",
  1186. ":redis_store_client",
  1187. ],
  1188. )
  1189. cc_library(
  1190. name = "gcs_table_storage_test_lib",
  1191. hdrs = [
  1192. "src/ray/gcs/gcs_server/test/gcs_table_storage_test_base.h",
  1193. ],
  1194. copts = COPTS,
  1195. strip_include_prefix = "src",
  1196. deps = [
  1197. "redis_store_client",
  1198. ],
  1199. )
  1200. cc_test(
  1201. name = "redis_gcs_table_storage_test",
  1202. srcs = [
  1203. "src/ray/gcs/gcs_server/test/redis_gcs_table_storage_test.cc",
  1204. ],
  1205. args = [
  1206. "$(location redis-server)",
  1207. "$(location redis-cli)",
  1208. "$(location libray_redis_module.so)",
  1209. ],
  1210. copts = COPTS,
  1211. data = [
  1212. "//:libray_redis_module.so",
  1213. "//:redis-cli",
  1214. "//:redis-server",
  1215. ],
  1216. deps = [
  1217. ":gcs_table_storage_lib",
  1218. ":gcs_table_storage_test_lib",
  1219. ":gcs_test_util_lib",
  1220. ":store_client_test_lib",
  1221. "@com_google_googletest//:gtest_main",
  1222. ],
  1223. )
  1224. cc_test(
  1225. name = "in_memory_gcs_table_storage_test",
  1226. srcs = [
  1227. "src/ray/gcs/gcs_server/test/in_memory_gcs_table_storage_test.cc",
  1228. ],
  1229. copts = COPTS,
  1230. deps = [
  1231. ":gcs_table_storage_lib",
  1232. ":gcs_table_storage_test_lib",
  1233. ":gcs_test_util_lib",
  1234. ":store_client_test_lib",
  1235. "@com_google_googletest//:gtest_main",
  1236. ],
  1237. )
  1238. cc_test(
  1239. name = "gcs_resource_manager_test",
  1240. srcs = [
  1241. "src/ray/gcs/gcs_server/test/gcs_resource_manager_test.cc",
  1242. ],
  1243. copts = COPTS,
  1244. deps = [
  1245. ":gcs_server_lib",
  1246. ":gcs_test_util_lib",
  1247. "@com_google_googletest//:gtest_main",
  1248. ],
  1249. )
  1250. cc_test(
  1251. name = "gcs_resource_scheduler_test",
  1252. srcs = [
  1253. "src/ray/gcs/gcs_server/test/gcs_resource_scheduler_test.cc",
  1254. ],
  1255. copts = COPTS,
  1256. deps = [
  1257. ":gcs_server_lib",
  1258. ":gcs_test_util_lib",
  1259. "@com_google_googletest//:gtest_main",
  1260. ],
  1261. )
  1262. cc_test(
  1263. name = "gcs_resource_report_poller_test",
  1264. srcs = [
  1265. "src/ray/gcs/gcs_server/test/gcs_resource_report_poller_test.cc",
  1266. ],
  1267. copts = COPTS,
  1268. deps = [
  1269. ":gcs_server_lib",
  1270. ":gcs_test_util_lib",
  1271. "@com_google_googletest//:gtest_main",
  1272. ],
  1273. )
  1274. cc_test(
  1275. name = "grpc_based_resource_broadcaster_test",
  1276. srcs = [
  1277. "src/ray/gcs/gcs_server/test/grpc_based_resource_broadcaster_test.cc",
  1278. ],
  1279. copts = COPTS,
  1280. deps = [
  1281. ":gcs_server_lib",
  1282. ":gcs_test_util_lib",
  1283. "@com_google_googletest//:gtest_main",
  1284. ],
  1285. )
  1286. cc_library(
  1287. name = "service_based_gcs_client_lib",
  1288. srcs = glob(
  1289. [
  1290. "src/ray/gcs/gcs_client/service_based_*.cc",
  1291. ],
  1292. ),
  1293. hdrs = glob(
  1294. [
  1295. "src/ray/gcs/gcs_client/service_based_*.h",
  1296. ],
  1297. ),
  1298. copts = COPTS,
  1299. strip_include_prefix = "src",
  1300. deps = [
  1301. ":gcs",
  1302. ":gcs_pub_sub_lib",
  1303. ":gcs_service_rpc",
  1304. ":redis_store_client",
  1305. ],
  1306. )
  1307. cc_library(
  1308. name = "global_state_accessor_lib",
  1309. srcs = glob(
  1310. [
  1311. "src/ray/gcs/gcs_client/global_state_accessor.cc",
  1312. ],
  1313. ),
  1314. hdrs = glob(
  1315. [
  1316. "src/ray/gcs/gcs_client/global_state_accessor.h",
  1317. ],
  1318. ),
  1319. copts = COPTS,
  1320. strip_include_prefix = "src",
  1321. visibility = ["//visibility:public"],
  1322. deps = [
  1323. ":service_based_gcs_client_lib",
  1324. ],
  1325. )
  1326. cc_test(
  1327. name = "global_state_accessor_test",
  1328. srcs = [
  1329. "src/ray/gcs/gcs_client/test/global_state_accessor_test.cc",
  1330. ],
  1331. args = [
  1332. "$(location redis-server)",
  1333. "$(location redis-cli)",
  1334. "$(location libray_redis_module.so)",
  1335. ],
  1336. copts = COPTS,
  1337. data = [
  1338. "//:libray_redis_module.so",
  1339. "//:redis-cli",
  1340. "//:redis-server",
  1341. ],
  1342. deps = [
  1343. ":gcs_server_lib",
  1344. ":gcs_test_util_lib",
  1345. ":global_state_accessor_lib",
  1346. ":service_based_gcs_client_lib",
  1347. "@com_google_googletest//:gtest_main",
  1348. ],
  1349. )
  1350. cc_test(
  1351. name = "gcs_server_test",
  1352. srcs = [
  1353. "src/ray/gcs/gcs_client/test/service_based_gcs_client_test.cc",
  1354. ],
  1355. args = [
  1356. "$(location redis-server)",
  1357. "$(location redis-cli)",
  1358. "$(location libray_redis_module.so)",
  1359. ],
  1360. copts = COPTS,
  1361. data = [
  1362. "//:libray_redis_module.so",
  1363. "//:redis-cli",
  1364. "//:redis-server",
  1365. ],
  1366. deps = [
  1367. ":gcs_server_lib",
  1368. ":gcs_test_util_lib",
  1369. ":service_based_gcs_client_lib",
  1370. "@com_google_googletest//:gtest_main",
  1371. ],
  1372. )
  1373. cc_test(
  1374. name = "gcs_object_manager_test",
  1375. srcs = [
  1376. "src/ray/gcs/gcs_server/test/gcs_object_manager_test.cc",
  1377. ],
  1378. copts = COPTS,
  1379. deps = [
  1380. ":gcs_server_lib",
  1381. ":gcs_server_test_util",
  1382. ":gcs_test_util_lib",
  1383. "@com_google_googletest//:gtest_main",
  1384. ],
  1385. )
  1386. cc_library(
  1387. name = "object_manager",
  1388. srcs = glob([
  1389. "src/ray/object_manager/*.cc",
  1390. "src/ray/object_manager/notification/*.cc",
  1391. ]),
  1392. hdrs = glob([
  1393. "src/ray/object_manager/*.h",
  1394. "src/ray/object_manager/notification/*.h",
  1395. ]),
  1396. copts = COPTS,
  1397. strip_include_prefix = "src",
  1398. deps = [
  1399. ":core_worker_lib",
  1400. ":gcs",
  1401. ":object_manager_rpc",
  1402. ":plasma_store_server_lib",
  1403. ":ray_common",
  1404. ":ray_util",
  1405. "@boost//:asio",
  1406. ],
  1407. )
  1408. cc_library(
  1409. name = "platform_shims",
  1410. srcs = [] + select({
  1411. "@bazel_tools//src/conditions:windows": glob([
  1412. "src/shims/windows/**/*.c",
  1413. "src/shims/windows/**/*.cc",
  1414. "src/shims/windows/**/*.h",
  1415. ]),
  1416. "//conditions:default": [],
  1417. }),
  1418. hdrs = [] + select({
  1419. "@bazel_tools//src/conditions:windows": glob([
  1420. "src/shims/windows/**/*.h",
  1421. ]),
  1422. "//conditions:default": [],
  1423. }),
  1424. copts = COPTS,
  1425. strip_include_prefix = select({
  1426. "@bazel_tools//src/conditions:windows": "src/shims/windows",
  1427. "//conditions:default": "",
  1428. }),
  1429. visibility = ["//visibility:public"],
  1430. )
  1431. cc_library(
  1432. name = "ray_util",
  1433. srcs = glob(
  1434. [
  1435. "src/ray/util/*.cc",
  1436. ],
  1437. exclude = [
  1438. "src/ray/util/*_test.cc",
  1439. ],
  1440. ),
  1441. hdrs = glob([
  1442. "src/ray/util/*.h",
  1443. ]),
  1444. copts = COPTS,
  1445. strip_include_prefix = "src",
  1446. visibility = ["//visibility:public"],
  1447. deps = [
  1448. ":aligned_alloc",
  1449. ":sha256",
  1450. "//src/ray/protobuf:event_cc_proto",
  1451. "@boost//:asio",
  1452. "@boost//:property_tree",
  1453. "@com_github_spdlog//:spdlog",
  1454. "@com_google_absl//absl/debugging:failure_signal_handler",
  1455. "@com_google_absl//absl/debugging:stacktrace",
  1456. "@com_google_absl//absl/debugging:symbolize",
  1457. "@com_google_absl//absl/synchronization",
  1458. "@com_google_absl//absl/time",
  1459. "@com_google_googletest//:gtest_main",
  1460. ],
  1461. )
  1462. filegroup(
  1463. name = "iwyu_sh",
  1464. srcs = ["ci/travis/iwyu.sh"],
  1465. )
  1466. filegroup(
  1467. name = "extra_actions_base_proto",
  1468. srcs = [
  1469. # TODO: Replace our file with the built-in copy once this issue is resolved:
  1470. # https://github.com/bazelbuild/bazel/issues/8738
  1471. "thirdparty/protobuf/extra_actions_base.proto",
  1472. #"@bazel_tools//src/main/protobuf:extra_actions_base.proto",
  1473. ],
  1474. )
  1475. action_listener(
  1476. name = "iwyu_cpp",
  1477. extra_actions = [":iwyu_action"],
  1478. mnemonics = ["CppCompile"],
  1479. )
  1480. extra_action(
  1481. name = "iwyu_action",
  1482. cmd = "$(location :iwyu_sh) postbuild $(location @com_google_protobuf//:protoc) $(location :extra_actions_base_proto) --extra_action_file=$(EXTRA_ACTION_FILE) > $(output $(ACTION_ID).iwyu.txt)",
  1483. out_templates = [
  1484. "$(ACTION_ID).iwyu.txt",
  1485. ],
  1486. tools = [
  1487. ":extra_actions_base_proto",
  1488. ":iwyu_sh",
  1489. "@com_google_protobuf//:protoc",
  1490. ],
  1491. )
  1492. cc_library(
  1493. name = "sha256",
  1494. srcs = [
  1495. "src/ray/thirdparty/sha256.c",
  1496. ],
  1497. hdrs = [
  1498. "src/ray/thirdparty/sha256.h",
  1499. ],
  1500. copts = COPTS,
  1501. strip_include_prefix = "src",
  1502. )
  1503. cc_library(
  1504. name = "aligned_alloc",
  1505. srcs = [
  1506. "src/ray/thirdparty/aligned_alloc.c",
  1507. ],
  1508. hdrs = [
  1509. "src/ray/thirdparty/aligned_alloc.h",
  1510. ],
  1511. copts = COPTS,
  1512. strip_include_prefix = "src",
  1513. )
  1514. alias(
  1515. name = "hiredis",
  1516. actual = "@com_github_redis_hiredis//:hiredis",
  1517. )
  1518. cc_library(
  1519. name = "redis_client",
  1520. srcs = [
  1521. "src/ray/gcs/asio.cc",
  1522. "src/ray/gcs/redis_async_context.cc",
  1523. "src/ray/gcs/redis_client.cc",
  1524. "src/ray/gcs/redis_context.cc",
  1525. ],
  1526. hdrs = [
  1527. "src/ray/gcs/asio.h",
  1528. "src/ray/gcs/redis_async_context.h",
  1529. "src/ray/gcs/redis_client.h",
  1530. "src/ray/gcs/redis_context.h",
  1531. ],
  1532. copts = COPTS,
  1533. strip_include_prefix = "src",
  1534. deps = [
  1535. ":hiredis",
  1536. ":ray_common",
  1537. ":ray_util",
  1538. ":stats_lib",
  1539. "@boost//:asio",
  1540. ],
  1541. )
  1542. cc_library(
  1543. name = "redis_store_client",
  1544. srcs = [
  1545. "src/ray/gcs/store_client/redis_store_client.cc",
  1546. ],
  1547. hdrs = [
  1548. "src/ray/gcs/callback.h",
  1549. "src/ray/gcs/store_client/redis_store_client.h",
  1550. "src/ray/gcs/store_client/store_client.h",
  1551. ],
  1552. copts = COPTS,
  1553. strip_include_prefix = "src",
  1554. deps = [
  1555. "redis_client",
  1556. ],
  1557. )
  1558. cc_library(
  1559. name = "gcs_in_memory_store_client",
  1560. srcs = [
  1561. "src/ray/gcs/store_client/in_memory_store_client.cc",
  1562. ],
  1563. hdrs = [
  1564. "src/ray/gcs/callback.h",
  1565. "src/ray/gcs/store_client/in_memory_store_client.h",
  1566. "src/ray/gcs/store_client/store_client.h",
  1567. ],
  1568. copts = COPTS,
  1569. strip_include_prefix = "src",
  1570. deps = [
  1571. ":ray_common",
  1572. ":ray_util",
  1573. ],
  1574. )
  1575. cc_library(
  1576. name = "store_client_test_lib",
  1577. hdrs = [
  1578. "src/ray/gcs/store_client/test/store_client_test_base.h",
  1579. ],
  1580. copts = COPTS,
  1581. strip_include_prefix = "src",
  1582. deps = [
  1583. "redis_store_client",
  1584. ],
  1585. )
  1586. cc_test(
  1587. name = "redis_store_client_test",
  1588. srcs = ["src/ray/gcs/store_client/test/redis_store_client_test.cc"],
  1589. args = [
  1590. "$(location redis-server)",
  1591. "$(location redis-cli)",
  1592. "$(location libray_redis_module.so)",
  1593. ],
  1594. copts = COPTS,
  1595. data = [
  1596. "//:libray_redis_module.so",
  1597. "//:redis-cli",
  1598. "//:redis-server",
  1599. ],
  1600. deps = [
  1601. ":redis_store_client",
  1602. ":store_client_test_lib",
  1603. "@com_google_googletest//:gtest_main",
  1604. ],
  1605. )
  1606. cc_test(
  1607. name = "in_memory_store_client_test",
  1608. srcs = ["src/ray/gcs/store_client/test/in_memory_store_client_test.cc"],
  1609. copts = COPTS,
  1610. deps = [
  1611. ":gcs_in_memory_store_client",
  1612. ":store_client_test_lib",
  1613. "@com_google_googletest//:gtest_main",
  1614. ],
  1615. )
  1616. cc_library(
  1617. name = "gcs",
  1618. srcs = glob(
  1619. [
  1620. "src/ray/gcs/*.cc",
  1621. ],
  1622. exclude = [
  1623. "src/ray/gcs/*_test.cc",
  1624. ],
  1625. ),
  1626. hdrs = glob([
  1627. "src/ray/gcs/*.h",
  1628. ]),
  1629. copts = COPTS,
  1630. strip_include_prefix = "src",
  1631. deps = [
  1632. ":agent_manager_rpc",
  1633. ":hiredis",
  1634. ":node_manager_fbs",
  1635. ":node_manager_rpc",
  1636. ":ray_common",
  1637. ":ray_util",
  1638. ":stats_lib",
  1639. "//src/ray/protobuf:gcs_cc_proto",
  1640. "@boost//:asio",
  1641. ],
  1642. )
  1643. cc_test(
  1644. name = "asio_test",
  1645. srcs = ["src/ray/gcs/test/asio_test.cc"],
  1646. args = [
  1647. "$(location redis-server)",
  1648. "$(location redis-cli)",
  1649. "$(location libray_redis_module.so)",
  1650. ],
  1651. copts = COPTS,
  1652. data = [
  1653. "//:libray_redis_module.so",
  1654. "//:redis-cli",
  1655. "//:redis-server",
  1656. ],
  1657. deps = [
  1658. ":gcs",
  1659. ":ray_util",
  1660. "@com_google_googletest//:gtest_main",
  1661. ],
  1662. )
  1663. flatbuffer_cc_library(
  1664. name = "node_manager_fbs",
  1665. srcs = ["src/ray/raylet/format/node_manager.fbs"],
  1666. flatc_args = FLATC_ARGS,
  1667. out_prefix = "ray/raylet/format/",
  1668. )
  1669. pyx_library(
  1670. name = "_raylet",
  1671. srcs = glob([
  1672. "python/ray/__init__.py",
  1673. "python/ray/_raylet.pxd",
  1674. "python/ray/_raylet.pyx",
  1675. "python/ray/includes/*.pxd",
  1676. "python/ray/includes/*.pxi",
  1677. ]),
  1678. # Export ray ABI symbols, which can then be used by _streaming.so.
  1679. # We need to dlopen this lib with RTLD_GLOBAL to use ABI in this
  1680. # shared lib, see python/ray/__init__.py.
  1681. cc_kwargs = dict(
  1682. srcs = PYX_SRCS,
  1683. copts = COPTS + PYX_COPTS,
  1684. # see https://github.com/tensorflow/tensorflow/blob/r2.1/tensorflow/lite/BUILD#L444
  1685. linkopts = select({
  1686. "@bazel_tools//src/conditions:darwin": [
  1687. "-Wl,-exported_symbols_list,$(location //:src/ray/ray_exported_symbols.lds)",
  1688. ],
  1689. "@bazel_tools//src/conditions:windows": [
  1690. ],
  1691. "//conditions:default": [
  1692. "-Wl,--version-script,$(location //:src/ray/ray_version_script.lds)",
  1693. ],
  1694. }),
  1695. linkstatic = 1,
  1696. ),
  1697. deps = [
  1698. "//:core_worker_lib",
  1699. "//:exported_streaming_internal",
  1700. "//:global_state_accessor_lib",
  1701. "//:ray_util",
  1702. "//:raylet_lib",
  1703. "//:src/ray/ray_exported_symbols.lds",
  1704. "//:src/ray/ray_version_script.lds",
  1705. "//:stats_lib",
  1706. "//src/ray/protobuf:serialization_cc_proto",
  1707. ],
  1708. )
  1709. pyx_library(
  1710. name = "_streaming",
  1711. srcs = glob([
  1712. "python/ray/streaming/_streaming.pyx",
  1713. "python/ray/__init__.py",
  1714. "python/ray/_raylet.pxd",
  1715. "python/ray/includes/*.pxd",
  1716. "python/ray/includes/*.pxi",
  1717. "python/ray/streaming/__init__.pxd",
  1718. "python/ray/streaming/includes/*.pxd",
  1719. "python/ray/streaming/includes/*.pxi",
  1720. ]),
  1721. cc_kwargs = dict(
  1722. srcs = PYX_SRCS,
  1723. copts = COPTS + PYX_COPTS,
  1724. ),
  1725. deps = [
  1726. "//streaming:streaming_lib",
  1727. ],
  1728. )
  1729. cc_binary(
  1730. name = "libcore_worker_library_java.so",
  1731. srcs = glob([
  1732. "src/ray/core_worker/lib/java/*.h",
  1733. "src/ray/core_worker/lib/java/*.cc",
  1734. ]),
  1735. copts = COPTS,
  1736. # Export ray ABI symbols, which can then be used by libstreaming_java.so. see `//:_raylet`
  1737. linkopts = select({
  1738. "@bazel_tools//src/conditions:darwin": [
  1739. "-Wl,-exported_symbols_list,$(location //:src/ray/ray_exported_symbols.lds)",
  1740. ],
  1741. "@bazel_tools//src/conditions:windows": [
  1742. ],
  1743. "//conditions:default": [
  1744. "-Wl,--version-script,$(location //:src/ray/ray_version_script.lds)",
  1745. ],
  1746. }),
  1747. linkshared = 1,
  1748. linkstatic = 1,
  1749. visibility = ["//java:__subpackages__"],
  1750. deps = [
  1751. "//:core_worker_lib",
  1752. "//:exported_streaming_internal",
  1753. "//:global_state_accessor_lib",
  1754. "//:src/ray/ray_exported_symbols.lds",
  1755. "//:src/ray/ray_version_script.lds",
  1756. "//:stats_lib",
  1757. "@bazel_tools//tools/jdk:jni",
  1758. ],
  1759. )
  1760. filegroup(
  1761. name = "python_sources",
  1762. srcs = glob([
  1763. "python/ray/*.py",
  1764. "python/ray/autoscaler/*.py",
  1765. "python/ray/autoscaler/_private/*.py",
  1766. "python/ray/autoscaler/_private/_azure/*.json",
  1767. "python/ray/autoscaler/aws/defaults.yaml",
  1768. "python/ray/autoscaler/azure/defaults.yaml",
  1769. "python/ray/autoscaler/gcp/defaults.yaml",
  1770. "python/ray/autoscaler/local/defaults.yaml",
  1771. "python/ray/cloudpickle/*.py",
  1772. "python/ray/core/__init__.py",
  1773. "python/ray/core/generated/__init__.py",
  1774. "python/ray/core/generated/ray/__init__.py",
  1775. "python/ray/core/generated/ray/protocol/__init__.py",
  1776. "python/ray/new_dashboard/**/*.py",
  1777. "python/ray/experimental/*.py",
  1778. "python/ray/util/*.py",
  1779. "python/ray/internal/*.py",
  1780. "python/ray/workers/default_worker.py",
  1781. ]),
  1782. )
  1783. alias(
  1784. name = "redis-server",
  1785. actual = select({
  1786. "@bazel_tools//src/conditions:windows": "@com_github_tporadowski_redis_bin//:redis-server.exe",
  1787. "//conditions:default": "@com_github_antirez_redis//:redis-server",
  1788. }),
  1789. visibility = ["//visibility:public"],
  1790. )
  1791. alias(
  1792. name = "redis-cli",
  1793. actual = select({
  1794. "@bazel_tools//src/conditions:windows": "@com_github_tporadowski_redis_bin//:redis-cli.exe",
  1795. "//conditions:default": "@com_github_antirez_redis//:redis-cli",
  1796. }),
  1797. visibility = ["//visibility:public"],
  1798. )
  1799. cc_library(
  1800. name = "ray_redis_module",
  1801. hdrs = [
  1802. "src/ray/gcs/redis_module/redis_string.h",
  1803. "src/ray/gcs/redis_module/redismodule.h",
  1804. ],
  1805. copts = COPTS,
  1806. strip_include_prefix = "src",
  1807. )
  1808. cc_binary(
  1809. name = "libray_redis_module.so",
  1810. srcs = [
  1811. "src/ray/gcs/redis_module/ray_redis_module.cc",
  1812. ],
  1813. copts = COPTS,
  1814. linkshared = 1,
  1815. linkstatic = 1,
  1816. visibility = ["//java:__subpackages__"],
  1817. deps = [
  1818. ":ray_common",
  1819. ":ray_redis_module",
  1820. "//src/ray/protobuf:gcs_cc_proto",
  1821. ],
  1822. )
  1823. filegroup(
  1824. name = "all_py_proto",
  1825. srcs = [
  1826. "//src/ray/protobuf:agent_manager_py_proto",
  1827. "//src/ray/protobuf:common_py_proto",
  1828. "//src/ray/protobuf:core_worker_py_proto",
  1829. "//src/ray/protobuf:event_py_proto",
  1830. "//src/ray/protobuf:gcs_py_proto",
  1831. "//src/ray/protobuf:gcs_service_py_proto",
  1832. "//src/ray/protobuf:job_agent_py_proto",
  1833. "//src/ray/protobuf:node_manager_py_proto",
  1834. "//src/ray/protobuf:ray_client_py_proto",
  1835. "//src/ray/protobuf:reporter_py_proto",
  1836. "//src/ray/protobuf:runtime_env_agent_py_proto",
  1837. ],
  1838. )
  1839. # This is a dummy test dependency that causes the python tests to be
  1840. # re-run if any of these files changes.
  1841. py_library(
  1842. name = "ray_lib",
  1843. srcs = glob(
  1844. ["python/ray/**/*.py"],
  1845. exclude = ["python/ray/tests/*.py"],
  1846. ),
  1847. visibility = ["__subpackages__"],
  1848. )
  1849. copy_to_workspace(
  1850. name = "cp_raylet_so",
  1851. srcs = ["python/ray/_raylet.so"],
  1852. dstdir = "python/ray",
  1853. )
  1854. copy_to_workspace(
  1855. name = "cp_streaming",
  1856. srcs = ["python/ray/streaming/_streaming.so"],
  1857. dstdir = "python/ray/streaming",
  1858. )
  1859. copy_to_workspace(
  1860. name = "cp_all_py_proto",
  1861. srcs = [":all_py_proto"],
  1862. dstdir = "python/ray/core/generated",
  1863. )
  1864. copy_to_workspace(
  1865. name = "cp_redis",
  1866. srcs = [
  1867. ":redis-cli",
  1868. ":redis-server",
  1869. ],
  1870. dstdir = "python/ray/core/src/ray/thirdparty/redis/src",
  1871. )
  1872. copy_to_workspace(
  1873. name = "cp_libray_redis_module",
  1874. srcs = [":libray_redis_module.so"],
  1875. dstdir = "python/ray/core/src/ray/gcs/redis_module",
  1876. )
  1877. copy_to_workspace(
  1878. name = "cp_raylet",
  1879. srcs = [":raylet"],
  1880. dstdir = "python/ray/core/src/ray/raylet",
  1881. )
  1882. copy_to_workspace(
  1883. name = "cp_gcs_server",
  1884. srcs = [":gcs_server"],
  1885. dstdir = "python/ray/core/src/ray/gcs",
  1886. )
  1887. genrule(
  1888. name = "install_py_proto",
  1889. srcs = [
  1890. ":cp_all_py_proto",
  1891. "//streaming:copy_streaming_py_proto",
  1892. ],
  1893. outs = ["install_py_proto.out"],
  1894. cmd = """
  1895. # NOTE(hchen): Protobuf doesn't allow specifying Python package name. So we use this `sed`
  1896. # command to change the import path in the generated file.
  1897. # shellcheck disable=SC2006
  1898. files=(`ls python/ray/core/generated/*_pb2*.py`)
  1899. sed -i -E 's/from src.ray.protobuf/from ./' "$${files[@]}"
  1900. sed -i -E 's/from opencensus.proto.metrics.v1 import/from . import/' "$${files[@]}"
  1901. sed -i -E 's/from opencensus.proto.resource.v1 import/from . import/' "$${files[@]}"
  1902. echo "$${PWD}" > $@
  1903. """,
  1904. local = 1,
  1905. )
  1906. genrule(
  1907. name = "ray_pkg",
  1908. srcs = [
  1909. ":cp_raylet_so",
  1910. ":cp_streaming",
  1911. ":python_sources",
  1912. ":install_py_proto",
  1913. ":cp_redis",
  1914. ":cp_libray_redis_module",
  1915. ":cp_raylet",
  1916. ":cp_gcs_server",
  1917. ],
  1918. outs = ["ray_pkg.out"],
  1919. cmd = """
  1920. if [ "$${OSTYPE-}" = "msys" ]; then
  1921. ln -P -f -- python/ray/_raylet.so python/ray/_raylet.pyd
  1922. fi
  1923. echo "$${PWD}" > $@
  1924. """,
  1925. local = 1,
  1926. )