Skip to content

Commit

Permalink
Add darwin_arm64 and darwin_arm64e config_settings
Browse files Browse the repository at this point in the history
This fixes `cares` selecting wrong source (it was selecting the default
condition, which is for Linux) when building with `--cpu=darwin_arm64` or
`--cpu=darwin_arm64e`.

This also changes to using constraints instead of configuration flags to
simplify the select statement.
  • Loading branch information
thii committed Dec 1, 2020
1 parent 2dc98b1 commit f7fc8f4
Showing 1 changed file with 80 additions and 24 deletions.
104 changes: 80 additions & 24 deletions third_party/cares/cares.BUILD
Expand Up @@ -2,17 +2,36 @@ load("@bazel_skylib//rules:copy_file.bzl", "copy_file")

config_setting(
name = "darwin",
values = {"cpu": "darwin"},
constraint_values = ["@platforms//os:macos"],
)

config_setting(
name = "darwin_x86_64",
values = {"cpu": "darwin_x86_64"},
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
)

config_setting(
name = "darwin_arm64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:arm64",
],
)

config_setting(
name = "darwin_arm64e",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:arm64e",
],
)

config_setting(
name = "windows",
values = {"cpu": "x64_windows"},
constraint_values = ["@platforms//os:windows"],
)

# Android is not officially supported through C++.
Expand All @@ -26,56 +45,101 @@ config_setting(

# iOS is not officially supported through C++.
# This just helps with the build for now.
config_setting(
name = "ios",
constraint_values = ["@platforms//os:ios"],
)

config_setting(
name = "ios_x86_64",
values = {"cpu": "ios_x86_64"},
constraint_values = [
"@platforms//os:ios",
"@platforms//cpu:x86_64",
],
)

config_setting(
name = "ios_armv7",
values = {"cpu": "ios_armv7"},
constraint_values = [
"@platforms//os:ios",
"@platforms//cpu:armv7",
],
)

config_setting(
name = "ios_armv7s",
values = {"cpu": "ios_armv7s"},
constraint_values = [
"@platforms//os:ios",
"@platforms//cpu:armv7s",
],
)

config_setting(
name = "ios_arm64",
values = {"cpu": "ios_arm64"},
constraint_values = [
"@platforms//os:ios",
"@platforms//cpu:arm64",
],
)

# The following architectures are found in
# https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java
config_setting(
name = "tvos",
constraint_values = ["@platforms//os:tvos"],
)

config_setting(
name = "tvos_x86_64",
values = {"cpu": "tvos_x86_64"},
constraint_values = [
"@platforms//os:tvos",
"@platforms//cpu:x86_64",
],
)

config_setting(
name = "tvos_arm64",
values = {"cpu": "tvos_arm64"}
constraint_values = [
"@platforms//os:tvos",
"@platforms//cpu:x86_64",
],
)

config_setting(
name = "watchos",
constraint_values = ["@platforms//os:watchos"],
)

config_setting(
name = "watchos_i386",
values = {"cpu": "watchos_i386"},
constraint_values = [
"@platforms//os:watchos",
"@platforms//cpu:i386",
],
)

config_setting(
name = "watchos_x86_64",
values = {"cpu": "watchos_x86_64"}
constraint_values = [
"@platforms//os:watchos",
"@platforms//cpu:x86_64",
],
)

config_setting(
name = "watchos_armv7k",
values = {"cpu": "watchos_armv7k"},
constraint_values = [
"@platforms//os:watchos",
"@platforms//cpu:armv7k",
],
)

config_setting(
name = "watchos_arm64_32",
values = {"cpu": "watchos_arm64_32"}
constraint_values = [
"@platforms//os:watchos",
"@platforms//cpu:arm64_32",
],
)

copy_file(
Expand All @@ -87,18 +151,10 @@ copy_file(
copy_file(
name = "ares_config_h",
src = select({
":ios_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":ios_armv7": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":ios_armv7s": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":ios_arm64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":tvos_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":tvos_arm64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":watchos_i386": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":watchos_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":watchos_armv7k": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":watchos_arm64_32": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":ios": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":tvos": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":watchos": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":darwin": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":darwin_x86_64": "@com_github_grpc_grpc//third_party/cares:config_darwin/ares_config.h",
":windows": "@com_github_grpc_grpc//third_party/cares:config_windows/ares_config.h",
":android": "@com_github_grpc_grpc//third_party/cares:config_android/ares_config.h",
"//conditions:default": "@com_github_grpc_grpc//third_party/cares:config_linux/ares_config.h",
Expand Down

0 comments on commit f7fc8f4

Please sign in to comment.