manzana_común

Informar un problema Ver fuente

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

Miembros

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Muestra un dict de variables de entorno que se deben configurar para 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
Un proveedor que contiene información sobre la configuración de Xcode.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Utilidades para resolver elementos del conjunto de herramientas de Apple.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

El constructor o la clave para el proveedor AppleDebugOutputs

Si un destino propaga el proveedor AppleDebugOutputs, usa esta información como la clave con la que lo recuperarás. Ejemplo:

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

El constructor o la clave para el proveedor AppleDynamicFramework

Si un destino propaga el proveedor AppleDynamicFramework, usa esta información como la clave con la que lo recuperarás. Ejemplo:

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

El constructor o la clave para el proveedor AppleExecutableBinary

Si un destino propaga el proveedor AppleExecutableBinary, usa esta información como la clave con la que lo recuperarás. Ejemplo:

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

dotted_version

DottedVersion apple_common.dotted_version(version)

Crea una instancia DottedVersion nueva.

Parámetros

Parámetro Descripción
version required
Es la representación de string 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 (posiblemente con varias arquitecturas) que se orienta a las plataformas de Apple. Este método comprende la mayor 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 muy experimental y está sujeta a cambios en cualquier momento. No dependas de la estabilidad de esta función en este momento.

Parámetros

Parámetro Descripción
required
El contexto de la regla de Starlark.
secuencia de objetos Target; o None; valor predeterminado es None
Lista de objetos Target que se encuentran en el gráfico de dependencias del objeto binario, pero cuyas bibliotecas no deberían estar vinculadas a este. Este es el caso de las dependencias que se encontrarán en el entorno de ejecución en otra imagen, como el cargador de paquetes o cualquier biblioteca o framework dinámico que cargue este objeto binario.
secuencia de strings; el valor predeterminado es []
Linkopts adicionales que se pasarán a la acción del vinculador.
secuencia de objetos File; el valor predeterminado es []
Archivos adicionales para pasar a la acción del vinculador.
secuencia de strings; el valor predeterminado es []
Son los atributos adicionales solicitados que se pasarán a la acción del vinculador.
secuencia de strings; el valor predeterminado es []
Funciones adicionales inhabilitadas que se pasarán a la acción del vinculador.
el valor predeterminado es -1
Especifica si se debe incluir información de compilación en el objeto binario vinculado. Si es 1, siempre se incluye información de compilación. Si es 0, la información de compilación siempre se excluye. Si es -1 (el valor predeterminado), el comportamiento se determina mediante la marca --[no]stamp. Se debe configurar en 0 cuando se genera el resultado ejecutable de las reglas de prueba.

struct apple_common.link_multi_arch_static_library(ctx)

Vincula una biblioteca estática (posiblemente multiarquitectónica) orientada a las plataformas de Apple. Este método forma parte de la lógica de reglas 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 muy experimental y está sujeta a cambios en cualquier momento. No dependas de la estabilidad de esta función en este momento.

Parámetros

Parámetro Descripción
required
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 nueva instancia del proveedor de AppleDynamicFramework.

Parámetros

Parámetro Descripción
binary File o None; el valor predeterminado es None
El artefacto binario dylib del framework dinámico.
cc_info el valor predeterminado es None
Es una CcInfo que contiene información sobre las dependencias transitivas vinculadas al objeto binario.
objc el valor predeterminado es None
Es un objeto ObjcProvider que contiene información sobre las dependencias transitivas vinculadas al objeto binario.
framework_dirs depset de strings; o None; el valor predeterminado es None
Los nombres de la ruta del framework que se usan como entradas de vínculo para vincular con el framework dinámico.
framework_files depset de Files o None; el valor predeterminado es None
El conjunto completo de artefactos que se deben incluir como entradas para vincular 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 AppleExecutableBinaryInfo.

Parámetros

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

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Crea una instancia de ObjcProvider nueva.

Parámetros

Parámetro Descripción
kwargs la opción predeterminada es {}
Diccionario de argumentos.

Objc

Provider apple_common.Objc

El constructor o la clave para el proveedor Objc

Si un destino propaga el proveedor Objc, usa esta información como la clave con la que lo recuperarás. Ejemplo:

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

plataforma

struct apple_common.platform

Una struct de tipo 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

Una struct de tipo 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)

Muestra un dict de variables de entorno que se deben configurar para acciones que compilan objetivos 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 las 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
Un proveedor que contiene información sobre la configuración de Xcode.
platform obligatorio
La plataforma de Apple.

XcodeProperties

Provider apple_common.XcodeProperties

El constructor o la clave para el proveedor XcodeVersionProperties

Si un destino propaga el proveedor XcodeVersionProperties, usa esta información como la clave con la que lo recuperarás. Ejemplo:

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

El constructor o la clave para el proveedor XcodeVersionConfig