Skip to content

Commit 2cdb0dc

Browse files
authored
Migrate all usage of ctx.fragments.apple.single_arch_platform(...) to platform constraints (#2858)
Required for Bazel 9+
1 parent 300ac2a commit 2cdb0dc

File tree

5 files changed

+55
-5
lines changed

5 files changed

+55
-5
lines changed

apple/internal/BUILD

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,10 @@ bzl_library(
850850
],
851851
deps = [
852852
"//apple:providers",
853+
"//apple/internal:apple_toolchains",
854+
"//apple/internal:features_support",
855+
"//apple/internal:platform_support",
856+
"//apple/internal:swift_support",
853857
"//apple/internal/aspects:docc_archive_aspect",
854858
"@bazel_skylib//lib:dicts",
855859
"@build_bazel_apple_support//lib:apple_support",

apple/internal/docc.bzl

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,27 @@ load(
2727
"DocCBundleInfo",
2828
"DocCSymbolGraphsInfo",
2929
)
30+
load(
31+
"//apple/internal:apple_toolchains.bzl",
32+
"AppleXPlatToolsToolchainInfo",
33+
"apple_toolchain_utils",
34+
)
35+
load(
36+
"//apple/internal:features_support.bzl",
37+
"features_support",
38+
)
39+
load(
40+
"//apple/internal:platform_support.bzl",
41+
"platform_support",
42+
)
3043
load(
3144
"//apple/internal:providers.bzl",
3245
"new_applebinaryinfo",
3346
)
47+
load(
48+
"//apple/internal:swift_support.bzl",
49+
"swift_support",
50+
)
3451
load(
3552
"//apple/internal/aspects:docc_archive_aspect.bzl",
3653
"docc_bundle_info_aspect",
@@ -42,23 +59,44 @@ def _docc_archive_impl(ctx):
4259
"""
4360

4461
apple_fragment = ctx.fragments.apple
62+
apple_xplat_toolchain_info = ctx.attr._xplat_toolchain[AppleXPlatToolsToolchainInfo]
4563
default_code_listing_language = ctx.attr.default_code_listing_language
4664
diagnostic_level = ctx.attr.diagnostic_level
4765
enable_inherited_docs = ctx.attr.enable_inherited_docs
4866
execution_requirements = {}
4967
fallback_bundle_identifier = ctx.attr.fallback_bundle_identifier
5068
fallback_bundle_version = ctx.attr.fallback_bundle_version
5169
fallback_display_name = ctx.attr.fallback_display_name
70+
features = features_support.compute_enabled_features(
71+
requested_features = ctx.features,
72+
unsupported_features = ctx.disabled_features,
73+
)
5274
hosting_base_path = ctx.attr.hosting_base_path
5375
kinds = ctx.attr.kinds
54-
platform = ctx.fragments.apple.single_arch_platform
5576
transform_for_static_hosting = ctx.attr.transform_for_static_hosting
5677
xcode_config = ctx.attr._xcode_config[apple_common.XcodeVersionConfig]
5778
dep = ctx.attr.dep
5879
symbol_graphs_info = None
5980
docc_bundle_info = None
6081
docc_build_inputs = []
6182

83+
platform_prerequisites = platform_support.platform_prerequisites(
84+
apple_fragment = ctx.fragments.apple,
85+
apple_platform_info = platform_support.apple_platform_info_from_rule_ctx(ctx),
86+
build_settings = apple_xplat_toolchain_info.build_settings,
87+
config_vars = ctx.var,
88+
cpp_fragment = ctx.fragments.cpp,
89+
device_families = None,
90+
explicit_minimum_deployment_os = None,
91+
explicit_minimum_os = None,
92+
features = features,
93+
objc_fragment = ctx.fragments.objc,
94+
uses_swift = swift_support.uses_swift([ctx.attr.dep]),
95+
xcode_version_config = ctx.attr._xcode_config[apple_common.XcodeVersionConfig],
96+
)
97+
98+
platform = platform_prerequisites.platform
99+
62100
if DocCSymbolGraphsInfo in dep:
63101
symbol_graphs_info = dep[DocCSymbolGraphsInfo]
64102
if DocCBundleInfo in dep:
@@ -167,7 +205,11 @@ def _docc_archive_impl(ctx):
167205

168206
docc_archive = rule(
169207
implementation = _docc_archive_impl,
170-
fragments = ["apple"],
208+
fragments = [
209+
"apple",
210+
"cpp",
211+
"objc",
212+
],
171213
doc = """
172214
Builds a .doccarchive for the given dependency.
173215
The target created by this rule can also be `run` to preview the generated documentation in Xcode.
@@ -189,6 +231,8 @@ docc_archive(
189231
```""",
190232
attrs = dicts.add(
191233
apple_support.action_required_attrs(),
234+
apple_support.platform_constraint_attrs(),
235+
apple_toolchain_utils.shared_attrs(),
192236
{
193237
"dep": attr.label(
194238
aspects = [

apple/internal/resource_actions/metals.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _metal_apple_target_triple(platform_prerequisites):
3333
"""
3434
target_os_version = platform_prerequisites.minimum_os
3535

36-
platform = platform_prerequisites.apple_fragment.single_arch_platform
36+
platform = platform_prerequisites.platform
3737
platform_string = str(platform.platform_type)
3838
if platform_string == "macos":
3939
platform_string = "macosx"

apple/internal/resource_rules/apple_metal_library.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def _metal_apple_target_triple(platform_prerequisites):
5151
"""
5252
target_os_version = platform_prerequisites.minimum_os
5353

54-
platform = platform_prerequisites.apple_fragment.single_arch_platform
54+
platform = platform_prerequisites.platform
5555
platform_string = str(platform.platform_type)
5656
if platform_string == "macos":
5757
platform_string = "macosx"

apple/internal/resource_rules/apple_precompiled_resource_bundle.bzl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@ def _apple_precompiled_resource_bundle_impl(ctx):
7575
owner = str(label)
7676
bucketize_args = {}
7777

78+
platform_info = platform_support.apple_platform_info_from_rule_ctx(ctx)
79+
7880
rule_descriptor = rule_support.rule_descriptor(
79-
platform_type = str(ctx.fragments.apple.single_arch_platform.platform_type),
81+
platform_type = platform_info.target_os,
8082
product_type = apple_product_type.application,
8183
)
8284

0 commit comments

Comments
 (0)