apple_common

报告问题 查看源代码

Starlark 用于访问 apple 规则实现的内部构件的函数。

成员

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

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

参数

参数 说明
xcode_config required
包含 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]

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

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

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

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

dotted_version

DottedVersion apple_common.dotted_version(version)

创建新的 DottedVersion 实例。

参数

参数 说明
version required
DottedVersion 的字符串表示法。

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

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

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

参数

参数 说明
required
Starlark 规则上下文。
Target 的序列;或 None;默认值为 None
Target 列表,位于二进制文件的依赖关系图中,但其库不应链接到二进制文件。在运行时在另一个映像(例如软件包加载器或此二进制文件将加载的任何动态库/框架)中找到的依赖项就属于这种情况。
stringsequence;默认值为 []
要传递给链接器操作的额外 linkopt。
Filesequence;默认值为 []
要传递给链接器操作的额外文件。
stringsequence;默认值为 []
要传递给链接器操作的额外请求的功能。
序列中的字符串;默认值为[]
要传递给链接器操作的额外停用功能。
默认值为 -1
是否在链接的二进制文件中包含版本信息。如果为 1,则始终包含 build 信息。如果为 0,则始终排除版本信息。如果为 -1(默认值),则行为由 --[no]stamp 标记确定。在为测试规则生成可执行输出时,应将此值设为 0。

struct apple_common.link_multi_arch_static_library(ctx)

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

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

参数

参数 说明
required
Starlark 规则上下文。

new_dynamic_framework_provider

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

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

参数

参数 说明
binary File;或 None;默认值为 None
动态框架的 dylib 二进制工件。
cc_info 默认为 None
一个 CcInfo,包含链接到二进制文件的传递依赖项的相关信息。
objc 默认值为 None
一个 ObjcProvider,其中包含有关链接到二进制文件的传递依赖项的信息。
framework_dirs stringdepset;或 None;默认值为 None
框架路径名称,用作链接输入以便链接到动态框架。
framework_files Filedepset;或 None;默认值为 None
要链接到动态框架,应作为输入包含的整套工件

new_executable_binary_provider

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

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

参数

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

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

创建新的 ObjcProvider 实例。

参数

参数 说明
kwargs 默认值为 {}
参数字典。

对象

Provider apple_common.Objc

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

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

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

platform

struct apple_common.platform

一个类枚举结构体,其中包含与 Apple 平台相对应的以下字段:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • visionos_device
  • visionos_simulator
  • watchos_device
  • watchos_simulator

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

platform_type

struct apple_common.platform_type

一个类枚举结构体,其中包含与 Apple 平台类型对应的以下字段:
  • ios
  • macos
  • tvos
  • visionos
  • watchos

这些值可以传递给需要平台类型的方法,例如“apple”配置 fragment 的 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 required
包含 Xcode 配置相关信息的提供程序。
platform 必需
Apple 平台。

XcodeProperties

Provider apple_common.XcodeProperties

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

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

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

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