Regras do Objective-C

Informar um problema Conferir origem Noite · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Regras

j2objc_library

Conferir origem da regra
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

Esta regra usa J2ObjC para traduzir código-fonte Java arquivos para Objective-C, que podem ser usados como dependências de objc_library e objc_binary regras de firewall. Informações detalhadas sobre o J2ObjC podem ser encontradas em Site da J2ObjC

As flags personalizadas de transpilação J2ObjC podem ser especificadas usando a flag de build. --j2objc_translation_flags na linha de comando.

Os arquivos traduzidos incluídos no destino j2objc_library serão compilada usando a configuração padrão, a mesma configuração das fontes de uma regra objc_library sem opções de compilação especificadas nos atributos.

Além disso, a duplicação do código gerado é eliminada no nível da meta, não da origem. Se você tiver duas destinos Java diferentes que incluem os mesmos arquivos de origem Java, um erro de símbolo duplicado pode ser exibido no momento da vinculação. A maneira correta de resolver esse problema é mover os arquivos de origem Java compartilhados para um segmentos comuns separados dos quais se pode confiar.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

deps

Lista de rótulos o padrão é []

Uma lista de j2objc_library, java_library, Destinos java_import e java_proto_library que contêm Arquivos Java a serem transcompilados para Objective-C.

Todas as metas de java_library e java_import que podem ser alcançadas transitivamente por exports, deps e runtime_deps será traduzido e compilado, incluindo arquivos gerados pelo processamento de anotações Java. Não há suporte para destinos code>java_import sem srcjar. especificado.

A tradução J2ObjC funciona de maneira diferente dependendo do tipo de origem Java arquivos incluídos no fechamento transitivo. Para cada arquivo de origem .java incluído srcs de java_library, um arquivo de origem .h e .m correspondente será gerado. Para cada jar de origem incluído em srcs de java_library ou srcjar de java_import, um os arquivos de origem .h e .m correspondentes serão gerados com todo o código desse jar.

Os usuários podem importar os arquivos de cabeçalho gerados por J2ObjC no código. Os caminhos de importação de esses arquivos são o caminho relativo à raiz dos artefatos Java originais. Por exemplo: //some/package/foo.java tem um caminho de importação de some/package/foo.h e //some/package/bar.srcjar tem some/package/bar.h

Se as regras de proto_library estiverem no fechamento transitivo dessa regra, os protos J2ObjC também ser gerados, compilados e vinculados no nível binário. Para proto //some/proto/foo.proto, os usuários podem referenciar o código gerado usando a importação caminho some/proto/foo.j2objc.pb.h.

entry_classes

Lista de strings o padrão é []

A lista de classes Java cujas contrapartes ObjC traduzidas serão referenciadas diretamente por código ObjC do usuário. Esse atributo será obrigatório se a sinalização --j2objc_dead_code_removal estiver ativada. As classes Java devem ser especificadas em seus nomes canônicos, conforme definido pelo a API especificação da linguagem. Quando a flag --j2objc_dead_code_removal é especificada, a lista de classes de entrada serão coletados de forma transitiva e usados como pontos de entrada para realizar análises de códigos mortos. As classes não usadas serão removidas do pacote de apps ObjC final.
jre_deps

Lista de rótulos o padrão é []

A lista de bibliotecas de emulação JRE adicionais exigidas por todos os códigos Java traduzidos por este j2objc_library. Somente a funcionalidade principal do JRE é vinculada por padrão.

objc_import

Conferir origem da regra
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)

Essa regra encapsula uma biblioteca estática já compilada na forma de uma .a. Ele também permite exportar cabeçalhos e recursos usando a mesma atributos compatíveis com objc_library.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

deps

Lista de rótulos o padrão é []

A lista de destinos de que o destino depende.
hdrs

Lista de rótulos o padrão é []

A lista de arquivos de cabeçalho C, C++, Objective-C e Objective-C++ publicados por esta biblioteca sejam incluídos por fontes em regras dependentes.

Esses cabeçalhos descrevem a interface pública da biblioteca e serão disponibilizados para inclusão por fontes nesta regra ou dependente regras de firewall. Cabeçalhos não incluídos por um cliente desta biblioteca devem ser listados no atributo srcs.

Se os módulos estiverem ativados, eles serão compilados separadamente da origem.

Booleano; o padrão é False

Se 1, qualquer pacote ou binário que dependa (direta ou indiretamente) desse do Google Cloud vinculará todos os arquivos de objeto para os arquivos listados em srcs e non_arc_srcs, mesmo que algumas contenham não símbolos referenciados pelo binário. Isso é útil se o código não for chamado explicitamente por código em o binário, por exemplo, caso seu código seja registrado para receber algum callback por algum serviço.
archives

