cc_common

Utilitários para compilação, vinculação e geração de linha de comando em C++.

Participantes

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Retorna "True" se o action_config fornecido está ativado na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
action_name obrigatório
Nome da action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

Chave usada para recuperar o provedor que contém informações sobre o conjunto de ferramentas C++ que está sendo usado

compile

tuple cc_common.compile(actions, feature_configuration, cc_toolchain, srcs=[], public_hdrs=[], private_hdrs=[], includes=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], grep_includes=None)

Precisa ser usado para compilação em C++. Retorna a tupla de (CompilationContext, CcCompilationOutputs).

Parâmetros

Parâmetro Descrição
actions obrigatório
o objeto actions.
feature_configuration necessário
feature_configuration para ser consultado.
cc_toolchain necessário
que o provedor CcToolchainInfo seja usado.
srcs default = []
A lista de arquivos de origem a serem compilados.
public_hdrs default = []
Lista de cabeçalhos necessários para a compilação de srcs e podem ser incluídos de forma transitiva por regras dependentes.
private_hdrs default = []
Lista de cabeçalhos necessários para a compilação de srcs e NÃO para serem incluídos pelas regras dependentes.
includes default = []
Pesquise caminhos para arquivos de cabeçalho referenciados por colchetes angulares e aspas. Geralmente, é passado com -I. Propagado para os dependentes de forma transitiva.
quote_includes default = []
Pesquise caminhos para arquivos de cabeçalho referenciados por aspas, por exemplo, #include "foo/bar/header.h". Eles podem ser relativos à raiz de execução ou absolutos. Geralmente, é passado com -iquote. Propagado para os dependentes de forma transitiva.
system_includes default = []
Pesquise caminhos para arquivos de cabeçalho referenciados por colchetes angulares, por exemplo, #include <foo/bar/header.h>. Eles podem ser relativos à raiz de "exec" ou ao absoluto. Geralmente, é transmitida com -isystem. Propagado para os dependentes de forma transitiva.
framework_includes default = []
Pesquise caminhos para arquivos de cabeçalho dos frameworks da Apple. Eles podem ser relativos à raiz de execução ou absolutos. Geralmente, é passado com -F. Propagado para os dependentes de forma transitiva.
defines default = []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado para os dependentes de forma transitiva.
local_defines default = []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagada para os dependentes de forma transitiva.
include_prefix default = ''
O prefixo a ser adicionado aos caminhos dos cabeçalhos desta regra. Quando definidos, os cabeçalhos no atributo hdrs dessa regra podem ser acessados pelo valor desse atributo anexado ao caminho relativo ao repositório. O prefixo no atributo Strip_include_prefix é removido antes da adição desse prefixo.
strip_include_prefix default = ''
O prefixo a ser removido dos caminhos dos cabeçalhos desta regra. Quando definido, os cabeçalhos no atributo hdrs desta regra podem ser acessados no caminho deles com esse prefixo cortado. Se for um caminho relativo, será usado como relativo ao pacote. Se for absoluto, ele será entendido como um caminho relativo ao repositório. O prefixo no atributo include_prefix é adicionado depois que ele é removido.
user_compile_flags default = []
Lista adicional de opções de compilação.
compilation_contexts default = []
Cabeçalhos de dependências usadas para compilação.
name obrigatório
Usado para nomear os artefatos de saída das ações criadas por esse método. Consulte também o argumento "main_output".
disallow_pic_outputs default = False
Se as saídas PIC precisam ser criadas.
disallow_nopic_outputs default = False
Define se as saídas NOPIC precisam ser criadas.
additional_inputs default = []
Lista de arquivos extras necessários para a compilação de srcs.
grep_includes File; or None; padrão = None

configure_features

FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])

Cria uma instância feature_configuration. Requer o fragmento de configuração de cpp.

Parâmetros

Parâmetro Descrição
ctx ctx; or None; padrão = None
Contexto da regra.
cc_toolchain necessário
cc_toolkit para o qual configuramos recursos.
language string; or None; default = None
A linguagem a ser configurada para: c++ ou objc (padrão c++)
requested_features default = []
Lista de recursos que serão ativados.
unsupported_features default = []
Lista de recursos incompatíveis com a regra atual.

