From 170104c9421b09ee809e74a37649700cf3630215 Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 30 Aug 2023 23:33:05 -0700 Subject: [PATCH 1/3] Use platforms inside Apple rules transitions This makes C++ toolchain selection work without using platform mapping for Apple rules. PiperOrigin-RevId: 561560820 --- apple/internal/transition_support.bzl | 38 ++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/apple/internal/transition_support.bzl b/apple/internal/transition_support.bzl index 80b4235af8..17254a5b8d 100644 --- a/apple/internal/transition_support.bzl +++ b/apple/internal/transition_support.bzl @@ -44,6 +44,30 @@ _PLATFORM_TYPE_TO_CPUS_FLAG = { "watchos": "//command_line_option:watchos_cpus", } +# Following map provides and ad-hoc platform mapping +# It's no longer needed once --apple_platforms is set everywhere and toolchain resolution enabled +_CPU_TO_PLATFORM = { + "darwin_x86_64": "//buildenv/platforms/apple:darwin_x86_64", + "darwin_arm64": "//buildenv/platforms/apple:darwin_arm64", + "darwin_arm64e": "//buildenv/platforms/apple:darwin_arm64e", + "ios_x86_64": "//buildenv/platforms/apple/simulator:ios_x86_64", + "ios_arm64": "//buildenv/platforms/apple:ios_arm64", + "ios_sim_arm64": "//buildenv/platforms/apple/simulator:ios_arm64", + "ios_arm64e": "//buildenv/platforms/apple:ios_arm64e", + "tvos_sim_arm64": "//buildenv/platforms/apple/simulator:tvos_arm64", + "tvos_arm64": "//buildenv/platforms/apple:tvos_arm64", + "tvos_x86_64": "//buildenv/platforms/apple/simulator:tvos_x86_64", + "visionos_arm64": "//buildenv/platforms/apple:visionos_arm64", + "visionos_sim_arm64": "//buildenv/platforms/apple/simulator:visionos_arm64", + "visionos_x86_64": "//buildenv/platforms/apple/simulator:visionos_x86_64", + "watchos_armv7k": "//buildenv/platforms/apple:watchos_armv7k", + "watchos_arm64": "//buildenv/platforms/apple/simulator:watchos_arm64", + "watchos_device_arm64": "//buildenv/platforms/apple:watchos_arm64", + "watchos_device_arm64e": "//buildenv/platforms/apple:watchos_arm64e", + "watchos_arm64_32": "//buildenv/platforms/apple:watchos_arm64_32", + "watchos_x86_64": "//buildenv/platforms/apple/simulator:watchos_x86_64", +} + def _platform_specific_cpu_setting_name(platform_type): """Returns the name of a platform-specific CPU setting. @@ -217,7 +241,11 @@ def _command_line_options( Returns: A dictionary of `"//command_line_option"`s defined for the current target. """ - + cpu = _cpu_string( + environment_arch = environment_arch, + platform_type = platform_type, + settings = settings, + ) output_dictionary = { "//command_line_option:apple configuration distinguisher": "applebin_" + platform_type, "//command_line_option:apple_platform_type": platform_type, @@ -226,17 +254,13 @@ def _command_line_options( # architecture and environment, therefore we set `environment_arch` when it is available. "//command_line_option:apple_split_cpu": environment_arch if environment_arch else "", "//command_line_option:compiler": None, - "//command_line_option:cpu": _cpu_string( - environment_arch = environment_arch, - platform_type = platform_type, - settings = settings, - ), + "//command_line_option:cpu": cpu, "//command_line_option:crosstool_top": ( settings["//command_line_option:apple_crosstool_top"] ), "//command_line_option:fission": [], "//command_line_option:grte_top": None, - "//command_line_option:platforms": [apple_platforms[0]] if apple_platforms else [], + "//command_line_option:platforms": [apple_platforms[0]] if apple_platforms else [_CPU_TO_PLATFORM[cpu]], "//command_line_option:ios_minimum_os": _min_os_version_or_none( minimum_os_version = minimum_os_version, platform = "ios", From f6ab27e3c16ebd91684f1b8627666ff19db014d7 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Thu, 31 Aug 2023 08:54:01 +0200 Subject: [PATCH 2/3] Remove platform_mappings --- README.md | 5 +- platform_mappings | 120 ---------------------------------------------- 2 files changed, 1 insertion(+), 124 deletions(-) delete mode 100644 platform_mappings diff --git a/README.md b/README.md index c561e08ca5..e1939dc312 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,8 @@ repository. ## Quick setup -1. Copy the latest `MODULE.bazel` or `WORKSPACE` snippet from [the releases +Copy the latest `MODULE.bazel` or `WORKSPACE` snippet from [the releases page](https://github.com/bazelbuild/rules_apple/releases). -2. Copy the -[`platform_mappings`](https://github.com/bazelbuild/rules_apple/blob/master/platform_mappings) -file to the root of your repo ## Examples diff --git a/platform_mappings b/platform_mappings deleted file mode 100644 index d31b6f1198..0000000000 --- a/platform_mappings +++ /dev/null @@ -1,120 +0,0 @@ -platforms: - @build_bazel_apple_support//platforms:macos_x86_64 - --cpu=darwin_x86_64 - - @build_bazel_apple_support//platforms:macos_arm64 - --cpu=darwin_arm64 - - @build_bazel_apple_support//platforms:darwin_arm64e - --cpu=darwin_arm64e - - @build_bazel_apple_support//platforms:ios_i386 - --cpu=ios_i386 - - @build_bazel_apple_support//platforms:ios_x86_64 - --cpu=ios_x86_64 - - @build_bazel_apple_support//platforms:ios_sim_arm64 - --cpu=ios_sim_arm64 - - @build_bazel_apple_support//platforms:ios_armv7 - --cpu=ios_armv7 - - @build_bazel_apple_support//platforms:ios_arm64 - --cpu=ios_arm64 - - @build_bazel_apple_support//platforms:ios_arm64e - --cpu=ios_arm64e - - @build_bazel_apple_support//platforms:tvos_x86_64 - --cpu=tvos_x86_64 - - @build_bazel_apple_support//platforms:tvos_sim_arm64 - --cpu=tvos_sim_arm64 - - @build_bazel_apple_support//platforms:tvos_arm64 - --cpu=tvos_arm64 - - @build_bazel_apple_support//platforms:watchos_i386 - --cpu=watchos_i386 - - @build_bazel_apple_support//platforms:watchos_x86_64 - --cpu=watchos_x86_64 - - @build_bazel_apple_support//platforms:watchos_arm64 - --cpu=watchos_arm64 - - @build_bazel_apple_support//platforms:watchos_armv7k - --cpu=watchos_armv7k - - @build_bazel_apple_support//platforms:watchos_arm64_32 - --cpu=watchos_arm64_32 - -flags: - --cpu=darwin_x86_64 - --apple_platform_type=macos - @build_bazel_apple_support//platforms:macos_x86_64 - - --cpu=darwin_arm64 - --apple_platform_type=macos - @build_bazel_apple_support//platforms:macos_arm64 - - --cpu=darwin_arm64e - --apple_platform_type=macos - @build_bazel_apple_support//platforms:darwin_arm64e - - --cpu=ios_i386 - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_i386 - - --cpu=ios_x86_64 - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_x86_64 - - --cpu=ios_sim_arm64 - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_sim_arm64 - - --cpu=ios_armv7 - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_armv7 - - --cpu=ios_arm64 - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_arm64 - - --cpu=ios_arm64e - --apple_platform_type=ios - @build_bazel_apple_support//platforms:ios_arm64e - - --cpu=tvos_x86_64 - --apple_platform_type=tvos - @build_bazel_apple_support//platforms:tvos_x86_64 - - --cpu=tvos_sim_arm64 - --apple_platform_type=tvos - @build_bazel_apple_support//platforms:tvos_sim_arm64 - - --cpu=tvos_arm64 - --apple_platform_type=tvos - @build_bazel_apple_support//platforms:tvos_arm64 - - --cpu=watchos_i386 - --apple_platform_type=watchos - @build_bazel_apple_support//platforms:watchos_i386 - - --cpu=watchos_x86_64 - --apple_platform_type=watchos - @build_bazel_apple_support//platforms:watchos_x86_64 - - --cpu=watchos_arm64 - --apple_platform_type=watchos - @build_bazel_apple_support//platforms:watchos_arm64 - - --cpu=watchos_armv7k - --apple_platform_type=watchos - @build_bazel_apple_support//platforms:watchos_armv7k - - --cpu=watchos_arm64_32 - --apple_platform_type=watchos - @build_bazel_apple_support//platforms:watchos_arm64_32 From 6e5dcdc7eb9d436f655a72a75f86746c81573423 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Thu, 31 Aug 2023 09:04:10 +0200 Subject: [PATCH 3/3] Fixing platform names to match ones defined in apple support --- apple/internal/transition_support.bzl | 37 +++++++++++++-------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/apple/internal/transition_support.bzl b/apple/internal/transition_support.bzl index 17254a5b8d..0f1fb79c90 100644 --- a/apple/internal/transition_support.bzl +++ b/apple/internal/transition_support.bzl @@ -47,25 +47,24 @@ _PLATFORM_TYPE_TO_CPUS_FLAG = { # Following map provides and ad-hoc platform mapping # It's no longer needed once --apple_platforms is set everywhere and toolchain resolution enabled _CPU_TO_PLATFORM = { - "darwin_x86_64": "//buildenv/platforms/apple:darwin_x86_64", - "darwin_arm64": "//buildenv/platforms/apple:darwin_arm64", - "darwin_arm64e": "//buildenv/platforms/apple:darwin_arm64e", - "ios_x86_64": "//buildenv/platforms/apple/simulator:ios_x86_64", - "ios_arm64": "//buildenv/platforms/apple:ios_arm64", - "ios_sim_arm64": "//buildenv/platforms/apple/simulator:ios_arm64", - "ios_arm64e": "//buildenv/platforms/apple:ios_arm64e", - "tvos_sim_arm64": "//buildenv/platforms/apple/simulator:tvos_arm64", - "tvos_arm64": "//buildenv/platforms/apple:tvos_arm64", - "tvos_x86_64": "//buildenv/platforms/apple/simulator:tvos_x86_64", - "visionos_arm64": "//buildenv/platforms/apple:visionos_arm64", - "visionos_sim_arm64": "//buildenv/platforms/apple/simulator:visionos_arm64", - "visionos_x86_64": "//buildenv/platforms/apple/simulator:visionos_x86_64", - "watchos_armv7k": "//buildenv/platforms/apple:watchos_armv7k", - "watchos_arm64": "//buildenv/platforms/apple/simulator:watchos_arm64", - "watchos_device_arm64": "//buildenv/platforms/apple:watchos_arm64", - "watchos_device_arm64e": "//buildenv/platforms/apple:watchos_arm64e", - "watchos_arm64_32": "//buildenv/platforms/apple:watchos_arm64_32", - "watchos_x86_64": "//buildenv/platforms/apple/simulator:watchos_x86_64", + "darwin_x86_64": "@build_bazel_apple_support//platforms:macos_x86_64", + "darwin_arm64": "@build_bazel_apple_support//platforms:macos_arm64", + "darwin_arm64e": "@build_bazel_apple_support//platforms:darwin_arm64e", + "ios_x86_64": "@build_bazel_apple_support//platforms:ios_x86_64", + "ios_arm64": "@build_bazel_apple_support//platforms:ios_arm64", + "ios_sim_arm64": "@build_bazel_apple_support//platforms:ios_sim_arm64", + "ios_arm64e": "@build_bazel_apple_support//platforms:ios_arm64e", + "tvos_sim_arm64": "@build_bazel_apple_support//platforms:tvos_sim_arm64", + "tvos_arm64": "@build_bazel_apple_support//platforms:tvos_arm64", + "tvos_x86_64": "@build_bazel_apple_support//platforms:tvos_x86_64", + "visionos_arm64": "@build_bazel_apple_support//platforms:visionos_arm64", + "visionos_sim_arm64": "@build_bazel_apple_support//platforms:visionos_sim_arm64", + "visionos_x86_64": "@build_bazel_apple_support//platforms/simulator:visionos_x86_64", + "watchos_armv7k": "@build_bazel_apple_support//platforms:watchos_armv7k", + "watchos_arm64": "@build_bazel_apple_support//platforms:watchos_arm64", + "watchos_device_arm64": "@build_bazel_apple_support//platforms:watchos_arm64", + "watchos_arm64_32": "@build_bazel_apple_support//platforms:watchos_arm64_32", + "watchos_x86_64": "@build_bazel_apple_support//platforms:watchos_x86_64", } def _platform_specific_cpu_setting_name(platform_type):