Skip to content

Commit

Permalink
Simplify prerequisites / nix families addition
Browse files Browse the repository at this point in the history
  • Loading branch information
jerrymarino committed Jul 21, 2023
1 parent ac4c742 commit 9523862
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions rules/framework.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ load("@build_bazel_rules_apple//apple/internal:resource_actions.bzl", "resource_
load("@build_bazel_rules_apple//apple/internal:resources.bzl", "resources")
load("@build_bazel_rules_apple//apple/internal:rule_support.bzl", "rule_support")
load("@build_bazel_rules_apple//apple/internal:apple_toolchains.bzl", "AppleMacToolsToolchainInfo", "AppleXPlatToolsToolchainInfo")
load("@build_bazel_rules_apple//apple/internal:swift_support.bzl", "swift_support")
load("@build_bazel_rules_apple//apple/internal/utils:clang_rt_dylibs.bzl", "clang_rt_dylibs")
load("@build_bazel_rules_apple//apple:providers.bzl", "AppleBundleInfo", "IosFrameworkBundleInfo")
load("@build_bazel_rules_swift//swift:swift.bzl", "SwiftInfo", "swift_clang_module_aspect", "swift_common")
Expand Down Expand Up @@ -596,19 +597,7 @@ def _merge_root_infoplists(ctx):
output_plist = output_plist,
output_pkginfo = None,
output_discriminator = "framework",
platform_prerequisites = platform_support.platform_prerequisites(
apple_fragment = ctx.fragments.apple,
config_vars = ctx.var,
device_families = rule_descriptor.allowed_device_families,
explicit_minimum_os = None,
explicit_minimum_deployment_os = None,
objc_fragment = None,
platform_type_string = platform_type,
uses_swift = False,
xcode_version_config = ctx.attr._xcode_config[apple_common.XcodeVersionConfig],
disabled_features = [],
features = [],
),
platform_prerequisites = _platform_prerequisites(ctx, rule_descriptor, platform_type),
resolved_plisttool = apple_mac_toolchain_info.resolved_plisttool,
rule_descriptor = rule_descriptor,
rule_label = ctx.label,
Expand All @@ -625,6 +614,26 @@ def _attrs_for_split_slice(attrs_by_split_slices, split_slice_key):
else:
return attrs_by_split_slices[split_slice_key]

def _platform_prerequisites(ctx, rule_descriptor, platform_type):
# Consider plumbing this in
deps = getattr(ctx.attr, "deps", None)
uses_swift = swift_support.uses_swift(deps) if deps else False

return platform_support.platform_prerequisites(
apple_fragment = ctx.fragments.apple,
config_vars = ctx.var,
cpp_fragment = ctx.fragments.cpp,
device_families = rule_descriptor.allowed_device_families,
disabled_features = ctx.disabled_features,
explicit_minimum_deployment_os = ctx.attr.minimum_deployment_os_version,
explicit_minimum_os = ctx.attr.minimum_os_version,
features = ctx.features,
objc_fragment = ctx.fragments.objc,
platform_type_string = platform_type,
uses_swift = uses_swift,
xcode_version_config = ctx.attr._xcode_config[apple_common.XcodeVersionConfig],
)

def _bundle_dynamic_framework(ctx, is_extension_safe, avoid_deps):
"""Packages this as dynamic framework
Expand Down Expand Up @@ -655,7 +664,6 @@ def _bundle_dynamic_framework(ctx, is_extension_safe, avoid_deps):
unsupported_features = ctx.disabled_features,
)
label = ctx.label
platform_prerequisites = platform_support.platform_prerequisites_from_rule_ctx(ctx)

# This file is used as part of the rules_apple bundling logic
archive = actions.declare_file(ctx.attr.name + ".framework.zip")
Expand All @@ -666,6 +674,7 @@ def _bundle_dynamic_framework(ctx, is_extension_safe, avoid_deps):
current_apple_platform = transition_support.current_apple_platform(apple_fragment = ctx.fragments.apple, xcode_config = ctx.attr._xcode_config)
platform_type = str(current_apple_platform.platform.platform_type)
rule_descriptor = rule_support.rule_descriptor_no_ctx(platform_type, apple_product_type.framework)
platform_prerequisites = _platform_prerequisites(ctx, rule_descriptor, platform_type)
signed_frameworks = []
if provisioning_profile:
signed_frameworks = [
Expand Down Expand Up @@ -1241,13 +1250,6 @@ the framework as a dependency.""",
mandatory = False,
doc =
"""Internal - currently rules_ios the dict `platforms`
""",
),
"families": attr.string_list(
mandatory = False,
default = ["iphone", "ipad"],
doc =
"""Internal - currently rules_ios the dict `platforms`
""",
),
"minimum_deployment_os_version": attr.string(
Expand Down

0 comments on commit 9523862

Please sign in to comment.