cc_common

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

Membros

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Retorna "True" se o action_config estiver ativado na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração do recurso a ser consultado.
action_name obrigatório
Nome do action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

A 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
objeto actions.
feature_configuration obrigatório
feature_configuration para ser consultado.
cc_toolchain obrigatório
CcToolchainInfo provedor a ser usado.
srcs padrão = []
A lista de arquivos de origem a serem compilados.
public_hdrs padrão = []
Lista de cabeçalhos necessários para a compilação de srcs e que podem ser incluídos de forma transitiva pelas regras dependentes.
private_hdrs padrão = []
Lista de cabeçalhos necessários para a compilação de srcs e que NÃO devem ser incluídos por regras dependentes.
includes padrão = []
Caminhos de pesquisa para arquivos de cabeçalho referenciados por colchete angular e aspas. Normalmente é passado com -I. Propagada para dependentes de maneira transitiva.
quote_includes padrão = []
Caminhos de pesquisa 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. Normalmente passado com -iquote. Propagada para dependentes de maneira transitiva.
system_includes padrão = []
Caminhos de pesquisa para arquivos de cabeçalho referenciados por colchetes angulares, por exemplo, #include <foo/bar/header.h>. Eles podem ser relativos à raiz de execução ou absolutos. Normalmente passado com -isystem. Propagada para dependentes de maneira transitiva.
framework_includes padrão = []
Caminhos de pesquisa para arquivos principais dos frameworks da Apple. Eles podem ser relativos à raiz de execução ou absolutos. Normalmente, é passado com -F. Propagada para dependentes de maneira transitiva.
defines padrão = []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagada para dependentes de maneira transitiva.
local_defines padrão = []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagada de forma transitiva para os dependentes.
include_prefix padrão = ''
O prefixo a ser adicionado aos caminhos dos cabeçalhos desta regra. Quando definido, os cabeçalhos no atributo hdrs dessa regra são acessíveis em se o valor desse atributo for anexado ao caminho relativo ao repositório. O prefixo no atributo strip_include_prefix é removido antes da adição desse prefixo.
strip_include_prefix padrão = ''
O prefixo a ser removido dos caminhos dos cabeçalhos desta regra. Quando definido, os cabeçalhos no atributo hdrs dessa regra são acessíveis no caminho com esse prefixo cortado. Se for um caminho relativo, ele será considerado como relativo ao pacote. Se for absoluto, será entendido como um caminho relativo ao repositório. O prefixo no atributo include_prefix é adicionado depois que esse prefixo é removido.
user_compile_flags padrão = []
Lista adicional de opções de compilação.
compilation_contexts padrão = []
Cabeçalhos de dependências usadas para compilação.
name obrigatório
Isso é 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 padrão = Falso
Define se as saídas de PIC devem ser criadas.
disallow_nopic_outputs padrão = Falso
Define se as saídas NOPIC precisam ser criadas.
additional_inputs padrão = []
Lista de arquivos adicionais necessários para a compilação de srcs
grep_includes File; or None padrão = Nenhum

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 do cpp.

Parâmetros

Parâmetro Descrição
ctx ctx; or None padrão = Nenhum
O contexto da regra.
cc_toolchain obrigatório
cc_Dataset em que configuramos os recursos.
language string; or None padrão = Nenhum
A linguagem a ser configurada para: c++ ou objc (c++ padrão)
requested_features padrão = []
Lista de recursos a serem ativados.
unsupported_features padrão = []
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 de CcToolchainConfigInfo

Parâmetros

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

Contém todas as especificações de sinalização de um recurso.

Argumentos:

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

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

flag_sets: uma lista FlagSet - Se um determinado recurso estiver ativado, os conjuntos de sinalizações serão aplicados para as ações para as quais foram especificadas.

env_sets: uma lista EnvSet - Se determinado recurso estiver ativado, os conjuntos de env serão aplicados para as ações para as quais foram especificados.

requer: uma lista de conjuntos de recursos que definem quando o recurso é compatível com o conjunto de ferramentas. O recurso terá suporte se qualquer um dos conjuntos de recursos for totalmente aplicado, ou seja, quando todos os recursos de um conjunto estiverem ativados. Se for "requer" for omitido, o recurso terá suporte independentemente de quais outros recursos estejam ativados. Use isso, por exemplo, para filtrar flags dependendo do modo de build ativado (opt / fastbuild / dbg).

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

