diff --git a/BUILD.bazel b/BUILD.bazel index e0f8c835b..2f58699f4 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -338,6 +338,45 @@ pyx_library( deps = ["//:raylet_lib"] ) +cc_binary( + name = "raylet_library_java.so", + srcs = [ + "@bazel_tools//tools/jdk:current_java_runtime", + "src/ray/raylet/lib/java/org_ray_runtime_raylet_RayletClientImpl.h", + "src/ray/raylet/lib/java/org_ray_runtime_raylet_RayletClientImpl.cc", + "src/ray/id.h", + "src/ray/raylet/raylet_client.h", + "src/ray/util/logging.h" + ], + includes = [ + "src", + "external/local_jdk/include"] + select({ + "@bazel_tools//src/conditions:darwin": ["external/local_jdk/include/darwin"], + "//conditions:default": ["external/local_jdk/include/linux"] + }), + linkshared = 1, + linkstatic = 1, + deps = ["@plasma//:plasma_client", + "//:raylet_lib"], +) + +genrule( + name = "raylet-jni-darwin-compat", + srcs = [":raylet_library_java.so"], + outs = ["raylet_library_java.dylib"], + cmd = "cp $< $@", + output_to_bindir = 1, +) + +filegroup( + name = "raylet_library_java", + visibility = ["//visibility:public"], + srcs = select({ + "@bazel_tools//src/conditions:darwin": [":raylet_library_java.dylib"], + "//conditions:default": [":raylet_library_java.so"], + }) +) + flatbuffer_py_library( name = "python_gcs_fbs", srcs = [ @@ -460,7 +499,9 @@ genrule( "//:ray_redis_module", "//:raylet", "//:raylet_monitor", - "@plasma//:plasma_store_server" + "@plasma//:plasma_store_server", + "@plasma//:plasma_client_java", + "//:raylet_library_java", ], outs = ["ray_pkg"], cmd = """ @@ -476,6 +517,9 @@ genrule( mkdir -p python/ray/core/src/plasma && cp $(location @plasma//:plasma_store_server) python/ray/core/src/plasma/ && cp $(location //:raylet) python/ray/core/src/ray/raylet/ && - mv python $(location ray_pkg) - """, + mv python $(location ray_pkg) && + mkdir -p $(location ray_pkg)/java_lib && + cp $(location @plasma//:plasma_client_java) $(location ray_pkg)/java_lib && + cp $(location //:raylet_library_java) $(location ray_pkg)/java_lib + """ ) diff --git a/bazel/BUILD.plasma b/bazel/BUILD.plasma index 6a91b20a9..a8199e92c 100644 --- a/bazel/BUILD.plasma +++ b/bazel/BUILD.plasma @@ -60,6 +60,41 @@ cc_library( strip_include_prefix = "cpp/src", ) +cc_binary( + name = "plasma_client_java.so", + srcs = [ + "@bazel_tools//tools/jdk:current_java_runtime", + "cpp/src/plasma/lib/java/org_apache_arrow_plasma_PlasmaClientJNI.cc", + "cpp/src/plasma/lib/java/org_apache_arrow_plasma_PlasmaClientJNI.h" + ], + includes = [ + "cpp/src", + "../../external/local_jdk/include"] + select({ + "@bazel_tools//src/conditions:darwin": ["../../external/local_jdk/include/darwin"], + "//conditions:default": ["../../external/local_jdk/include/linux"] + }), + linkshared = 1, + linkstatic = 1, + deps = [":plasma_client"], +) + +genrule( + name = "plasma-jni-darwin-compat", + srcs = [":plasma_client_java.so"], + outs = ["plasma_client_java.dylib"], + cmd = "cp $< $@", + output_to_bindir = 1, +) + +filegroup( + name = "plasma_client_java", + visibility = ["//visibility:public"], + srcs = select({ + "@bazel_tools//src/conditions:darwin": [":plasma_client_java.dylib"], + "//conditions:default": [":plasma_client_java.so"], + }) +) + cc_library( name = "plasma_lib", hdrs = [