From 509820b663661723240cd7790c45007361c3233b Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Wed, 13 Apr 2022 14:29:10 -0700 Subject: [PATCH] bazel: add mobile platform mappings As part of supporting rust in envoy and envoy mobile we have to use the newer bazel mechanisms for changing platforms. During the transition between the old version (which the android + iOS toolchains use) and the new version (used by rules_rust), we have to provide some mappings for the specific platforms. We could do this in envoy-mobile only if we'd prefer, but since there is already some mobile specific build infra in this repo I chose to put it here first. Signed-off-by: Keith Smiley --- .bazelrc | 1 + bazel/BUILD | 75 ++++++++++++++++++++++++++++++++++++++ bazel/platform_mappings | 36 ++++++++++++++++++ ci/filter_example_setup.sh | 1 + 4 files changed, 113 insertions(+) create mode 100644 bazel/platform_mappings diff --git a/.bazelrc b/.bazelrc index 33928b89c7cb..5f8123c7b344 100644 --- a/.bazelrc +++ b/.bazelrc @@ -18,6 +18,7 @@ build --incompatible_strict_action_env build --host_force_python=PY3 build --java_runtime_version=remotejdk_11 build --tool_java_runtime_version=remotejdk_11 +build --platform_mappings=bazel/platform_mappings build --enable_platform_specific_config diff --git a/bazel/BUILD b/bazel/BUILD index a5d03e3f1527..17319f4c35ef 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -637,3 +637,78 @@ json_data( load_repository_locations_spec(API_REPOSITORY_LOCATIONS_SPEC), ), ) + +platform( + name = "android_aarch64", + constraint_values = [ + "@platforms//cpu:aarch64", + "@platforms//os:android", + ], +) + +platform( + name = "android_armeabi", + constraint_values = [ + "@platforms//cpu:arm", # TODO(keith): This should be armv7 https://github.com/bazelbuild/bazel/issues/14982 + "@platforms//os:android", + ], +) + +platform( + name = "android_x86", + constraint_values = [ + "@platforms//cpu:x86_32", + "@platforms//os:android", + ], +) + +platform( + name = "android_x86_64", + constraint_values = [ + "@platforms//cpu:x86_64", + "@platforms//os:android", + ], +) + +platform( + name = "macos_x86_64", + constraint_values = [ + "@platforms//cpu:x86_64", + "@platforms//os:macos", + ], +) + +platform( + name = "macos_arm64", + constraint_values = [ + "@platforms//cpu:arm64", + "@platforms//os:macos", + ], +) + +platform( + name = "ios_x86_64_platform", # TODO(keith): Resolve duplicate name issue + constraint_values = [ + "@platforms//cpu:x86_64", + "@platforms//os:ios", + "@build_bazel_apple_support//constraints:simulator", + ], +) + +platform( + name = "ios_sim_arm64", + constraint_values = [ + "@platforms//cpu:arm64", + "@platforms//os:ios", + "@build_bazel_apple_support//constraints:simulator", + ], +) + +platform( + name = "ios_arm64_platform", # TODO(keith): Resolve duplicate name issue + constraint_values = [ + "@platforms//cpu:arm64", + "@platforms//os:ios", + "@build_bazel_apple_support//constraints:device", + ], +) diff --git a/bazel/platform_mappings b/bazel/platform_mappings new file mode 100644 index 000000000000..7d6694158a23 --- /dev/null +++ b/bazel/platform_mappings @@ -0,0 +1,36 @@ +flags: + --cpu=arm64-v8a + --crosstool_top=//external:android/crosstool + @envoy//bazel:android_aarch64 + + --cpu=armeabi-v7a + --crosstool_top=//external:android/crosstool + @envoy//bazel:android_armeabi + + --cpu=x86 + --crosstool_top=//external:android/crosstool + @envoy//bazel:android_x86 + + --cpu=x86_64 + --crosstool_top=//external:android/crosstool + @envoy//bazel:android_x86_64 + + --cpu=darwin_x86_64 + --apple_platform_type=macos + @envoy//bazel:macos_x86_64 + + --cpu=darwin_arm64 + --apple_platform_type=macos + @envoy//bazel:macos_arm64 + + --cpu=ios_x86_64 + --apple_platform_type=ios + @envoy//bazel:ios_x86_64_platform + + --cpu=ios_sim_arm64 + --apple_platform_type=ios + @envoy//bazel:ios_sim_arm64 + + --cpu=ios_arm64 + --apple_platform_type=ios + @envoy//bazel:ios_arm64_platform diff --git a/ci/filter_example_setup.sh b/ci/filter_example_setup.sh index 2447a79e41d4..bf35b4ff77f0 100644 --- a/ci/filter_example_setup.sh +++ b/ci/filter_example_setup.sh @@ -24,6 +24,7 @@ sed -e "s|{ENVOY_SRCDIR}|${ENVOY_SRCDIR}|" "${ENVOY_SRCDIR}"/ci/WORKSPACE.filter mkdir -p "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/bazel ln -sf "${ENVOY_SRCDIR}"/bazel/get_workspace_status "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/bazel/ +ln -sf "${ENVOY_SRCDIR}"/bazel/platform_mappings "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/bazel/ cp -f "${ENVOY_SRCDIR}"/.bazelrc "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/ rm -f "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/.bazelversion cp -f "${ENVOY_SRCDIR}"/.bazelversion "${ENVOY_FILTER_EXAMPLE_SRCDIR}"/