create_cc_toolchain_config_info

CcToolchainConfigInfo cc_common.create_cc_toolchain_config_info(ctx, features=[], action_configs=[], artifact_name_patterns=[], cxx_builtin_include_directories=[], toolchain_identifier, host_system_name=None, target_system_name, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)

Cria um provedor CcToolchainConfigInfo

Parâmetros

Parâmetro Descrição
ctx obrigatório
O contexto da regra.
features padrão = []

Contém todas as especificações de flag para um recurso.

Argumentos:

name: o nome do elemento. É possível introduzir um recurso sem uma mudança no Bazel adicionando uma seção "feature" ao conjunto de ferramentas e a string correspondente como recurso no arquivo BUILD.

ativado: se for "Verdadeiro", esse recurso será ativado a menos que um tipo de regra o marque explicitamente como incompatível.

flag_sets: uma lista FlagSet: se o recurso em questão estiver ativado, os conjuntos de sinalizações vão ser aplicados para as ações especificadas.

env_sets: uma lista de EnvSet – se o recurso estiver ativado, os conjuntos de ambiente vão ser aplicados às ações para os quais foram especificados.

requer: uma lista de conjuntos de recursos que definem quando esse recurso é compatível com o conjunto de ferramentas. O recurso é aceito se algum dos conjuntos de recursos for totalmente aplicável, ou seja, quando todos os recursos de um conjunto estiverem ativados. Se a opção "requer" for omitida, o recurso será compatível independentemente de quais outros recursos estejam ativados. Use-o, por exemplo, para filtrar sinalizações dependendo do modo de compilação ativado (opt / fastbuild / dbg).

implica: uma lista de strings de recursos ou configurações de ação que são ativados automaticamente quando esse recurso é ativado. Se não for possível ativar um dos recursos implícitos ou as configurações de ação, esse recurso também não será ativado (silenciosamente).

fornece: uma lista de nomes com os quais esse recurso entra em conflito.

Um recurso não pode ser ativado se:
- "provide" contém o nome de um recurso ou configuração de ação diferente que queremos ativar.
- "provide" contém o mesmo valor de "provide" em um recurso ou configuração de ação diferente que queremos ativar. Use-o para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, levando a erros de compilador difíceis de diagnosticar.
action_configs padrão = []

Uma configuração de ação corresponde a uma ação do Bazel e permite a seleção de uma ferramenta com base nos recursos ativados. A ativação da configuração de ação ocorre pela mesma semântica dos recursos: um recurso pode "exigir" ou "implorar" uma configuração de ação da mesma forma que faria com outro recurso.

Argumentos:

action_name: o nome da ação do Bazel a que esta configuração se aplica, por exemplo, "c-compile" ou "c-module-compile".

ativado: se for "Verdadeiro", essa ação será ativada a menos que um tipo de regra a marque explicitamente como incompatível.

tools: a ferramenta aplicada à ação será a primeira com um conjunto de recursos que corresponde à configuração do recurso. Um erro será gerado se nenhuma ferramenta corresponder a uma configuração de recurso fornecida. Por esse motivo, é uma boa ideia fornecer uma ferramenta padrão com um conjunto de recursos vazio.

flag_sets: se a configuração de ação especificada estiver ativada, os conjuntos de sinalizações vão ser aplicados à ação correspondente.

implica: uma lista de recursos ou configurações de ação que são ativados automaticamente quando essa configuração de ação é ativada. Se não for possível ativar um dos recursos implícitos ou as configurações de ação, essa configuração também não será ativada.

artifact_name_patterns padrão = []

O nome de um artefato de determinada categoria de artefatos de entrada ou saída para uma ação.

Argumentos:

categoria_name: a categoria de artefatos a que esta seleção se aplica. Esse campo é comparado com uma lista de categorias definidas no Bazel. Exemplos de categorias incluem "linked_output" ou o artefato desta seleção. Junto com a extensão, ele é usado para criar um nome de artefato com base no nome do destino.

extension: a extensão para criar o artefato para esta seleção. Junto com o prefixo, é usado para criar um nome de artefato com base no nome do destino.

cxx_builtin_include_directories padrão = []

Diretórios de inclusão integrados para compilação em C++. Esses são os caminhos exatos usados pelo compilador e geralmente são relativos à raiz "exec".

