Skip to content

Commit

Permalink
bazel: add mobile platform mappings
Browse files Browse the repository at this point in the history
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 <keithbsmiley@gmail.com>
  • Loading branch information
keith committed Apr 14, 2022
1 parent 192a741 commit 509820b
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 0 deletions.
1 change: 1 addition & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
75 changes: 75 additions & 0 deletions bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
)
36 changes: 36 additions & 0 deletions bazel/platform_mappings
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions ci/filter_example_setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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}"/
Expand Down

0 comments on commit 509820b

Please sign in to comment.