manzana_común

Funciones para que Starlark acceda a los elementos internos de las implementaciones de reglas de Apple.

Miembros

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Devuelve un dict de variables de entorno que se deben configurar para las acciones que necesitan ejecutar herramientas de compilación en un sistema host de Apple, como la versión de Xcode que se debe usar. Las claves son nombres de variables y los valores son sus valores correspondientes.

Parámetros

Parámetro Descripción
xcode_config obligatorio
Es un proveedor que contiene información sobre la configuración de Xcode.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Utilidades para resolver elementos de la cadena de herramientas de Apple.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

Es el constructor o la clave del proveedor de AppleDebugOutputs.

Si un destino propaga el proveedor AppleDebugOutputs, usa este como la clave con la que se recuperará. Ejemplo:

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

Es el constructor o la clave del proveedor de AppleDynamicFramework.

Si un destino propaga el proveedor AppleDynamicFramework, usa este como la clave con la que se recuperará. Ejemplo:

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

Es el constructor o la clave del proveedor de AppleExecutableBinary.

Si un destino propaga el proveedor AppleExecutableBinary, usa este como la clave con la que se recuperará. Ejemplo:

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

dotted_version

DottedVersion apple_common.dotted_version(version)

Crea una instancia nueva de DottedVersion.

Parámetros

Parámetro Descripción
version obligatorio
Es la representación de cadena de 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)

Vincula un objeto binario (potencialmente de varias arquitecturas) segmentado para plataformas de Apple. Este método comprende gran parte de la lógica de la regla apple_binary de Starlark en el dominio rules_apple y existe para ayudar en la migración de su lógica de vinculación a Starlark en rules_apple.

Esta API es altamente experimental y está sujeta a cambios en cualquier momento. Por el momento, no dependas de la estabilidad de esta función.

Parámetros

Parámetro Descripción
obligatorio
Es el contexto de la regla de Starlark.
sequence de Targets o None; El valor predeterminado es None
Una lista de Targets que se encuentran en el gráfico de dependencias del binario, pero cuyas bibliotecas no deben vincularse al binario. Este es el caso de las dependencias que se encontrarán en el tiempo de ejecución en otra imagen, como el cargador de paquetes o cualquier biblioteca o framework dinámico que cargue este archivo binario.
sequence de strings; el valor predeterminado es []
Son opciones de vinculación adicionales que se pasarán a la acción del vinculador.
sequence de Files; el valor predeterminado es []
Archivos adicionales para pasar a la acción del vinculador.
sequence de strings; el valor predeterminado es []
Son atributos adicionales solicitados que se pasarán a la acción del vinculador.
sequence de strings; el valor predeterminado es []
Son funciones adicionales inhabilitadas que se pasarán a la acción del vinculador.
El valor predeterminado es -1.
Indica si se debe incluir información de compilación en el archivo binario vinculado. Si es 1, siempre se incluye la información de compilación. Si es 0, la información de compilación siempre se excluye. Si es -1 (valor predeterminado), el comportamiento se determina con la marca --[no]stamp. Este valor debe establecerse en 0 cuando se genera el resultado ejecutable para las reglas de prueba.

struct apple_common.link_multi_arch_static_library(ctx)

Vincula una biblioteca estática (potencialmente de varias arquitecturas) que se segmenta para plataformas de Apple. Este método forma parte de la lógica de la regla apple_static_library de Starlark, en el dominio rules_apple, y existe para ayudar en la migración de su lógica de vinculación a Starlark en rules_apple.

Esta API es altamente experimental y está sujeta a cambios en cualquier momento. Por el momento, no dependas de la estabilidad de esta función.

Parámetros

Parámetro Descripción
obligatorio
Es el contexto de la regla de 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)

Crea una instancia nueva del proveedor de AppleDynamicFramework.

Parámetros

Parámetro Descripción
binary File o None; el valor predeterminado es None
Es el artefacto binario de dylib del framework dinámico.
cc_info El valor predeterminado es None
. Es un objeto CcInfo que contiene información sobre las dependencias transitivas vinculadas al archivo binario.
objc El valor predeterminado es None
. Es un ObjcProvider que contiene información sobre las dependencias transitivas vinculadas al binario.
framework_dirs depset de strings o None; el valor predeterminado es None
Son los nombres de ruta del framework que se usan como entradas de vínculos para vincular con el framework dinámico.
framework_files depset de Files o None; El valor predeterminado es None
Es el conjunto completo de artefactos que se deben incluir como entradas para vincularlos con el framework dinámico.

new_executable_binary_provider

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

Crea una instancia nueva del proveedor de AppleExecutableBinaryInfo.

Parámetros

Parámetro Descripción
binary File; o None; el valor predeterminado es None
Es el artefacto binario del ejecutable.
cc_info El valor predeterminado es None
. Es un objeto CcInfo que contiene información sobre las dependencias transitivas vinculadas al archivo binario.
objc El valor predeterminado es None
. Es un ObjcProvider que contiene información sobre las dependencias transitivas vinculadas al binario.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Crea una instancia nueva de ObjcProvider.

Parámetros

Parámetro Descripción
kwargs El valor predeterminado es {}
. Es un diccionario de argumentos.

Objc

Provider apple_common.Objc

Es el constructor o la clave del proveedor de Objc.

Si un destino propaga el proveedor Objc, usa este como la clave con la que se recuperará. Ejemplo:

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

plataforma

struct apple_common.platform

Es una estructura similar a un enum que contiene los siguientes campos correspondientes a las plataformas de Apple:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • visionos_device
  • visionos_simulator
  • watchos_device
  • watchos_simulator

Estos valores se pueden pasar a métodos que esperan una plataforma, como XcodeVersionConfig.sdk_version_for_platform.

platform_type

struct apple_common.platform_type

Es una estructura similar a un enum que contiene los siguientes campos correspondientes a los tipos de plataformas de Apple:
  • ios
  • macos
  • tvos
  • visionos
  • watchos

Estos valores se pueden pasar a métodos que esperan un tipo de plataforma, como el método multi_arch_platform del fragmento de configuración "apple".

Ejemplo:

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

Devuelve un dict de variables de entorno que se deben establecer para las acciones que compilan destinos del tipo de plataforma de Apple determinado. Por ejemplo, este diccionario contiene variables que denotan el nombre de la plataforma y la versión del SDK con los que se debe compilar. Las claves son nombres de variables y los valores son sus valores correspondientes.

Parámetros

Parámetro Descripción
xcode_config obligatorio
Es un proveedor que contiene información sobre la configuración de Xcode.
platform obligatorio
Plataforma de Apple.

XcodeProperties

Provider apple_common.XcodeProperties

Es el constructor o la clave del proveedor de XcodeVersionProperties.

Si un destino propaga el proveedor XcodeVersionProperties, usa este como la clave con la que se recuperará. Ejemplo:

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

Es el constructor o la clave del proveedor de XcodeVersionConfig.