Os caminhos usados pelo compilador podem ser determinados por "gcc -E -xc++ - -v".

Atualmente, usamos os caminhos C++ também para a compilação em C, que é segura desde que não haja conflitos de nomes entre os arquivos de cabeçalho C++ e C.

Os caminhos relativos são resolvidos em relação ao diretório do arquivo de configuração.

Se o compilador for compatível com --sysroot, esses caminhos deverão usar %sysroot% em vez do caminho de inclusão e especificar o atributo sysroot para fornecer as informações necessárias para fazer as substituições corretas.

toolchain_identifier obrigatório

O identificador exclusivo do conjunto de ferramentas na versão crosstool. Ele precisa ser possível usá-lo como um nome de diretório em um caminho.

Ele precisa corresponder ao seguinte regex: [a-zA-Z_][\.\- \w]*

host_system_name string; or None; default = None
Ignorado.
target_system_name obrigatório
O nome do sistema GNU.
target_cpu obrigatório
A string da arquitetura de destino.
target_libc necessário
A string da versão da libc (por exemplo, "glibc-2.2.2").
compiler necessário
A string da versão do compilador (por exemplo, "gcc-4.1.1").
abi_version string; or None; default = None
A abi em uso, que é uma versão gcc. E.g.: "gcc-3.4"
abi_libc_version string; or None; default = None
A versão da glibc usada pela ABI que está sendo usada.
tool_paths padrão = []

Locais da ferramenta.

Argumentos:

name: nome da ferramenta.

path: local da ferramenta. Pode ser o caminho absoluto (no caso de conjuntos de ferramentas não herméticos) ou relativo ao pacote cc_toolkit.

make_variables default = []
Um make variável que se torna acessível para regras.
builtin_sysroot string; or None; default = None
O sysroot integrado. Se esse atributo não estiver presente, o Bazel não permitirá usar um sysroot diferente, ou seja, com a opção --grte_top.
cc_target_os string; or None; default = None
Somente para uso interno, não use.

create_compilation_context

CompilationContext cc_common.create_compilation_context(headers=unbound, system_includes=unbound, includes=unbound, quote_includes=unbound, framework_includes=unbound, defines=unbound, local_defines=unbound)

Cria uma CompilationContext.

Parâmetros

Parâmetro Descrição
headers padrão = não vinculado
Conjunto de cabeçalhos necessários para compilar este destino
system_includes default = não vinculado
Conjunto de caminhos de pesquisa para arquivos principais referenciados por colchetes angulares, ou seja, #include <foo/bar/header.h>. Eles podem ser relativos à raiz de "exec" ou ao absoluto. Normalmente, transmitida com -isystem
includes padrão = não vinculado
Conjunto de caminhos de pesquisa para arquivos principais referenciados por colchetes angulares e aspas.Geralmente, é passado com -I
quote_includes padrão = não vinculado
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por aspas, ou seja, #include "foo/bar/header.h". Eles podem ser relativos à raiz de execução ou absolutos. Geralmente transmitido com -iquote
framework_includes padrão = não vinculado
Conjunto de caminhos de pesquisa de framework para arquivos principais (somente para a plataforma Apple)
defines default = unbound
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado de forma transitiva para os dependentes.
local_defines default = unbound
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagada de forma transitiva para os dependentes.

create_compilation_outputs

CcCompilationOutputs cc_common.create_compilation_outputs(objects=None, pic_objects=None)

Cria o objeto de saídas de compilação.

Parâmetros

Parâmetro Descrição
objects depset; or None; padrão = None
Lista de arquivos de objeto.
pic_objects depset; or None; default = None
Lista de arquivos de objetos de imagem.

create_compile_variables

Variables cc_common.create_compile_variables(cc_toolchain, feature_configuration, source_file=None, output_file=None, user_compile_flags=None, include_directories=None, quote_include_directories=None, system_include_directories=None, framework_include_directories=None, preprocessor_defines=None, thinlto_index=None, thinlto_input_bitcode_file=None, thinlto_output_object_file=None, use_pic=False, add_legacy_cxx_options=False, variables_extension=unbound)

Retorna variáveis usadas para ações de compilação.