fornece: uma lista de nomes com os quais o recurso está em conflito.

Um recurso não poderá ser ativado se:
- "fornece" contém o nome de um recurso ou configuração de ação diferente que queremos ativar.
- "fornece" contém o mesmo valor de "fornece" em uma configuração de recurso ou ação diferente que queremos ativar. Use esse método para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, o que dificulta o diagnóstico de erros do compilador.
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ções ocorre pela mesma semântica dos atributos: um recurso pode "require" ou "implicar" 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 "Verdadeiro", esta ação será ativada, a menos que um tipo de regra a marque explicitamente como não compatível.

ferramentas: a ferramenta aplicada à ação será a primeira ferramenta com um conjunto de recursos que corresponda à configuração do recurso. Um erro será gerado se nenhuma ferramenta corresponder a uma configuração de recurso fornecida. Por isso, é 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 serão aplicados à ação correspondente.

implica: uma lista de recursos ou configurações de ação que são ativadas automaticamente quando essa configuração de ação é ativada. Se algum dos recursos implícitos ou configurações de ação não puder ser ativado, essa configuração de ação também não será ativada (silenciosamente).

artifact_name_patterns padrão = []

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

Argumentos:

"category_name": a categoria de artefatos a que essa seleção se aplica. Esse campo é comparado com uma lista de categorias definidas no Bazel. Exemplos de categorias incluem "linked_output" ou o artefato da seleção. Com a extensão, ela é usada 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, ele é usado para criar um nome de artefato baseado no nome do destino.

cxx_builtin_include_directories padrão = []

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

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

No momento, também usamos os caminhos C++ para a compilação em C, o que é seguro, desde que não haja conflitos de nome 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 tiver suporte a --sysroot, esses caminhos devem usar %sysroot% em vez do caminho de inclusão e especificar o atributo sysroot para fornecer ao blaze 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 do crosstool. Deve 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 padrão = Nenhum
Ignorado.
target_system_name obrigatório
O nome do sistema GNU.
target_cpu obrigatório
A string da arquitetura de destino.
target_libc obrigatório
A string da versão da libc (por exemplo, "glibc-2.2.2").
compiler obrigatório
A string da versão do compilador (por exemplo, "gcc-4.1.1").
abi_version string; or None padrão = Nenhum
A abi em uso, que é uma versão gcc. Por exemplo: “gcc-3.4”
abi_libc_version string; or None padrão = Nenhum
A versão da glibc usada pela abi que estamos usando.
tool_paths padrão = []

Locais das ferramentas.

Argumentos:

name: nome da ferramenta.

path: local da ferramenta. Pode ser um caminho absoluto (no caso de um conjunto de ferramentas não hermético) ou um caminho relativo para o pacote do cc_Dataset.