Lista de rótulos obrigatório

A lista de arquivos .a fornecidos para alvos Objective-C que dependerão dessa meta.
includes

Lista de strings o padrão é []

Lista de #include/#import caminhos de pesquisa para adicionar a este destino e todas as metas dependentes. Isso serve para dar suporte a bibliotecas de terceiros e de código aberto que não especificar todo o caminho do espaço de trabalho instruções #import/#include.

Os caminhos são interpretados em relação ao diretório do pacote, e o genfiles e raízes bin (por exemplo, blaze-genfiles/pkg/includedir e blaze-out/pkg/includedir) são incluídos além do raiz real do cliente.

Ao contrário de COPTS, essas sinalizações são adicionadas para esta regra e todas as regras que dependem dele. Observação: não são as regras das quais ele depende. Tenha tenha muito cuidado, já que isso pode ter efeitos mais amplos. Em caso de dúvida, adicione "-iquote" para COPTS.

sdk_dylibs

Lista de strings o padrão é []

Nomes das bibliotecas .dylib do SDK a serem vinculadas. Por exemplo, "libz" ou "libarchive". "libc++" será incluído automaticamente se o binário tiver qualquer linguagem C++ ou origens de Objective-C++ na árvore de dependências. Ao vincular um binário, todas as bibliotecas nomeadas no gráfico de dependências transitivas desse binário usados.
sdk_frameworks

Lista de strings o padrão é []

Nomes de estruturas do SDK a serem vinculadas (por exemplo, "AddressBook", "QuartzCore"). "UIKit" e "Fundação" são sempre incluídos ao criar para iOS, tvOS, visionOS, e watchOS. No macOS, apenas "Foundation" é sempre incluído.

Ao vincular um binário da Apple de nível superior, todos os frameworks do SDK listados no e o gráfico de dependência transitivo são vinculados.

sdk_includes

Lista de strings o padrão é []

Lista de #include/#import caminhos de pesquisa para adicionar a este destino e todos os destinos dependentes, em que cada caminho é relativo ao $(SDKROOT)/usr/include.
textual_hdrs

Lista de rótulos o padrão é []

A lista de arquivos C, C++, Objective-C e Objective-C++ que são incluídos como cabeçalhos por arquivos de origem nesta regra ou por usuários desta biblioteca. Ao contrário dos hdrs, estes não serão compilados separadamente do de dados.
weak_sdk_frameworks

Lista de strings o padrão é []

Nomes de frameworks do SDK com que há links fracos. Por exemplo: "MediaAccessibility". Diferente dos frameworks do SDK vinculados regularmente, os símbolos de frameworks com vinculação fraca não causarão erros se não estão presentes no tempo de execução.

objc_library

Conferir origem da regra
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

Essa regra produz uma biblioteca estática a partir dos arquivos de origem do Objective-C fornecidos.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

deps

Lista de rótulos o padrão é []

A lista de destinos vinculados para formar o pacote final.
srcs

Lista de rótulos o padrão é []

A lista de fontes e cabeçalhos em C, C++, Objective-C e Objective-C++ e/ou arquivos de origem assembly (".s", ".S" ou ".asm"), que são processados para criar destino da biblioteca. Estes são seus arquivos de check-in e todos os arquivos gerados. Os arquivos de origem são compilados em arquivos .o com o Clang. Arquivos de cabeçalho pode ser incluído/importado por qualquer origem ou cabeçalho no atributo srcs deste destino, mas não por cabeçalhos em hdrs ou quaisquer destinos que dependam nessa regra. Além disso, arquivos .o pré-compilados podem ser fornecidos como srcs. Tenha cuidado para garantem a consistência na arquitetura dos arquivos .o fornecidos e do build para evitar a falta de erros no vinculador de símbolos.
hdrs

Lista de rótulos o padrão é []

A lista de arquivos de cabeçalho C, C++, Objective-C e Objective-C++ publicados por esta biblioteca sejam incluídos por fontes em regras dependentes.

Esses cabeçalhos descrevem a interface pública da biblioteca e serão disponibilizados para inclusão por fontes nesta regra ou dependente regras de firewall. Cabeçalhos não incluídos por um cliente desta biblioteca devem ser listados no atributo srcs.

Se os módulos estiverem ativados, eles serão compilados separadamente da origem.

Booleano; o padrão é False

Se 1, qualquer pacote ou binário que dependa (direta ou indiretamente) desse do Google Cloud vinculará todos os arquivos de objeto para os arquivos listados em srcs e non_arc_srcs, mesmo que algumas contenham não símbolos referenciados pelo binário. Isso é útil se o código não for chamado explicitamente por código em o binário, por exemplo, caso seu código seja registrado para receber algum callback por algum serviço.
copts