Parâmetros

Parâmetro Descrição
cc_toolchain obrigatório
cc_dataset para que estamos criando variáveis de build.
feature_configuration obrigatório
Configuração de recurso a ser consultada.
source_file default = None
Arquivo de origem opcional para a compilação. Prefira passar o source_file aqui em vez de anexá-lo ao final da linha de comando gerada por cc_common.get_memory_inefficient_command_line, já que dessa forma o autor do conjunto de ferramentas deve especificar e posicionar corretamente as sinalizações do compilador.
output_file default = None
Arquivo de saída opcional da compilação. Prefira passar output_file aqui em vez de anexá-lo ao final da linha de comando gerada por cc_common.get_memory_inefficient_command_line, já que dessa forma o autor do conjunto de ferramentas precisa especificar e posicionar corretamente as sinalizações do compilador.
user_compile_flags sequence of strings; or None; default = None
Lista de outras flags de compilação (copts).
include_directories depset; or None; default = None
Desativação de diretórios de inclusão.
quote_include_directories depset; or None; default = None
Diretórios de inclusão de aspas que incluem o conjunto.
system_include_directories depset; or None; default = None
Desativação de diretórios de inclusão do sistema.
framework_include_directories depset; or None; default = None
O conjunto de diretórios inclui diretórios.
preprocessor_defines depset; or None; default = None
Conjunto definido de pré-processador.
thinlto_index string; or None; padrão = nenhum
Caminho do arquivo de índice LTO.
thinlto_input_bitcode_file string; or None; default = None
Arquivo de bitcode que é entrada para o back-end de LTO.
thinlto_output_object_file string; or None; default = None
Arquivo de objeto que é emitido pelo back-end de LTO.
use_pic default = False
Quando verdadeiro, a compilação vai gerar um código independente de posição.
add_legacy_cxx_options default = False
Não usado.
variables_extension dict; padrão = não vinculado
Um dicionário de variáveis adicionais usado por ações de compilação.

LibraryToLink cc_common.create_library_to_link(actions, feature_configuration=None, cc_toolchain=None, static_library=None, pic_static_library=None, dynamic_library=None, interface_library=None, pic_objects=unbound, objects=unbound, alwayslink=False, dynamic_library_symlink_path='', interface_library_symlink_path='')

Cria LibraryToLink

Parâmetros

Parâmetro Descrição
actions obrigatório
o objeto actions.
feature_configuration default = None
feature_configuration a ser consultado.
cc_toolchain default = None
CcToolchainInfo provedor a ser usado.
static_library File; or None; padrão = Nenhuma
File da biblioteca estática a ser vinculada.
pic_static_library File; or None; default = None
File da biblioteca estática de fotos a ser vinculada.
dynamic_library File; or None; padrão = Nenhuma
File da biblioteca dinâmica a ser vinculada. Sempre usado para o ambiente de execução e para vinculação se interface_library não for transmitido.
interface_library File; or None; padrão = Nenhuma
File da biblioteca de interface a ser vinculada.
pic_objects sequence of Files; default = unbound
Experimental, não usar
objects sequence of Files; default = unbound
Experimental, não usar
default = False
Define se a biblioteca/objetos estáticos será vinculado ao bloco --whole_archive.
string; default = ''
Modifique o caminho padrão do link da biblioteca dinâmica no diretório solib. String em branco para usar o padrão.
default = ''
Substitua o caminho padrão do link da biblioteca de interface no diretório solib. String em branco para usar o padrão.

Variables cc_common.create_link_variables(cc_toolchain, feature_configuration, library_search_directories=None, runtime_library_search_directories=None, user_link_flags=None, output_file=None, param_file=None, def_file=None, is_using_linker=True, is_linking_dynamic_library=False, must_keep_debug=True, use_test_only_flags=False, is_static_linking_mode=True)

Retorna variáveis de vinculação usadas para ações de vinculação.

Parâmetros