make_variables padrão = []
Uma variável do make que é acessível para as regras.
builtin_sysroot string; or None padrão = Nenhum
O sysroot integrado. Se esse atributo não estiver presente, o Bazel não vai permitir o uso de uma sysroot diferente, ou seja, com a opção --grte_top.
cc_target_os string; or None padrão = Nenhum
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 padrão = não vinculado
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por sinais de maior e menor, ou seja, #include <foo/bar/header.h>. Eles podem ser relativos à raiz de execução ou absolutos. Normalmente passado com -isystem
includes padrão = não vinculado
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchete angular e aspas.Normalmente, 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. Normalmente passado com -iquote
framework_includes padrão = não vinculado
Conjunto de caminhos de pesquisa de framework para arquivos de cabeçalho (somente na plataforma Apple)
defines padrão = não vinculado
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagada de forma transitiva para dependentes.
local_defines padrão = não vinculado
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagados de forma transitiva para 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 = Nenhum
Lista de arquivos de objetos.
pic_objects depset; or None padrão = Nenhum
Lista de arquivos de objeto pic.

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 o qual estamos criando variáveis de compilação.
feature_configuration obrigatório
Configuração do recurso a ser consultado.
source_file padrão = Nenhum
Arquivo de origem opcional para a compilação. Prefira transmitir o arquivo 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 o autor do conjunto de ferramentas pode especificar e posicionar corretamente as flags do compilador.
output_file padrão = Nenhum
Arquivo de saída opcional da compilação. Prefira transmitir o output_file aqui em vez de anexá-lo ao final da linha de comando gerada por cc_common.get_memory_inefficiency_command_line. Assim, o autor do conjunto de ferramentas poderá especificar e posicionar as flags do compilador corretamente.
user_compile_flags sequence of strings; or None padrão = Nenhum
Lista de outras flags de compilação (copts).
include_directories depset; or None padrão = Nenhum
Remoção de diretórios "include".
quote_include_directories depset; or None padrão = Nenhum
Diretórios de inclusão de aspas.
system_include_directories depset; or None padrão = Nenhum
Remoção dos diretórios incluídos do sistema.
framework_include_directories depset; or None padrão = Nenhum
A dependência do framework inclui diretórios.
preprocessor_defines depset; or None padrão = Nenhum
A desativação do pré-processador define.
thinlto_index string; or None padrão = Nenhum
Caminho do arquivo de índice da LTO.
thinlto_input_bitcode_file string; or None padrão = Nenhum
Arquivo de bitcode que é inserido no back-end de LTO.
thinlto_output_object_file string; or None padrão = Nenhum
Arquivo de objeto gerado pelo back-end de LTO.
use_pic padrão = Falso
Quando verdadeiro, a compilação gera um código independente de posição.
add_legacy_cxx_options padrão = Falso
Não utilizado.
variables_extension dict padrão = não vinculado
Um dicionário de variáveis adicionais usadas 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
objeto actions.
feature_configuration padrão = Nenhum
feature_configuration para ser consultado.
cc_toolchain padrão = Nenhum
CcToolchainInfo provedor a ser usado.
static_library File; or None padrão = Nenhum
File de biblioteca estática a ser vinculada.
pic_static_library File; or None padrão = Nenhum
File da biblioteca estática de imagens a ser vinculada.
dynamic_library File; or None padrão = Nenhum
File de 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 = Nenhum
File da biblioteca de interfaces a ser vinculada.
pic_objects sequence of Files padrão = não vinculado
Experimental, não usar
objects sequence of Files padrão = não vinculado
Experimental, não usar
padrão = Falso
Define se a biblioteca/objetos estáticos serão vinculados no bloco --whole_archive.
string padrão = ''
Substituir o caminho padrão do link da biblioteca dinâmica no diretório solib. String em branco para usar o padrão.
padrão = ''
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 o qual estamos criando variáveis de compilação.
obrigatório
Configuração do recurso a ser consultado.
None; or depset padrão = Nenhum
Remoção de diretórios em que o vinculador procurará bibliotecas no momento da vinculação.
None; or depset padrão = Nenhum
Remoção dos diretórios em que o carregador vai procurar bibliotecas no momento da execução.
None; or sequence padrão = Nenhum
Lista de sinalizações de link adicionais (linkopts).
padrão = Nenhum
Caminho do arquivo de saída opcional.
padrão = Nenhum
Caminho opcional do arquivo de parâmetro.
padrão = Nenhum
Caminho de arquivo .def opcional.
padrão = Verdadeiro
"True" ao usar o vinculador, "False" ao usar o arquivador. O autor da chamada é responsável por manter isso sincronizado com o nome da ação usado (is_using_linker = True para vincular a biblioteca executável ou dinâmica, is_using_linker = False para arquivamento da biblioteca estática).
padrão = Falso
True ao criar uma biblioteca dinâmica, False quando uma biblioteca executável ou estática. O autor da chamada é responsável por manter isso sincronizado com o nome da ação usado. Este campo será removido assim que b/65151735 for corrigido.
padrão = Verdadeiro
Quando definido como "True", o Bazel expõe "strip_debug_symbols" , que geralmente é usada para usar o vinculador para remover símbolos de depuração do arquivo de saída.
padrão = Falso
Quando definido como verdadeiro, "is_cc_test" será definida.
padrão = Verdadeiro
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 nesta entrada.
libraries None; or depset padrão = Nenhum
Lista de LibraryToLink.
None; or depset of strings; or sequence of strings padrão = Nenhum
Sinalizações de links de usuários transmitidas como strings. Aceita [String], [[String]] ou depset(String). O último método não é recomendado, já que é mantido apenas para fins de compatibilidade, e o conjunto é nivelado. Se você quiser propagar user_link_flags por meio de depsets() sem nivelamento, una-as em um LinkerInput para que não sejam niveladas até o final.
additional_inputs None; or depset padrão = Nenhum
Para entradas adicionais para 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
Desativação de LinkerInput.
None; or sequence padrão = Nenhum
Descontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se seu código é compatível com a remoção iminente.
Lista com LibraryToLink.
None; or sequence padrão = Nenhum
Descontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com --+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 de usuários transmitidas como strings.
additional_inputs None; or sequence padrão = Nenhum
Descontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com --+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 para 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)