Lista de strings o padrão é []

Sinalizações extras a serem passadas para o compilador. Sujeito à substituição "Make variables" e Tokenização de Bourne Shell. Essas sinalizações só serão aplicadas a este destino, e não àquelas sobre as quais ou aqueles que dependem dele.

Observe que, para o projeto Xcode gerado, os caminhos de diretório especificados usando "-I" sinalizações em os copts são analisados e adicionados com "$(WORKSPACE_ROOT)/" se forem caminhos relativos adicionado aos caminhos de busca do cabeçalho para o destino Xcode associado.

defines

Lista de strings o padrão é []

Sinalizações -D extras a serem transmitidas para o compilador. Elas devem estar na forma KEY=VALUE ou simplesmente KEY e são transmitido não apenas para o compilador desse destino (como copts são), mas também para todos os objc_ dependentes desse destino. Sujeito à substituição "Make variables" e Tokenização de Bourne Shell.
enable_modules

Booleano; o padrão é False

Ativa o suporte ao módulo clang (via -fmodules). A definição como 1 permitirá que você use @import em cabeçalhos de sistema e outros destinos: @import UIKit; @import path_to_package_target;
implementation_deps

Lista de rótulos o padrão é []

A lista de outras bibliotecas de que o destino da biblioteca depende. Remover de deps, os cabeçalhos e os caminhos de inclusão dessas bibliotecas (e de todas transitives) são usadas apenas para compilação dessa biblioteca, e não para bibliotecas que dependerem disso. As bibliotecas especificadas com implementation_deps ainda estão vinculadas em destinos binários que dependem dessa biblioteca.
includes

Lista de strings o padrão é []

Lista de #include/#import caminhos de pesquisa para adicionar a este destino e todas as metas dependentes. Isso serve para dar suporte a bibliotecas de terceiros e de código aberto que não especificar todo o caminho do espaço de trabalho instruções #import/#include.

Os caminhos são interpretados em relação ao diretório do pacote, e o genfiles e raízes bin (por exemplo, blaze-genfiles/pkg/includedir e blaze-out/pkg/includedir) são incluídos além do raiz real do cliente.

Ao contrário de COPTS, essas sinalizações são adicionadas para esta regra e todas as regras que dependem dele. Observação: não são as regras das quais ele depende. Tenha tenha muito cuidado, já que isso pode ter efeitos mais amplos. Em caso de dúvida, adicione "-iquote" para COPTS.

linkopts

Lista de strings o padrão é []

Sinalizações extras a serem transmitidas para o vinculador.
module_map

Rótulo o padrão é None

Um mapa personalizado do módulo Clang para este destino. O uso de um mapa de módulo personalizado não é recomendado. Mais frequentes os usuários devem usar mapas de módulo gerados pelo Bazel. Se especificado, o Bazel não gera um mapa de módulo para esse destino, mas passa o mapa do módulo fornecido para o compilador.
module_name

String; o padrão é ""

Define o nome do módulo para este destino. Por padrão, o nome do módulo é o caminho de destino com todos os símbolos especiais substituídos por _, por exemplo, //foo/baz:bar pode ser importado como foo_baz_bar.
non_arc_srcs

Lista de rótulos o padrão é []

A lista de arquivos Objective-C processados para criar a destino de biblioteca que NÃO usam ARC. Os arquivos desse atributo são tratados de forma muito semelhante aos arquivos srcs, mas são compilados sem o ARC ativado.
pch

Rótulo o padrão é None

Arquivo de cabeçalho para anexar a cada arquivo de origem que está sendo compilado (ambos os arcos e sem arco). O uso de arquivos pch é ativamente desencorajado em arquivos BUILD, e isso deve ser considerada obsoleta. Como os arquivos pch não são pré-compilados, isso não é um aprimoramento da velocidade de build, sendo apenas uma dependência global. Com base em um build você é melhor incluir o que precisa diretamente nas fontes onde precisar.
sdk_dylibs

Lista de strings o padrão é []

Nomes das bibliotecas .dylib do SDK a serem vinculadas. Por exemplo, "libz" ou "libarchive". "libc++" será incluído automaticamente se o binário tiver qualquer linguagem C++ ou origens de Objective-C++ na árvore de dependências. Ao vincular um binário, todas as bibliotecas nomeadas no gráfico de dependências transitivas desse binário usados.
sdk_frameworks

Lista de strings o padrão é []