Parâmetro Descrição
obrigatório
cc_dataset para que estamos criando variáveis de build.
obrigatório
Configuração de recurso a ser consultada.
None; or depset; default = None
Conjunto de diretórios em que o vinculador procura bibliotecas no momento da vinculação.
None; or depset; default = None
Conjunto de diretórios em que o carregador vai procurar bibliotecas no momento da execução.
None; or sequence; default = None
Lista de sinalizações de links adicionais (linkopts).
default = None
Caminho de arquivo de saída opcional.
default = None
Caminho do arquivo de parâmetro opcional.
default = None
Caminho de arquivo .def opcional.
default = True
True ao usar o vinculador, False quando o arquivador. O autor da chamada é responsável por manter a sincronia com o nome da ação usado (is_using_linker = Verdadeiro para vincular bibliotecas executável ou dinâmica, is_using_linker = Falso para arquivamento de bibliotecas estáticas.
default = False
Verdadeiro ao criar uma biblioteca dinâmica, Falso quando uma biblioteca executável ou estática. O autor da chamada é responsável por manter a sincronia com o nome da ação usado. Este campo será removido assim que b/65151735 for corrigido.
default = True
Quando definido como "True", o bazel vai expor a variável "strip_debug_symbols", que geralmente é usada para usar o vinculador para remover símbolos de depuração do arquivo de saída.
default = False
Quando definida como "true", a variável "is_cc_test" será definida.
default = True
Não utilizado.

create_linker_input

LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)

Cria uma LinkerInput.

Parâmetros

Parâmetro Descrição
owner obrigatório
O rótulo do destino que produziu todos os arquivos usados na entrada.
libraries None; or depset; padrão = Nenhum
Lista de LibraryToLink.
None; or depset of strings; or sequence of strings; default = None
Sinalizações de link do usuário transmitidas como strings. Aceita [String], [[String]] ou depset(String). O último uso não é recomendado, já que ele é mantido apenas para fins de compatibilidade, o depset é nivelado. Se você quiser propagar user_link_flags usando depsets() sem nivelamento, envolva-os em um LinkerInput para que eles não sejam nivelados até o final.
additional_inputs None; or depset; default = None
Para outras informações sobre a ação de vinculação, por exemplo: scripts de vinculação.

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)

Cria uma LinkingContext.

Parâmetros

Parâmetro Descrição
linker_inputs None; or depset; padrão = Nenhum
Encerramento de LinkerInput.
None; or sequence; default = None
Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa disso. Ela está desativada com o --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Lista de LibraryToLink.
None; or sequence; default = None
Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa disso. Ela está desativada com o --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Lista de sinalizações de links do usuário transmitidas como strings.
additional_inputs None; or sequence; default = None
Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa disso. Ela está desativada com o --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Para entradas adicionais sobre a ação de vinculação, por exemplo, scripts de vinculação.

create_linking_context_from_compilation_outputs

tuple cc_common.create_linking_context_from_compilation_outputs(actions, feature_configuration, cc_toolchain, compilation_outputs, user_link_flags=[], linking_contexts=[], name, language='c++', alwayslink=False, additional_inputs=[], disallow_static_libraries=False, disallow_dynamic_library=False, grep_includes=None)

Deve ser usada para criar regras de biblioteca que podem propagar informações downstream para serem vinculadas posteriormente por uma regra de nível superior que faz vinculação transitiva para criar uma biblioteca executável ou dinâmica. Retorna a tupla de (CcLinkingContext, CcLinkingOutputs).

Parâmetros

Parâmetro Descrição
actions obrigatório
o objeto actions.
feature_configuration necessário
feature_configuration para ser consultado.
cc_toolchain necessário
que o provedor CcToolchainInfo seja usado.
compilation_outputs necessário
Saídas de compilação contendo arquivos de objeto a serem vinculados.
default = []
Lista adicional de opções de vinculação.
linking_contexts default = []
Bibliotecas de dependências. Essas bibliotecas serão vinculadas ao artefato de saída da chamada link(), seja um binário ou uma biblioteca.
name obrigatório
Usado para nomear os artefatos de saída das ações criadas por esse método.
language default = 'c++'
No momento, apenas C++ é compatível. Não use este parâmetro.
default = False
Define se essa biblioteca sempre precisa ser vinculada.
additional_inputs default = []
Para mais informações sobre a ação de vinculação, por exemplo: scripts de vinculação.
disallow_static_libraries default = False
Define se as bibliotecas estáticas precisam ser criadas.
disallow_dynamic_library default = False
Define se uma biblioteca dinâmica precisa ser criada.
grep_includes File; or None; padrão = None

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

