Regras
j2objc_library
Acessar a 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 traduzir arquivos de origem Java em Objective-C, que podem ser usados como dependências das regras objc_library e objc_binary. Informações detalhadas sobre o J2ObjC podem ser encontradas no site do J2ObjC.
As flags de transpilação personalizadas do J2ObjC podem ser especificadas usando a flag 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 usada para as origens de uma regra objc_library sem opções de compilação especificadas nos atributos.
Além disso, o código gerado é desduplicado no nível de destino, não no nível de origem. Se você tiver dois alvos Java diferentes que incluem os mesmos arquivos de origem Java, poderá aparecer 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 em que se pode confiar.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos; o padrão é j2objc_library , java_library ,
java_import e java_proto_library que contêm
arquivos Java a serem transpilados para Objective-C.
Todos os destinos A tradução J2ObjC funciona de maneira diferente, dependendo do tipo de arquivos de origem Java
incluídos na união transitiva. Para cada arquivo de origem .java incluído em
Os usuários podem importar os arquivos de cabeçalho gerados pelo J2ObjC no código. Os caminhos de importação para
esses arquivos são o caminho relativo à raiz dos artefatos Java originais. Por exemplo,
Se as regras de proto_library estiverem no fechamento transitivo desta regra, os protos J2ObjC também
serão gerados, compilados e vinculados no nível binário. Para proto
|
entry_classes
|
Lista de strings. O padrão é --j2objc_dead_code_removal
estiver ativada. As classes Java precisam ser especificadas nos nomes canônicos, conforme definido pela
especificação
da linguagem Java.
Quando a flag --j2objc_dead_code_removal é especificada, a lista de classes de entrada
é coletada transitivamente e usada como pontos de entrada para realizar a análise de código morto.
As classes não utilizadas serão removidas do pacote final do app ObjC.
|
jre_deps
|
Lista de rótulos; o padrão é j2objc_library . Somente a funcionalidade principal do JRE é vinculada por padrão.
|
objc_import
Acessar a origem da regraobjc_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 um
arquivo .a
. Também permite exportar cabeçalhos e recursos usando os mesmos
atributos aceitos por objc_library
.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos; o padrão é |
hdrs
|
Lista de rótulos; o padrão é Esses cabeçalhos descrevem a interface pública da biblioteca e serão disponibilizados para inclusão por fontes nesta regra ou em regras dependentes. Os cabeçalhos que não precisam ser incluídos por um cliente dessa biblioteca precisam ser listados no atributo srcs. Eles serão compilados separadamente da origem se os módulos estiverem ativados. |
alwayslink
|
Booleano; o padrão é srcs e non_arc_srcs , mesmo que alguns não contenham
símbolos referenciados pelo binário.
Isso é útil se o código não for chamado explicitamente por código no
binário, por exemplo, se o código for registrado para receber algum callback
fornecido por algum serviço.
|
archives
|
Lista de rótulos; obrigatório A lista de arquivos.a fornecidos para destinos Objective-C que
dependem desse destino.
|
includes
|
Lista de strings. O padrão é #include/#import a serem adicionados a essa segmentação
e a todas as segmentações dependentes.
Isso é para oferecer suporte a bibliotecas de terceiros e de código aberto que não
especificam o caminho completo do espaço de trabalho nas
instruções #import/#include .
Os caminhos são interpretados em relação ao diretório do pacote, e os
arquivos gen e bin raiz (por exemplo, Ao contrário de COPTS, essas flags são adicionadas a essa regra e a todas as regras que dependem dela. Observação: não as regras de que depende. Tenha muito cuidado, porque isso pode ter efeitos de longo alcance. Em caso de dúvida, adicione flags "-iquote" a COPTS. |
sdk_dylibs
|
Lista de strings. O padrão é |
sdk_frameworks
|
Lista de strings. O padrão é Ao vincular um binário de nível superior da Apple, todos os frameworks do SDK listados no gráfico de dependência transitiva do binário são vinculados. |
sdk_includes
|
Lista de strings. O padrão é #include/#import a serem adicionados a esse destino
e a todos os destinos dependentes, em que cada caminho é relativo a
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Lista de rótulos; o padrão é |
weak_sdk_frameworks
|
Lista de strings. O padrão é |
objc_library
Acessar a origem da regraobjc_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 com base nos arquivos de origem do Objective-C fornecidos.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos; o padrão é |
srcs
|
Lista de rótulos; o padrão é |
hdrs
|
Lista de rótulos; o padrão é Esses cabeçalhos descrevem a interface pública da biblioteca e serão disponibilizados para inclusão por fontes nesta regra ou em regras dependentes. Os cabeçalhos que não precisam ser incluídos por um cliente dessa biblioteca precisam ser listados no atributo srcs. Eles serão compilados separadamente da origem se os módulos estiverem ativados. |
alwayslink
|
Booleano; o padrão é srcs e non_arc_srcs , mesmo que alguns não contenham
símbolos referenciados pelo binário.
Isso é útil se o código não for chamado explicitamente por código no
binário, por exemplo, se o código for registrado para receber algum callback
fornecido por algum serviço.
|
copts
|
Lista de strings. O padrão é No projeto Xcode gerado, os caminhos de diretório especificados usando flags "-I" em copts são analisados e precedidos por "$(WORKSPACE_ROOT)/" se forem caminhos relativos, e são adicionados aos caminhos de pesquisa de cabeçalho para o destino Xcode associado. |
defines
|
Lista de strings. O padrão é -D extras a serem transmitidas ao 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
são), mas também para todos os dependentes objc_ desse destino.
Sujeito à substituição de "Make variable" e
tokenização de shell Bourne.
|
enable_modules
|
Booleano; o padrão é |
implementation_deps
|
Lista de rótulos; o padrão é deps , os cabeçalhos e os caminhos de inclusão dessas bibliotecas (e todas as
dependências transitivas) são usados apenas para a compilação dessa biblioteca, e não para as bibliotecas que
dependem dela. As bibliotecas especificadas com implementation_deps ainda são vinculadas
em destinos binários que dependem dessa biblioteca.
|
includes
|
Lista de strings. O padrão é #include/#import a serem adicionados a essa segmentação
e a todas as segmentações dependentes.
Isso é para oferecer suporte a bibliotecas de terceiros e de código aberto que não
especificam o caminho completo do espaço de trabalho nas
instruções #import/#include .
Os caminhos são interpretados em relação ao diretório do pacote, e os
arquivos gen e bin raiz (por exemplo, Ao contrário de COPTS, essas flags são adicionadas a essa regra e a todas as regras que dependem dela. Observação: não as regras de que depende. Tenha muito cuidado, porque isso pode ter efeitos de longo alcance. Em caso de dúvida, adicione flags "-iquote" a COPTS. |
linkopts
|
Lista de strings. O padrão é |
module_map
|
Rótulo: o padrão é |
module_name
|
String; o padrão é |
non_arc_srcs
|
Lista de rótulos; o padrão é |
pch
|
Rótulo: o padrão é |
sdk_dylibs
|
Lista de strings. O padrão é |
sdk_frameworks
|
Lista de strings. O padrão é Ao vincular um binário de nível superior da Apple, todos os frameworks do SDK listados no gráfico de dependência transitiva do binário são vinculados. |
sdk_includes
|
Lista de strings. O padrão é #include/#import a serem adicionados a esse destino
e a todos os destinos dependentes, em que cada caminho é relativo a
$(SDKROOT)/usr/include .
|
textual_hdrs
|
Lista de rótulos; o padrão é |
weak_sdk_frameworks
|
Lista de strings. O padrão é |
available_xcodes
Acessar a origem da regraavailable_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Duas instâncias da regra xcode_config
podem depender de dois destinos desta regra para
indicar as versões do Xcode disponíveis localmente e remotamente.
Isso permite a seleção de uma versão oficial do xcode entre os xcodes disponíveis coletivamente.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
default
|
Rótulo: não configurável; obrigatório A versão padrão do Xcode para essa plataforma. |
versions
|
Lista de rótulos; não configurável; o padrão é |
xcode_config
Acessar a 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 flag de 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 vários aliases registrados.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
default
|
Rótulo: não configurável; o padrão é xcode_version fornecido será usada se
nenhuma flag de build xcode_version for especificada. Isso é necessário se algum
versions estiver definido. Isso pode não ser definido se remote_versions ou
local_versions estiverem definidos.
|
local_versions
|
Rótulo: não configurável; o padrão é xcode_version disponíveis localmente.
Eles são usados com local_versions para selecionar uma versão mutuamente
disponível. Isso pode não ser definido se versions estiver definido.
|
remote_versions
|
Rótulo: não configurável; o padrão é xcode_version que estão disponíveis remotamente.
Eles são usados com remote_versions para selecionar uma versão mutuamente
disponível. Isso pode não ser definido se versions estiver definido.
|
versions
|
Lista de rótulos; não configurável; o padrão é xcode_version aceitos que podem ser usados.
Se o valor da flag de build xcode_version corresponder a um dos aliases
ou ao número da versão de qualquer um dos destinos xcode_version fornecidos, o destino
correspondente será usado. Isso pode não ser definido se remote_versions ou
local_versions estiverem definidos.
|
xcode_version
Acessar a origem da regraxcode_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 essa segmentação. |
default_ios_sdk_version
|
String; não configurável; o padrão é ios_sdk_version vai substituir o valor especificado aqui.
|
default_macos_sdk_version
|
String; não configurável; o padrão é macos_sdk_version vai substituir o valor especificado aqui.
|
default_tvos_sdk_version
|
String; não configurável; o padrão é tvos_sdk_version vai substituir o valor especificado aqui.
|
default_visionos_sdk_version
|
String; não configurável; o padrão é visionos_sdk_version vai substituir o valor especificado aqui.
|
default_watchos_sdk_version
|
String; não configurável; o padrão é watchos_sdk_version vai substituir o valor especificado aqui.
|
version
|
String; não configurável; obrigatório O número da versão oficial de uma versão do Xcode. |