Apple_common

Starlark が Apple ルール実装の内部構造にアクセスするための関数。

メンバー

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Apple ホストシステムでビルドツールを実行する必要があるアクション(使用する Xcode のバージョンなど)に設定する必要がある環境変数の dict を返します。dictキーは変数名で、値は対応する値です。

パラメータ

パラメータ 説明
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=[], stamp=-1)

Apple プラットフォームをターゲットとする(マルチアーキテクチャになる可能性がある)バイナリをリンクします。このメソッドは、Starlark の apple_binary ルールのロジックの大部分を rules_apple ドメインで構成し、そのリンクロジックを rules_apple の Starlark に移行するのを支援するために存在します。

この API はきわめて試験運用中であり、いつでも変更される可能性があります。現時点では、この関数の安定性を信頼しないでください。

パラメータ

パラメータ 説明
required
Starlark ルールのコンテキスト。
sequence of Targets; or None; default = None
バイナリの依存関係グラフには存在するが、ライブラリをバイナリにリンクすべきでない Target のリスト。これは、バンドル ローダーや、このバイナリによって読み込まれる動的ライブラリ/フレームワークなど、実行時に別のイメージで検出される依存関係の場合に該当します。
sequence of strings; default = []
リンカー アクションに渡される追加の linkopt です。
sequence of Files; default = []
リンカー アクションに渡す追加のファイル。
default = -1
リンクされたバイナリにビルド情報を含めるかどうか。1 の場合、ビルド情報が常に含まれます。0 の場合、ビルド情報は常に除外されます。-1(デフォルト)の場合、動作は --[no]stamp フラグで決まります。テストルールの実行可能出力を生成する場合は、0 に設定する必要があります。

struct apple_common.link_multi_arch_static_library(ctx)

Apple プラットフォームを対象とする(マルチアーキテクチャになる可能性がある)静的ライブラリをリンクします。このメソッドは、Starlark の apple_static_library ルールロジックの一部(rules_apple ドメイン)で構成され、そのリンクロジックを rules_apple の Starlark への移行をサポートするために存在します。

この API はきわめて試験運用中であり、いつでも変更される可能性があります。現時点では、この関数の安定性を信頼しないでください。

パラメータ

パラメータ 説明
required
Starlark ルールのコンテキスト。

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

1 つ以上の 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 バージョン「8.0」以上を使用します。

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; default = なし
動的フレームワークの dylib バイナリ アーティファクト。
cc_info default = None
CcInfo。バイナリにリンクされている推移的依存関係に関する情報が含まれます。
objc required
バイナリにリンクされている推移的依存関係に関する情報を含む ObjcProvider。
framework_dirs depset of strings; or None; default = None
動的フレームワークにリンクする目的でリンク入力として使用されるフレームワーク パス名。
framework_files depset of Files; or None; default = なし
動的フレームワークにリンクするため、入力として含める必要があるアーティファクトの完全なセット

new_executable_binary_provider

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

新しい AppleExecutableBinaryInfo プロバイダ インスタンスを作成します。

パラメータ

パラメータ 説明
binary File; or None; default = なし
実行可能ファイルのバイナリ アーティファクト。
cc_info default = None
CcInfo。バイナリにリンクされている推移的依存関係に関する情報が含まれます。
objc required
バイナリにリンクされている推移的依存関係に関する情報を含む ObjcProvider。

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

新しい ObjcProvider インスタンスを作成します。

パラメータ

パラメータ 説明
kwargs default = {}
引数の辞書。

オブジェクト

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
  • watchos_device
  • watchos_simulator

これらの値は、XcodeVersionConfig.sdk_version_for_platform など、プラットフォームを想定したメソッドに渡すことができます。

platform_type

struct apple_common.platform_type

Apple プラットフォーム タイプに対応する次のフィールドを含む列挙型のような構造体:
  • ios
  • macos
  • tvos
  • watchos

これらの値は、「apple」構成フラグメントの 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 プロバイダのコンストラクタ/キー。