Não use este campo, a única finalidade dele é ajudar na migração de config_setting.values{'compiler') para config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

Retorna as variáveis de ambiente a serem definidas para determinada ação.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
action_name obrigatório
Nome da ação. Precisa ser um dos nomes em @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables obrigatório
Variáveis de build a serem usadas para expansão de modelo.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Retorna os requisitos de execução para determinada ação.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
action_name obrigatório
Nome da ação. Precisa ser um dos nomes em @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(feature_configuration, action_name, variables)

Retorna sinalizações de linha de comando simplificadas para determinada ação, usando variáveis específicas para expansão. Suaviza conjuntos aninhados e, idealmente, não devem ser usados ou, pelo menos, não devem sobreviver à análise. O trabalho na função eficiente de memória que retorna Args está em andamento.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
action_name obrigatório
Nome da ação. Precisa ser um dos nomes em @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables obrigatório
Variáveis de criação a serem usadas para expansões de modelo.

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

Retorna o caminho da ferramenta para a ação especificada.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
action_name obrigatório
Nome da ação. Precisa ser um dos nomes em @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)

is_enabled

bool cc_common.is_enabled(feature_configuration, feature_name)

Retorna "True" se determinado recurso está ativado na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração de recurso a ser consultada.
feature_name obrigatório
Nome do recurso.

CcLinkingOutputs cc_common.link(actions, feature_configuration, cc_toolchain, compilation_outputs=None, user_link_flags=[], linking_contexts=[], name, language='c++', output_type='executable', link_deps_statically=True, stamp=0, additional_inputs=[], grep_includes=None, additional_outputs=unbound)

Deve ser usado para vinculação transitiva do C++.

Parâmetros

Parâmetro Descrição
actions obrigatório
o objeto actions.
feature_configuration necessário
feature_configuration para ser consultado.
cc_toolchain necessário
que o provedor CcToolchainInfo seja usado.
compilation_outputs CcCompilationOutputs; or None; default = None
Saídas de compilação contendo arquivos de objeto a serem vinculados.
default = []
Lista adicional de opções do vinculador.
linking_contexts default = []
Vincular contextos de dependências a serem vinculadas ao contexto de vinculação gerado por essa regra.
name obrigatório
Usado para nomear os artefatos de saída das ações criadas por esse método.
language default = 'c++'
No momento, apenas C++ é compatível. Não use este parâmetro.
output_type default = 'executável'
Pode ser "executável" ou "dynamic_library".
default = True
True para vincular dependências estaticamente, False dinamicamente.
stamp default = 0
Define se informações de build precisam ser incluídas no executável vinculado, caso output_type seja "executável". Se for 1, as informações da versão serão sempre incluídas. Se for 0, as informações da versão padrão serão sempre excluídas. Se -1, usa o comportamento padrão, que pode ser substituído pela sinalização --[no]stamp. Ele não pode ser definido (ou definido como 0) ao gerar a saída executável para regras de teste.
additional_inputs sequence; or depset; default = []
Para outras entradas sobre a ação de vinculação, por exemplo: scripts de vinculação.
grep_includes File; or None; padrão = None
additional_outputs sequence; padrão = não vinculado
Gera saídas adicionais para a ação de vinculação, por exemplo, arquivos de mapa.

merge_cc_infos

CcInfo cc_common.merge_cc_infos(direct_cc_infos=[], cc_infos=[])

Mescla vários CcInfos em um.

Parâmetros

Parâmetro Descrição
direct_cc_infos default = []
Lista de CcInfos a serem mescladas, cujos cabeçalhos serão exportados pelos campos diretos no provedor retornado.
cc_infos default = []
Lista de CcInfos a serem mescladas com cabeçalhos não exportados pelos campos diretos no provedor retornado.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Mescla vários CompilationContextss em um.

Parâmetros

Parâmetro Descrição
compilation_contexts default = []
Lista de CompilationContextss a serem mescladas. Os cabeçalhos de cada contexto serão exportados pelos campos diretos no provedor retornado.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Mescle saídas de compilação.

Parâmetros

Parâmetro Descrição
compilation_outputs padrão = []