| """A rule to textually replace {{VERSION}} with the Rust release version in files.""" |
| |
| load("//:protobuf_version.bzl", "PROTOBUF_RUST_VERSION") |
| |
| # Temporarily append a -release suffix to non-RC versions until we consider the |
| # release stable. Since "release" lexicographically comes after "rc", Cargo |
| # will understand that 4.31.0-release is newer than all 4.31.0-rc.N releases. |
| PROTOBUF_RUST_VERSION_SUFFIX = "-release" if PROTOBUF_RUST_VERSION.find("-rc") == -1 else "" |
| |
| def substitute_rust_release_version(src, out, name = None): |
| version = PROTOBUF_RUST_VERSION + PROTOBUF_RUST_VERSION_SUFFIX |
| native.genrule( |
| name = name or ("gen_%s" % out), |
| srcs = [src], |
| outs = [out], |
| cmd = "cat $(SRCS) | sed -e 's/{{VERSION}}/{0}/g' > $(OUTS)".format(version), |
| ) |