Apple_common

Funções para o Starlark acessar os internos das implementações de regras da Apple.

Membros

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Retorna um dicionário de variáveis de ambiente que precisam ser definidas para ações que precisam executar ferramentas de build em um sistema host da Apple, como a versão do Xcode que deve ser usada. As chaves são nomes de variáveis e os valores são os valores correspondentes.

Parâmetros

Parâmetro Descrição
xcode_config required
Um provedor que contém informações sobre a configuração do Xcode.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Utilitários para resolver itens da cadeia de ferramentas da Apple.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

O construtor/chave do provedor AppleDebugOutputs.

Se um destino propagar o provedor AppleDebugOutputs, use isso como a chave para recuperá-lo. Exemplo:

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

O construtor/chave do provedor AppleDynamicFramework.

Se um destino propagar o provedor AppleDynamicFramework, use isso como a chave para recuperá-lo. Exemplo:

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

O construtor/chave do provedor AppleExecutableBinary.

Se um destino propagar o provedor AppleExecutableBinary, use isso como a chave para recuperá-lo. Exemplo:

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

dotted_version

DottedVersion apple_common.dotted_version(version)

Cria uma nova instância DottedVersion.

Parâmetros

Parâmetro Descrição
version obrigatório
A representação de string do DottedVersion.

struct apple_common.link_multi_arch_binary(ctx, avoid_deps=None, extra_linkopts=[], extra_link_inputs=[], stamp=-1)

Vincula um binário (potencialmente de várias arquiteturas) que segmenta plataformas Apple. Esse método inclui a maior parte da lógica da regra apple_binary do Starlark no domínio rules_apple e existe para ajudar na migração da lógica de vinculação para o Starlark em rules_apple.

Essa API é altamente experimental e está sujeita a mudanças a qualquer momento. Não dependa da estabilidade dessa função no momento.

Parâmetros

Parâmetro Descrição
required
O contexto da regra do Starlark.
sequence of Targets; or None; default = None
Uma lista de Targets que estão no gráfico de dependência do binário, mas cujas bibliotecas não devem ser vinculadas ao binário. É o caso de dependências que serão encontradas no tempo de execução em outra imagem, como o carregador de pacotes ou qualquer biblioteca/estrutura dinâmica que será carregada por esse binário.
sequence of strings; default = []
Opções de vinculação extras a serem transmitidas para a ação do vinculador.
sequence of Files; default = []
Arquivos extras para transmitir à ação do vinculador.
default = -1
Se as informações de build devem ser incluídas no binário vinculado. Se for 1, as informações de build sempre serão incluídas. Se for 0, as informações de build serão sempre excluídas. Se for -1 (o padrão), o comportamento será determinado pela flag --[no]stamp. Esse valor precisa ser definido como 0 ao gerar a saída executável para regras de teste.

struct apple_common.link_multi_arch_static_library(ctx)

Vincula uma biblioteca estática (potencialmente de várias arquiteturas) para plataformas Apple. Esse método faz parte da lógica da regra apple_static_library do Starlark, no domínio rules_apple, e existe para ajudar na migração da lógica de vinculação para o Starlark em rules_apple.

Essa API é altamente experimental e está sujeita a mudanças a qualquer momento. Não dependa da estabilidade dessa função no momento.

Parâmetros

Parâmetro Descrição
required
O contexto da regra do Starlark.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

Uma transição de configuração para atributos de regra que criam dependências em uma ou mais plataformas da Apple.

Para usar essa transição, os atributos de string "platform_type" e "minimum_os_version" precisam ser definidos e obrigatórios na regra.

O valor do atributo "platform_type" vai determinar as arquiteturas de destino para as quais as dependências ao longo dessa transição de configuração serão criadas.

As opções são:

  • ios: arquiteturas coletadas de --ios_multi_cpus.
  • macos: arquiteturas coletadas de --macos_cpus.
  • tvos: arquiteturas coletadas de --tvos_cpus.
  • watchos: arquiteturas coletadas de --watchos_cpus.

minimum_os_version precisa ser uma string de versão com pontos, como "7.3", e é usada para definir o sistema operacional mínimo na configuração de maneira semelhante com base no tipo de plataforma. Por exemplo, especificar platform_type "ios" e minimum_os_version "8.0" garante que as dependências sejam criadas com a versão mínima do 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)

Cria uma nova instância do provedor AppleDynamicFramework.

Parâmetros

Parâmetro Descrição
binary File; or None; default = None
O artefato binário dylib do framework dinâmico.
cc_info default = None
Um CcInfo que contém informações sobre as dependências transitivas vinculadas ao binário.
objc obrigatório
Um ObjcProvider que contém informações sobre as dependências transitivas vinculadas ao binário.
framework_dirs depset of strings; or None; default = None
Os nomes de caminhos do framework usados como entradas de link para vincular ao framework dinâmico.
framework_files depset of Files; or None; default = None
O conjunto completo de artefatos que devem ser incluídos como entradas para vinculação à estrutura dinâmica.

new_executable_binary_provider

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

Cria uma nova instância do provedor AppleExecutableBinaryInfo.

Parâmetros

Parâmetro Descrição
binary File; or None; default = None
O artefato binário do executável.
cc_info default = None
Um CcInfo que contém informações sobre as dependências transitivas vinculadas ao binário.
objc obrigatório
Um ObjcProvider que contém informações sobre as dependências transitivas vinculadas ao binário.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Cria uma nova instância de ObjcProvider.

Parâmetros

Parâmetro Descrição
kwargs default = {}
Dicionário de argumentos.

Objc

Provider apple_common.Objc

O construtor/chave do provedor Objc.

Se um destino propagar o provedor Objc, use isso como a chave para recuperá-lo. Exemplo:

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

plataforma

struct apple_common.platform

Uma estrutura semelhante a enumeração que contém os seguintes campos correspondentes às plataformas da Apple:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

Esses valores podem ser transmitidos para métodos que esperam uma plataforma, como XcodeVersionConfig.sdk_version_for_platform.

platform_type

struct apple_common.platform_type

Uma estrutura semelhante a enumeração que contém os seguintes campos correspondentes aos tipos de plataforma da Apple:
  • ios
  • macos
  • tvos
  • watchos

Esses valores podem ser transmitidos para métodos que esperam um tipo de plataforma, como o método multi_arch_platform do fragmento de configuração "apple".

Exemplo:

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

Retorna um dict de variáveis de ambiente que precisam ser definidas para ações que criam destinos do tipo de plataforma Apple especificado. Por exemplo, esse dicionário contém variáveis que indicam o nome da plataforma e a versão do SDK com que criar. As chaves são nomes de variáveis, e os valores são os valores correspondentes.

Parâmetros

Parâmetro Descrição
xcode_config required
Um provedor que contém informações sobre a configuração do Xcode.
platform obrigatório
A plataforma da Apple.

XcodeProperties

Provider apple_common.XcodeProperties

O construtor/chave do provedor XcodeVersionProperties.

Se um destino propagar o provedor XcodeVersionProperties, use isso como a chave para recuperá-lo. Exemplo:

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

O construtor/chave do provedor XcodeVersionConfig.