From e660bd730ab62f2649090f493474331019e513ad 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 33928b89c7cbf..5f8123c7b3442 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 a5d03e3f15271..17319f4c35ef2 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 0000000000000..7d6694158a238 --- /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 2447a79e41d4d..bf35b4ff77f00 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}"/