apple_common

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
Starlark 用于访问 Apple 规则实现内部函数的函数。

会员

Apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

返回应针对需要在 Apple 主机系统上运行构建工具的操作(例如应使用的 Xcode 版本)设置的环境变量字典。键是变量名称,值是相应的值。

参数

参数 说明
xcode_config 必需
包含 Xcode 配置相关信息的提供程序。

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

用于解析 Apple 工具链中的内容的实用程序。

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

AppleDebugOutputs 提供程序的构造函数/键。

如果目标传播 AppleDebugOutputs 提供程序,请将其用作检索它的键。示例:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDebugOutputs]

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

AppleDynamicFramework 提供程序的构造函数/键。

如果目标传播 AppleDynamicFramework 提供程序,请将其用作检索它的键。示例:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDynamicFramework]

AppleExecutable 二进制文件

Provider apple_common.AppleExecutableBinary

AppleExecutableBinary 提供程序的构造函数/键。

如果目标传播 AppleExecutableBinary 提供程序,请将其用作检索它的键。示例:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleExecutableBinary]

点版本

DottedVersion apple_common.dotted_version(version)

创建新的 DottedVersion 实例。

参数

参数 说明
version 必需
DottedVersion 的字符串表示。

struct apple_common.link_multi_arch_binary(ctx, avoid_deps=None, extra_linkopts=[], extra_link_inputs=[], stamp=-1)

关联一个(可能具有多个架构)的以 Apple 平台为目标的二进制文件。此方法包含 rules_apple 网域中的 Starlark apple_binary 规则的大部分逻辑,并且有助于将其链接逻辑迁移到 rules_apple 中的 Starlark。

此 API 为高度实验性的 API,随时可能更改。目前,请勿依赖此函数的稳定性。

参数

参数 说明
必需
Starlark 规则上下文。
sequence of Targets; or None;default = None
位于二进制文件的依赖关系图中的 Target 列表,但其库不应链接到二进制文件。在运行时会位于其他映像中的依赖项(例如软件包加载器或将由此二进制文件加载的任何动态库/框架)就属于这种情况。
sequence of strings;默认值为 []
要传递给链接器操作的额外 linkopts。
sequence of Files;默认值为 []
要传递给链接器操作的额外文件。
default = -1
是否在关联的二进制文件中包含 build 信息。如果为 1,则始终包含 build 信息。如果为 0,则始终排除 build 信息。如果为 -1(默认值),则此行为由 --[no]stamp 标志决定。在为测试规则生成可执行输出时,应设置为 0。

struct apple_common.link_multi_arch_static_library(ctx)

关联一个(可能为多架构)静态 Apple 平台静态库。此方法包含在 rules_apple 网域中的 Starlark apple_static_library 规则逻辑的一部分,用于协助将其链接逻辑迁移到 rules_apple 中的 Starlark。

此 API 为高度实验性的 API,随时可能更改。目前,请勿依赖此函数的稳定性。

参数

参数 说明
必需
Starlark 规则上下文。

多架构拆分

SplitTransitionProviderApi apple_common.multi_arch_split

规则属性的配置过渡,用于在一个或多个 Apple 平台中构建依赖项。

若要使用这种过渡方式,您必须为规则定义 'platform_type' 和 'minimum_os_version' 字符串属性。

platform_type 属性的值决定了将根据此配置转换构建依赖项的目标架构。

选项如下:

  • ios:从 --ios_multi_cpus 收集的架构。
  • macos:从 --macos_cpus 收集的架构。
  • tvos:从 --tvos_cpus 收集的架构。
  • watchos:从 --watchos_cpus 收集的架构。

minimum_os_version 应为点号版本字符串,如 '7.3',用于类似地根据平台类型在配置上设置最低操作系统。例如,指定 platform_type 'ios' 和 minimum_os_version '8.0' 将可确保使用最低 iOS 版本构建依赖项。

new_dynamic_framework_provider

AppleDynamicFramework apple_common.new_dynamic_framework_provider(binary=None, cc_info=None, objc, framework_dirs=None, framework_files=None)

创建新的 AppleDynamicFramework 提供程序实例。

参数

参数 说明
binary File; or None;默认值为默认值“无”
动态框架的 dylib 二进制文件工件。
cc_info default = None
CcInfo,包含与二进制文件相关联的传递依赖项相关的信息。
objc 必需
一个 ObjcProvider,其中包含链接到二进制文件的传递依赖项的相关信息。
framework_dirs depset of strings; or None;默认值 = None
用作链接输入以链接到动态框架的框架路径名称。
framework_files depset of Files; or None;默认值 = None
应添加为输入以链接到动态框架的完整工件集

new_executable_binary_provider

AppleExecutableBinary apple_common.new_executable_binary_provider(binary=None, cc_info=None, objc)

创建新的 AppleExecutableBinaryInfo 提供程序实例。

参数

参数 说明
binary File; or None;默认值 = None
可执行文件的二进制文件。
cc_info default = None
CcInfo,包含与二进制文件相关联的传递依赖项相关的信息。
objc 必需
一个 ObjcProvider,其中包含链接到二进制文件的传递依赖项的相关信息。

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

创建新的 ObjcProvider 实例。

参数

参数 说明
kwargs default = {}
参数字典。

OBJC

Provider apple_common.Objc

Objc 提供程序的构造函数/键。

如果目标传播 Objc 提供程序,请将其用作检索它的键。示例:

dep = ctx.attr.deps[0]
p = dep[apple_common.Objc]

平台

struct apple_common.platform

类似于枚举的 struct,其中包含与 Apple 平台对应的以下字段:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

这些值可以传递给需要平台的方法,例如 XcodeVersionConfig.sdk_version_for_platform

平台类型

struct apple_common.platform_type

类似于 Enum 的结构体,其中包含以下与 Apple 平台类型对应的字段:
  • ios
  • macos
  • tvos
  • watchos

这些值可以传递给需要平台类型的方法,例如“配置”片段的 multi_arch_platform 方法。

示例:

ctx.fragments.apple.multi_arch_platform(apple_common.platform_type.ios)

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

返回应针对构建给定 Apple 平台类型的目标的操作设置的环境变量的 dict。例如,此字典包含表示平台名称和 SDK 版本的构建变量。键是变量名称,值是相应的值。

参数

参数 说明
xcode_config 必需
包含 Xcode 配置相关信息的提供程序。
platform 必需
Apple 平台。

Xcode 属性

Provider apple_common.XcodeProperties

XcodeVersionProperties 提供程序的构造函数/键。

如果目标传播 XcodeVersionProperties 提供程序,请将其用作检索它的键。示例:

dep = ctx.attr.deps[0]
p = dep[apple_common.XcodeVersionProperties]

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

XcodeVersionConfig 提供程序的构造函数/键。