manzana_común

Funciones de Starlark para acceder 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 deben configurarse para acciones que necesitan ejecutar herramientas de compilación en un sistema host de Apple, como la versión de Xcode que debe usarse. 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

El constructor/la clave para el proveedor AppleDebugOutputs.

Si un destino propaga el proveedor de AppleDebugOutputs, úsalo 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/la clave para el proveedor AppleDynamicFramework.

Si un destino propaga el proveedor de AppleDynamicFramework, úsalo 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/la clave para el proveedor AppleExecutableBinary.

Si un destino propaga el proveedor de AppleExecutableBinary, úsalo 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 de DottedVersion nueva.

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=[], stamp=-1)

Vincula un objeto binario (potencialmente de varias arquitecturas) orientado 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 altamente 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
obligatorio
El contexto de la regla de Starlark.
sequence of Targets; or None; predeterminado = Ninguno
Es una lista de los Target que se encuentran en el gráfico de dependencia del objeto binario, pero cuyas bibliotecas no deben vincularse. 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 marco de trabajo dinámico que cargue este objeto binario.
sequence of strings; predeterminado = []
Opciones de vínculo adicionales que se pasarán a la acción del vinculador.
sequence of Files; predeterminado = []
Archivos adicionales para pasar a la acción del vinculador.
valor predeterminado = -1
Indica si se debe incluir información de compilación en el objeto binario vinculado. Si es 1, siempre se incluye la información de la compilación. Si es 0, siempre se excluye la información de la compilación. Si es -1 (el valor predeterminado), el comportamiento se determina a través de la marca --[no]stamp. Se debe establecer en 0 cuando se genere el resultado ejecutable de las reglas de prueba.

struct apple_common.link_multi_arch_static_library(ctx)

Vincula una biblioteca estática (potencialmente multiarquitectónica) orientada a plataformas de Apple. Este método comprende una 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. No dependas de la estabilidad de esta función en este momento.

Parámetros

Parámetro Descripción
obligatorio
El contexto de la regla de Starlark.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

Una transición de configuración para que los atributos de las reglas creen dependencias en una o más plataformas de Apple.

El uso de esta transición requiere que el campo 'platform_type' y "minimum_os_version" los atributos de cadena están definidos y son obligatorios en la regla.

El valor del atributo platform_type dictará las arquitecturas de destino para las que se compilarán las dependencias a lo largo de esta transición de configuración.

Las opciones son las siguientes:

  • ios: Arquitecturas recopiladas de --ios_multi_cpus
  • macos: Arquitecturas recopiladas de --macos_cpus
  • tvos: Arquitecturas recopiladas de --tvos_cpus
  • watchos: Arquitecturas recopiladas de --watchos_cpus

El campo de versión_mínimo_os_version debe ser una cadena de versión con puntos, como "7.3", y se usa para establecer el sistema operativo mínimo en la configuración de manera similar según el tipo de plataforma. Por ejemplo, si especificas platform_type 'ios' yminimum_os_version '8.0' garantizará que las dependencias se compilen con la versión mínima de 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)

Crea una instancia nueva del proveedor de AppleDynamicFramework.

Parámetros

Parámetro Descripción
binary File; or None; predeterminado = Ninguno
El artefacto binario dylib del framework dinámico.
cc_info valor predeterminado = Ninguno
Es un CcInfo que contiene información sobre las dependencias transitivas vinculadas al objeto binario.
objc obligatorio
Un ObjcProvider que contiene información sobre las dependencias transitivas vinculadas al objeto binario.
framework_dirs depset of strings; or None; predeterminado = Ninguno
Los nombres de ruta de acceso del framework que se usan como entradas de vínculo para vincularlos con el framework dinámico.
framework_files depset of Files; or None; predeterminado = Ninguno
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)

Crea una instancia nueva del proveedor AppleExecutableBinaryInfo.

Parámetros

Parámetro Descripción
binary File; or None; predeterminado = Ninguno
El artefacto binario del ejecutable.
cc_info valor predeterminado = Ninguno
Es un CcInfo que contiene información sobre las dependencias transitivas vinculadas al objeto binario.
objc obligatorio
Un 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 nueva de ObjcProvider.

Parámetros

Parámetro Descripción
kwargs default = {}
Diccionario de argumentos.

Objc

Provider apple_common.Objc

El constructor/la clave para el proveedor Objc.

Si un destino propaga el proveedor de Objc, úsalo 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

Un struct similar a una enumeración que contiene los siguientes campos correspondientes a las plataformas de Apple:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_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

Un struct similar a una enumeración que contiene los siguientes campos correspondientes a los tipos de plataformas de Apple:
  • ios
  • macos
  • tvos
  • watchos

Estos valores pueden pasarse a métodos que esperan un tipo de plataforma, como “manzana” multi_arch_platform del fragmento de configuración.

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 las acciones que compilan destinos de un 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 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
La plataforma de la manzana.

XcodeProperties

Provider apple_common.XcodeProperties

El constructor/la clave para el proveedor XcodeVersionProperties.

Si un destino propaga el proveedor de XcodeVersionProperties, úsalo 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/la clave para el proveedor XcodeVersionConfig.