Apple 一般

Starlark 用於存取 Apple 規則實作內部作業的函式。

成員

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

傳回環境變數dict,以便針對需要在 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]

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 必要
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 目前處於高度實驗階段,隨時可能變更。目前不要依賴此函式的穩定性。

參數

參數 說明
必要
Starlark 規則結構定義。
sequence of Targets; or None; default = None
Target 清單,位於二進位檔的依附元件圖表中,但其中的程式庫不應連結至二進位檔。對於執行階段中會在其他映像檔中找到的依附元件,這屬於這種情況,例如套件載入器,或是這個二進位檔將載入的任何動態程式庫/架構。
sequence of strings; default = []
要傳遞給連接器動作的額外連結選擇。
sequence of Files; 預設值 = []
要傳遞至連結器動作的額外檔案。
default = -1
指定是否在已連結的二進位檔中加入建構資訊。如果設為 1,一律會包含建構資訊。如果設為 0,則一律會排除建構資訊。如果 -1 (預設),則行為會由 --[no]戳記標記決定。為測試規則產生可執行輸出時,這個值應設為 0。

struct apple_common.link_multi_arch_static_library(ctx)

連結指定 Apple 平台的靜態資料庫 (可能為多架構)。這個方法包含在 Rules_apple 網域中的 Starlark apple_static_library 規則邏輯的一部分,旨在協助將連結邏輯遷移至 Rules_apple 中的 Starlark。

這個 API 目前處於高度實驗階段,隨時可能變更。目前不要依賴此函式的穩定性。

參數

參數 說明
必要
Starlark 規則結構定義。

multi_arch_split

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 收集的架構。

min_os_version 應為虛線版本字串,例如「7.3」,用於根據平台類型在設定上設定最低作業系統。舉例來說,如果指定 Platform_type 'ios' 和 min_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 = None
動態架構的 dylib 二進位檔構件。
cc_info default = None
CcInfo,內含連結至二進位檔的遞移依附元件相關資訊。
objc 必要
ObjcProvider,含有連結至二進位檔的遞移依附元件相關資訊。
framework_dirs depset of strings; or None; default = None
用來當做連結輸入的架構路徑名稱,以連結至動態架構。
framework_files depset of Files; or None; default = None
應納入的完整構件組合,用於連結至動態架構

new_executable_binary_provider

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

建立新的 AppleExecutableBinaryInfo 供應商執行個體。

參數

參數 說明
binary File; or None; default = 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]

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 必要
包含 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 提供者的建構函式/金鑰。