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=[], extra_requested_features=[], extra_disabled_features=[], 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.
sequência de Targets ou None. O padrão é None
. Uma lista de Targets que estão no gráfico de dependências 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.
sequência de strings; o padrão é []
Opções de vinculação extras a serem transmitidas para a ação do vinculador.
sequência de Files; o padrão é []
Arquivos extras para transmitir à ação do vinculador.
sequência de strings; o padrão é []
Recursos extras solicitados para serem transmitidos à ação do vinculador.
sequence de strings; o padrão é []
Recursos extras desativados a serem transmitidos para a ação do vinculador.
O padrão é -1
Determina se é necessário incluir informações de build 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.

new_dynamic_framework_provider

AppleDynamicFramework apple_common.new_dynamic_framework_provider(binary=None, cc_info=None, objc=None, framework_dirs=None, framework_files=None)

Cria uma nova instância do provedor AppleDynamicFramework.

Parâmetros

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

new_executable_binary_provider

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

Cria uma nova instância do provedor AppleExecutableBinaryInfo.

Parâmetros

Parâmetro Descrição
binary Arquivo ou None. O padrão é None
. O artefato binário do executável.
cc_info O padrão é None
Um CcInfo que contém informações sobre as dependências transitivas vinculadas ao binário.
objc O padrão é None
. 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 O padrão é {}
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
  • visionos_device
  • visionos_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
  • visionos
  • 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.