| def internal_ruby_extension( | |
| name, | |
| extension, | |
| deps = [], | |
| **kwargs): | |
| """Bazel rule to wrap up a generated ruby extension. | |
| NOTE: the rule is only an internal workaround. The interface may change and | |
| the rule may be removed when everything is properly "Bazelified". | |
| Args: | |
| name: the name of the target. | |
| extension: the path of the extension file. | |
| deps: extra dependencies to add. | |
| **kwargs: extra arguments to forward to the genrule. | |
| """ | |
| native.genrule( | |
| name = name, | |
| srcs = deps + [ | |
| "Rakefile", | |
| ":srcs", | |
| ":test_ruby_protos", | |
| ":tests", | |
| "@utf8_range//:utf8_range_srcs", | |
| ], | |
| tags = ["manual"], | |
| outs = [extension], | |
| cmd = "pushd `dirname $(location Rakefile)`\n" + | |
| "BAZEL=true rake\n" + | |
| "popd\n" + | |
| "cp `dirname $(location Rakefile)`/%s $(OUTS)\n" % extension, | |
| **kwargs | |
| ) |