|  | load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") | 
|  | load("@rules_ruby//ruby:defs.bzl", "ruby_library") | 
|  |  | 
|  | config_setting( | 
|  | name = "requires_bundle", | 
|  | constraint_values = ["@platforms//os:osx"], | 
|  | ) | 
|  |  | 
|  | cc_binary( | 
|  | name = "protobuf_c.so", | 
|  | deps = ["//ruby/ext/google/protobuf_c"], | 
|  | linkshared = 1, | 
|  | tags = ["manual"], | 
|  | ) | 
|  |  | 
|  | # Move the bundle to the location expected by our Ruby files. | 
|  | genrule( | 
|  | name = "copy_bundle", | 
|  | srcs = ["//ruby/ext/google/protobuf_c:bundle"], | 
|  | outs = ["protobuf_c.bundle"], | 
|  | cmd = "cp $< $@", | 
|  | tags = ["manual"], | 
|  | ) | 
|  |  | 
|  | java_binary( | 
|  | name = "protobuf_java_bin", | 
|  | runtime_deps = [ | 
|  | "//ruby/src/main/java:protobuf_java" | 
|  | ], | 
|  | deploy_env = ["@rules_ruby//ruby/runtime:jruby_binary"], | 
|  | create_executable = False, | 
|  | ) | 
|  |  | 
|  | # Move the jar to the location expected by our Ruby files. | 
|  | genrule( | 
|  | name = "copy_jar", | 
|  | srcs = ["protobuf_java_bin_deploy.jar"], | 
|  | outs = ["protobuf_java.jar"], | 
|  | cmd = "cp $< $@", | 
|  | tags = ["manual"], | 
|  | visibility = ["//ruby:__subpackages__"], | 
|  | ) | 
|  |  | 
|  | ruby_library( | 
|  | name = "protobuf_lib", | 
|  | srcs = glob([ | 
|  | "**/*.rb", | 
|  | ]), | 
|  | deps = ["//:well_known_ruby_protos"], | 
|  | includes = ["ruby/lib"], | 
|  | data = select({ | 
|  | "@rules_ruby//ruby/runtime:config_jruby": ["protobuf_java.jar"], | 
|  | "@platforms//os:osx": ["protobuf_c.bundle"], | 
|  | "//conditions:default": ["protobuf_c.so"], | 
|  | }), | 
|  | visibility = ["//ruby:__pkg__"], | 
|  | ) | 
|  |  | 
|  | pkg_files( | 
|  | name = "dist_files", | 
|  | srcs = glob(["**/*.rb"]), | 
|  | strip_prefix = strip_prefix.from_root(""), | 
|  | visibility = ["//ruby:__pkg__"], | 
|  | ) |