Nomes de estruturas do SDK a serem vinculadas (por exemplo, "AddressBook", "QuartzCore"). "UIKit" e "Fundação" são sempre incluídos ao criar para iOS, tvOS, visionOS, e watchOS. No macOS, apenas "Foundation" é sempre incluído.

Ao vincular um binário da Apple de nível superior, todos os frameworks do SDK listados no e o gráfico de dependência transitivo são vinculados.

sdk_includes

Lista de strings o padrão é []

Lista de #include/#import caminhos de pesquisa para adicionar a este destino e todos os destinos dependentes, em que cada caminho é relativo ao $(SDKROOT)/usr/include.
textual_hdrs

Lista de rótulos o padrão é []

A lista de arquivos C, C++, Objective-C e Objective-C++ que são incluídos como cabeçalhos por arquivos de origem nesta regra ou por usuários desta biblioteca. Ao contrário dos hdrs, estes não serão compilados separadamente do de dados.
weak_sdk_frameworks

Lista de strings o padrão é []

Nomes de frameworks do SDK com que há links fracos. Por exemplo: "MediaAccessibility". Diferente dos frameworks do SDK vinculados regularmente, os símbolos de frameworks com vinculação fraca não causarão erros se não estão presentes no tempo de execução.

available_xcodes

Conferir origem da regra
available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)

Dois destinos desta regra podem depender de uma instância de regra xcode_config para indicar as versões do XCode disponíveis remota e localmente. Isso permite a seleção de uma versão oficial do Xcode entre os disponíveis coletivamente.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

default

Rótulo nonconfigurable; obrigatório

A versão padrão do Xcode para esta plataforma.
versions

Lista de rótulos nonconfigurable; o padrão é []

As versões do Xcode disponíveis nesta plataforma.

xcode_config

Conferir origem da regra
xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)

Um único destino desta regra pode ser referenciado pelo build --xcode_version_config para traduzir a flag --xcode_version em uma versão oficial aceita do Xcode. Isso permite a seleção de uma versão oficial do xcode entre diversos aliases registrados.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

default

Rótulo nonconfigurable; o padrão é None

A versão oficial padrão do xcode a ser usada. A versão especificada pelo destino xcode_version fornecido será usada se nenhuma flag de build xcode_version foi especificada. É obrigatório se houver versions foram definidos. Ele não pode ser definido se remote_versions ou local_versions foi definido.
local_versions

Rótulo nonconfigurable; o padrão é None

Os destinos xcode_version que estão disponíveis localmente. Eles são usados com local_versions para selecionar um objeto mutuamente para a versão anterior. Pode não ser definido se versions estiver definido.
remote_versions

Rótulo nonconfigurable; o padrão é None

Os destinos xcode_version que estão disponíveis remotamente. Eles são usados com remote_versions para selecionar um objeto mutuamente para a versão anterior. Pode não ser definido se versions estiver definido.
versions

Lista de rótulos nonconfigurable; o padrão é []

xcode_version segmentações que podem ser usadas foram aceitas. Se o valor da flag de build xcode_version corresponder a um dos aliases ou o número da versão de qualquer um dos destinos xcode_version fornecidos, a correspondência destino será usado. Ele não pode ser definido se remote_versions ou local_versions foi definido.

xcode_version

Conferir origem da regra
xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_visionos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)

Representa uma única versão oficial do xcode com aliases aceitáveis para essa versão. Consulte a regra xcode_config.

Argumentos

Atributos
name

Nome; obrigatório

Um nome exclusivo para o destino.

default_ios_sdk_version

String; nonconfigurable; o padrão é ""

A versão do SDK do iOS usada por padrão quando essa versão do Xcode está sendo usada. A flag de build ios_sdk_version vai substituir o valor especificado aqui.
default_macos_sdk_version

String; nonconfigurable; o padrão é ""

A versão do SDK do macOS usada por padrão quando essa versão do Xcode está sendo usada. A flag de build macos_sdk_version vai substituir o valor especificado aqui.
default_tvos_sdk_version

String; nonconfigurable; o padrão é ""

A versão do SDK tvos usada por padrão quando essa versão do Xcode está sendo usada. A flag de build tvos_sdk_version vai substituir o valor especificado aqui.
default_visionos_sdk_version

String; nonconfigurable; o padrão é ""

A versão do SDK do Visionos usada por padrão quando essa versão do Xcode está sendo usada. A flag de build visionos_sdk_version vai substituir o valor especificado aqui.
default_watchos_sdk_version

String; nonconfigurable; o padrão é ""

A versão do SDK watchos usada por padrão quando essa versão do Xcode está sendo usada. A flag de build watchos_sdk_version vai substituir o valor especificado aqui.
version

String; nonconfigurable; obrigatório

O número da versão oficial de uma versão do Xcode.