É usada para criar regras de biblioteca que possam propagar informações downstream a fim de serem vinculadas depois por uma regra de nível superior que faça 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
objeto actions.
feature_configuration obrigatório
feature_configuration para ser consultado.
cc_toolchain obrigatório
CcToolchainInfo provedor a ser usado.
compilation_outputs obrigatório
Saídas de compilação contendo arquivos de objeto a serem vinculados.
padrão = []
Lista adicional de opções de vinculação.
linking_contexts padrão = []
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
Isso é usado para nomear os artefatos de saída das ações criadas por esse método.
language padrão = 'c++'
No momento, só há suporte para C++. Não use esse parâmetro.
padrão = Falso
Indica se a biblioteca precisa estar sempre vinculada.
additional_inputs padrão = []
Para entradas adicionais para a ação de vinculação, por exemplo: scripts de vinculação.
disallow_static_libraries padrão = Falso
Define se bibliotecas estáticas precisam ser criadas.
disallow_dynamic_library padrão = Falso
Define se uma biblioteca dinâmica precisa ser criada.
grep_includes File; or None padrão = Nenhum

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

Não use este campo, ele apenas ajuda 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 variáveis de ambiente a serem definidas para determinada ação.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração do recurso a ser consultado.
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
Crie variáveis 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 uma determinada ação.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração do recurso a ser consultado.
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 fornecidas para expansão. Nivela conjuntos aninhados e, idealmente, não deve ser usado, ou pelo menos não deve 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 do recurso a ser consultado.
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
Crie variáveis 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 uma ação específica.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração do recurso a ser consultado.
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 um determinado recurso está ativado na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
Configuração do recurso a ser consultado.
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 de C++.

Parâmetros

Parâmetro Descrição
actions obrigatório
objeto actions.
feature_configuration obrigatório
feature_configuration para ser consultado.
cc_toolchain obrigatório
CcToolchainInfo provedor a ser usado.
compilation_outputs CcCompilationOutputs; or None padrão = Nenhum
Saídas de compilação contendo arquivos de objeto a serem vinculados.
padrão = []
Lista adicional de opções do vinculador.
linking_contexts padrão = []
Vinculação de contextos de dependências que serão vinculados ao contexto de vinculação gerado por esta regra.
name obrigatório
Isso é usado para nomear os artefatos de saída das ações criadas por esse método.
language padrão = 'c++'
No momento, só há suporte para C++. Não use esse parâmetro.
output_type padrão = 'executável'
Pode ser "executável" ou "dynamic_library".
padrão = Verdadeiro
Verdadeiro para vincular dependências estaticamente e Falso dinamicamente.
stamp padrão = 0
Indica se informações de compilação serão incluídas no executável vinculado, se output_type for "executável". Se 1, as informações da versão serão sempre incluídas. Se 0 (as informações de build padrão são sempre excluídas. Se for -1, usa o comportamento padrão, que pode ser substituído pela sinalização --[no]stamp. Essa definição precisa ser deixada sem definição (ou definida como 0) ao gerar a saída executável para regras de teste.
additional_inputs sequence; or depset padrão = []
Para entradas adicionais para a ação de vinculação, por exemplo: scripts de vinculação.
grep_includes File; or None padrão = Nenhum
additional_outputs sequence padrão = não vinculado
Para 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 padrão = []
Lista de CcInfos a serem mescladas, cujos cabeçalhos serão exportados pelos campos diretos no provedor retornado.
cc_infos padrão = []
Lista de CcInfos a serem mescladas, cujos cabeçalhos não serã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 padrão = []
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=[])

Mesclar saídas de compilação.

Parâmetros

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