Regras
biblioteca_j2objc
Ver origem da regraj2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Essa regra usa J2ObjC para converter arquivos de origem Java em Objective-C, que pode ser usado como dependências de regras objc_library e bbcc. Informações detalhadas sobre o J2ObjC podem ser encontradas no site do J2ObjC (link em inglês).
As sinalizações de transcompilação personalizadas J2ObjC podem ser especificadas usando a sinalização de build
--j2objc_translation_flags
na linha de comando.
Os arquivos traduzidos incluídos em um destino j2objc_library serão compilados usando a configuração de compilação padrão, a mesma configuração das origens de uma regra de 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 segmentação, não no nível da origem. Se você tiver dois destinos Java diferentes que incluam os mesmos arquivos de origem Java, talvez veja um erro de símbolo duplicado no momento da vinculação. A maneira correta de resolver esse problema é mover os arquivos de origem Java compartilhados para um destino comum separado que pode ser usado.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
deps
|
j2objc_library , java_library ,
java_import e java_proto_library que contêm
arquivos Java a serem transcompilados para Objective-C.
Todos os destinos A tradução J2ObjC funciona de maneira diferente, dependendo do tipo de arquivos de origem Java
incluídos no fechamento transitivo. Para cada arquivo de origem .java incluído em
Os usuários podem importar os arquivos de cabeçalho gerados por J2ObjC no código. Os caminhos de importação desses
arquivos são o caminho relativo raiz dos artefatos Java originais. Por exemplo,
Se as regras proto_library estiverem no fechamento transitivo dela, os protótipos J2ObjC também serão gerados, compilados e vinculados no nível binário. Para o proto |
entry_classes
|
--j2objc_dead_code_removal
estiver ativada. As classes Java precisam ser identificadas nos nomes canônicos, conforme definido pela especificação da linguagem Java.
Quando a sinalização --j2objc_dead_code_removal é especificada, a lista de classes de entrada
será coletada de forma transitiva e usada como pontos de entrada para realizar uma análise de código morto.
As classes não usadas serão removidas do pacote de apps ObjC final.
|
jre_deps
|
j2objc_library . Somente a funcionalidade principal do JRE é vinculada por padrão.
|
importação_objc
Ver origem da regraobjc_import(name, 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 um
arquivo .a
. Ele também permite exportar cabeçalhos e recursos usando os mesmos
atributos aceitos pelo objc_library
.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
hdrs
|
Esses cabeçalhos descrevem a interface pública da biblioteca e vão ser disponibilizados para inclusão nesta origem ou em regras dependentes. Os cabeçalhos que não devem ser incluídos por um cliente desta biblioteca precisam ser listados no atributo src. Eles serão compilados separadamente da fonte, se os módulos estiverem ativados. |
alwayslink
|
srcs e non_arc_srcs , mesmo que alguns não
contenham símbolos referenciados pelo binário.
Isso é útil quando o código não é chamado explicitamente por código
no binário, por exemplo, se o código é registrado para receber algum callback
fornecido por algum serviço.
|
archives
|
.a fornecida para destinos de Objective-C que
dependem desse destino.
|
includes
|
#include/#import caminhos de pesquisa a serem adicionados a esse destino
e todos os aplicáveis.
Isso é feito para oferecer suporte a bibliotecas de terceiros e de código aberto que não
especificam todo o caminho do espaço de trabalho nas instruções
#import/#include .
Os caminhos são interpretados em relação ao diretório do pacote e as raízes genfiles e bin (por exemplo, Ao contrário de COPTS, essas sinalizações são adicionadas para essa regra e a todas as regras que dependem dela. Observação: as regras dependem das regras. Tenha muito cuidado, porque isso pode ter efeitos abrangentes. Em caso de dúvida, adicione sinalizações "-iquote" a COPTS. |
sdk_dylibs
|
|
sdk_frameworks
|
Ao vincular um binário da Apple de nível superior, todos os frameworks do SDK listados no gráfico de dependências transitivas desse binário são vinculados. |
sdk_includes
|
#include/#import caminhos de pesquisa a serem adicionados a esse destino
e todos os destinos, em que cada caminho é relativo a
$(SDKROOT)/usr/include .
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
biblioteca objc
Ver origem da regraobjc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, 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 com base nos arquivos de origem do Objective-C fornecidos.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
deps
|
|
srcs
|
|
hdrs
|
Esses cabeçalhos descrevem a interface pública da biblioteca e vão ser disponibilizados para inclusão nesta origem ou em regras dependentes. Os cabeçalhos que não devem ser incluídos por um cliente desta biblioteca precisam ser listados no atributo src. Eles serão compilados separadamente da fonte, se os módulos estiverem ativados. |
alwayslink
|
srcs e non_arc_srcs , mesmo que alguns não
contenham símbolos referenciados pelo binário.
Isso é útil quando o código não é chamado explicitamente por código
no binário, por exemplo, se o código é registrado para receber algum callback
fornecido por algum serviço.
|
copts
|
Para o projeto Xcode gerado, os caminhos do diretório especificados usando sinalizações "-I" nos códigos são analisados, prefixados com "$(WORKSPACE_ROOT)/" se eles forem caminhos relativos e adicionados aos caminhos de pesquisa de cabeçalho do destino do Xcode associado. |
defines
|
-D a serem transmitidas para o compilador. Elas precisam estar no
formato KEY=VALUE ou simplesmente KEY e são
transmitidas não apenas para o compilador desse destino (como copts
), mas também para todas as objc_ definições desse destino.
Sujeito à substituição"Criar variável" e à
tokenização do shell do Bourne.
|
enable_modules
|
|
includes
|
#include/#import caminhos de pesquisa a serem adicionados a esse destino
e todos os aplicáveis.
Isso é feito para oferecer suporte a bibliotecas de terceiros e de código aberto que não
especificam todo o caminho do espaço de trabalho nas instruções
#import/#include .
Os caminhos são interpretados em relação ao diretório do pacote e as raízes genfiles e bin (por exemplo, Ao contrário de COPTS, essas sinalizações são adicionadas para essa regra e a todas as regras que dependem dela. Observação: as regras dependem das regras. Tenha muito cuidado, porque isso pode ter efeitos abrangentes. Em caso de dúvida, adicione sinalizações "-iquote" a COPTS. |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
sdk_dylibs
|
|
sdk_frameworks
|
Ao vincular um binário da Apple de nível superior, todos os frameworks do SDK listados no gráfico de dependências transitivas desse binário são vinculados. |
sdk_includes
|
#include/#import caminhos de pesquisa a serem adicionados a esse destino
e todos os destinos, em que cada caminho é relativo a
$(SDKROOT)/usr/include .
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
códigos_disponíveis_
Ver origem da regraavailable_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Dois destinos dessa regra podem depender de uma instância de regra xcode_config
para indicar as versões de código remoto disponíveis remotamente.
Isso permite selecionar uma versão xcode oficial entre os xcodes disponíveis coletivamente.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
default
|
|
versions
|
|
xcode_config
Ver origem da regraxcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Um único destino dessa regra pode ser referenciado pela sinalização de compilação --xcode_version_config
para traduzir a sinalização --xcode_version
em uma versão oficial do Xcode.
Isso permite selecionar uma versão xcode oficial de diversos aliases registrados.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
default
|
xcode_version fornecido vai ser usada se
nenhuma sinalização de build xcode_version for especificada. Isso é necessário se algum versions estiver definido. Isso não poderá ser definido se remote_versions ou
local_versions for definido.
|
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version |
versão_do_código
Ver origem da regraxcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_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.
Veja a regra xcode_config
.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. |
default_ios_sdk_version
|
ios_sdk_version substituirá o valor especificado aqui.
|
default_macos_sdk_version
|
macos_sdk_version substituirá o valor especificado aqui.
|
default_tvos_sdk_version
|
tvos_sdk_version substituirá o valor especificado aqui.
|
default_watchos_sdk_version
|
watchos_sdk_version substituirá o valor especificado aqui.
|
version
|
|