xref: /aosp_15_r20/external/cronet/third_party/protobuf/protobuf_release.bzl (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker"""
2*6777b538SAndroid Build Coastguard WorkerGenerates package naming variables for use with rules_pkg.
3*6777b538SAndroid Build Coastguard Worker"""
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerload("@rules_pkg//:providers.bzl", "PackageVariablesInfo")
6*6777b538SAndroid Build Coastguard Workerload("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
7*6777b538SAndroid Build Coastguard Workerload(":protobuf_version.bzl", "PROTOC_VERSION")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Workerdef _package_naming_impl(ctx):
10*6777b538SAndroid Build Coastguard Worker  values = {}
11*6777b538SAndroid Build Coastguard Worker  values["version"] = PROTOC_VERSION
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker  # infer from the current cpp toolchain.
14*6777b538SAndroid Build Coastguard Worker  toolchain = find_cpp_toolchain(ctx)
15*6777b538SAndroid Build Coastguard Worker  cpu = toolchain.cpu
16*6777b538SAndroid Build Coastguard Worker  system_name = toolchain.target_gnu_system_name
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker  # rename cpus to match what we want artifacts to be
19*6777b538SAndroid Build Coastguard Worker  if cpu == "systemz":
20*6777b538SAndroid Build Coastguard Worker    cpu = "s390_64"
21*6777b538SAndroid Build Coastguard Worker  elif cpu == "aarch64":
22*6777b538SAndroid Build Coastguard Worker    cpu = "aarch_64"
23*6777b538SAndroid Build Coastguard Worker  elif cpu == "ppc64":
24*6777b538SAndroid Build Coastguard Worker    cpu = "ppcle_64"
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker  # use the system name to determine the os and then create platform names
27*6777b538SAndroid Build Coastguard Worker  if "apple" in system_name:
28*6777b538SAndroid Build Coastguard Worker    values["platform"] = "osx-" + cpu
29*6777b538SAndroid Build Coastguard Worker  elif "linux" in system_name:
30*6777b538SAndroid Build Coastguard Worker    values["platform"] = "linux-" + cpu
31*6777b538SAndroid Build Coastguard Worker  elif "mingw" in system_name:
32*6777b538SAndroid Build Coastguard Worker    if cpu == "x86_64":
33*6777b538SAndroid Build Coastguard Worker      values["platform"] = "win64"
34*6777b538SAndroid Build Coastguard Worker    else:
35*6777b538SAndroid Build Coastguard Worker      values["platform"] = "win32"
36*6777b538SAndroid Build Coastguard Worker  else:
37*6777b538SAndroid Build Coastguard Worker    values["platform"] = "unknown"
38*6777b538SAndroid Build Coastguard Worker
39*6777b538SAndroid Build Coastguard Worker  return PackageVariablesInfo(values = values)
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard Workerpackage_naming = rule(
43*6777b538SAndroid Build Coastguard Worker  implementation = _package_naming_impl,
44*6777b538SAndroid Build Coastguard Worker    attrs = {
45*6777b538SAndroid Build Coastguard Worker      # Necessary data dependency for find_cpp_toolchain.
46*6777b538SAndroid Build Coastguard Worker      "_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
47*6777b538SAndroid Build Coastguard Worker    },
48*6777b538SAndroid Build Coastguard Worker    toolchains = ["@bazel_tools//tools/cpp:toolchain_type"],
49*6777b538SAndroid Build Coastguard Worker    incompatible_use_toolchain_transition = True,
50*6777b538SAndroid Build Coastguard Worker)
51