0
Files
Stephanie DiBenedetto 0768cc9f18 Fix path for rules_pkg providers.bzl load
We use PackageVariablesInfo from rules_pkg for versioning. The
previous change bumped the version of our rules_pkg dependency and it
looks like that moved the declaring providers.bzl file change to a
`pkg/` subdir.

This broke our Windows builds/release automation since they use
//:dist_zip. We did not catch this during PR testing because we just
do `npm test`.
2025-03-18 20:23:20 -07:00

56 lines
1.7 KiB
Python

"""Generates package naming variables for use with rules_pkg."""
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
load("@rules_pkg//pkg:providers.bzl", "PackageVariablesInfo")
_PROTOBUF_JAVASCRIPT_VERSION = "3.21.4"
def _package_naming_impl(ctx):
values = {}
values["version"] = _PROTOBUF_JAVASCRIPT_VERSION
if ctx.attr.platform != "":
values["platform"] = ctx.attr.platform
return PackageVariablesInfo(values = values)
# infer from the current cpp toolchain.
toolchain = find_cpp_toolchain(ctx)
cpu = toolchain.cpu
system_name = toolchain.target_gnu_system_name
# rename cpus to match what we want artifacts to be
if cpu == "systemz":
cpu = "s390_64"
elif cpu == "aarch64":
cpu = "aarch_64"
elif cpu == "ppc64":
cpu = "ppcle_64"
# use the system name to determine the os and then create platform names
if "apple" in system_name:
values["platform"] = "osx-" + cpu
elif "linux" in system_name:
values["platform"] = "linux-" + cpu
elif "mingw" in system_name:
if cpu == "x86_64":
values["platform"] = "win64"
else:
values["platform"] = "win32"
else:
values["platform"] = "unknown"
return PackageVariablesInfo(values = values)
package_naming = rule(
implementation = _package_naming_impl,
attrs = {
# Necessary data dependency for find_cpp_toolchain.
"_cc_toolchain": attr.label(
default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
),
"platform": attr.string(),
},
toolchains = ["@bazel_tools//tools/cpp:toolchain_type"],
incompatible_use_toolchain_transition = True,
)