cc_common

Informar um problema Ver fonte Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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 a action_config especificada estiver ativada na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration FeatureConfiguration; required
Configuração do recurso a ser consultada.
action_name string; required
Name of the action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

A chave usada para recuperar o provedor que contém informações sobre a cadeia de ferramentas C++ em uso.

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=[], conly_flags=[], cxx_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], module_interfaces=unbound)

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

Parâmetros

Parâmetro Descrição
actions actions; required
Objeto actions.
feature_configuration FeatureConfiguration; required
feature_configuration a ser consultado.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
srcs sequence; o padrão é []
A lista de arquivos de origem a serem compilados.
public_hdrs sequence; o padrão é []
Lista de cabeçalhos necessários para a compilação de srcs, que podem ser incluídos de forma transitiva por regras dependentes.
private_hdrs sequence; o padrão é []
Lista de cabeçalhos necessários para a compilação de srcs e NÃO incluídos por regras dependentes.
includes sequence ou depset. O padrão é []
. Caminhos de pesquisa para arquivos de cabeçalho referenciados por colchetes angulares e aspas. Geralmente transmitido com -I. Propagado para dependentes de forma transitiva.
quote_includes sequence; o padrão é []
Caminhos de pesquisa para arquivos de cabeçalho referenciados por aspas, por exemplo, #include "foo/bar/header.h". Elas podem ser relativas à raiz de execução ou absolutas. Normalmente transmitido com -iquote. Propagado para dependentes de forma transitiva.
system_includes sequence; o 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. Geralmente transmitido com -isystem. Propagado para dependentes de forma transitiva.
framework_includes sequence; o padrão é []
Caminhos de pesquisa para arquivos de cabeçalho de frameworks da Apple. Elas podem ser relativas à raiz de execução ou absolutas. Normalmente transmitido com -F. Propagado para dependentes de forma transitiva.
defines sequence; o padrão é []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado para dependentes de forma transitiva.
local_defines sequence; o padrão é []
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagado para dependentes de forma transitiva.
include_prefix string; o padrão é ''
O prefixo a ser adicionado aos caminhos dos cabeçalhos dessa regra. Quando definido, os cabeçalhos no atributo "hdrs" dessa regra ficam acessíveis como o valor desse atributo adicionado ao caminho relativo ao repositório. O prefixo no atributo "strip_include_prefix" é removido antes de ser adicionado.
strip_include_prefix string; o padrão é ''
O prefixo a ser removido dos caminhos dos cabeçalhos desta regra. Quando definido, os cabeçalhos no atributo "hdrs" dessa regra ficam acessíveis no caminho deles com esse prefixo cortado. Se for um caminho relativo, ele será considerado 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 esse prefixo é removido.
user_compile_flags sequence; o padrão é []
Lista adicional de opções de compilação.
conly_flags sequence; o padrão é []
Lista adicional de opções de compilação para compilações em C.
cxx_flags sequence; o padrão é []
Lista adicional de opções de compilação para compilações em C++.
compilation_contexts sequence; o padrão é []
Cabeçalhos de dependências usadas para compilação.
name string; required
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 bool; o padrão é False
Se as saídas de PIC precisam ser criadas.
disallow_nopic_outputs bool; o padrão é False
Especifica se as saídas NOPIC precisam ser criadas.
additional_inputs sequence; o padrão é []
Lista de arquivos adicionais necessários para a compilação de srcs
module_interfaces sequence; o padrão é unbound
A lista de arquivos de origem de interfaces de módulo a serem compilados. Observação: esse é um recurso experimental, ativado apenas com --experimental_cpp_modules

configure_features

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

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

Parâmetros

Parâmetro Descrição
ctx ctx ou None. O padrão é None
. O contexto da regra.
cc_toolchain Info; required
cc_toolchain para o qual configuramos recursos.
language string; ou None; o padrão é None
A linguagem a ser configurada: c++ ou objc (padrão c++)
requested_features sequence; o padrão é []
Lista de recursos a serem ativados.
unsupported_features sequence; o padrão é []
Lista de recursos que não são compatí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=None, target_cpu=None, target_libc=None, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None)

Cria um provedor CcToolchainConfigInfo.

Parâmetros

Parâmetro Descrição
ctx ctx; required
O contexto da regra.
features sequence; o padrão é []
Contém todas as especificações de flag para um recurso.

Argumentos:

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

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

flag_sets: uma lista de FlagSet. Se o recurso especificado estiver ativado, os conjuntos de flags serão aplicados às ações especificadas.

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

requires: uma lista de conjuntos de recursos que definem quando esse recurso é compatível com a cadeia de ferramentas. O recurso é compatível se um dos conjuntos de recursos for totalmente aplicável, ou seja, quando todos os recursos de um conjunto estão ativados. Se requires for omitido, o recurso será compatível, independente de quais outros recursos estiverem ativados. Use isso, por exemplo, para filtrar flags dependendo do modo de build ativado (opt / fastbuild / dbg).

implies: uma lista de strings de recursos ou configurações de ações que são ativadas automaticamente quando esse recurso é ativado. Se algum dos recursos implícitos ou das configurações de ação não puder ser ativado, esse recurso também não será ativado (sem aviso).

provides: uma lista de nomes com que esse recurso entra em conflito.

Um recurso não pode ser ativado se:
- provides contiver o nome de um recurso ou configuração de ação diferente que queremos ativar.
- provides contiver o mesmo valor de um "provides" em um recurso ou configuração de ação diferente que queremos ativar. Use isso para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, o que pode levar a erros de compilador difíceis de diagnosticar.
action_configs sequence; o 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 "implicar" uma configuração de ação da mesma forma que outro recurso.

Argumentos:

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

enabled: se for "True", essa ação será ativada, a menos que um tipo de regra a marque explicitamente como não compatível.

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

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

artifact_name_patterns sequence; o 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 para essa seleção. Junto com a extensão, ele é usado para criar um nome de artefato com base no nome de destino.

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

cxx_builtin_include_directories sequence; o 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".

Atualmente, usamos os caminhos do C++ também para a compilação em C, o que é seguro 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 tiver suporte a --sysroot, esses caminhos vão usar %sysroot% em vez do caminho de inclusão e especificar o atributo sysroot para dar ao blaze as informações necessárias para fazer as substituições corretas.

toolchain_identifier string; required

O identificador exclusivo da cadeia de ferramentas na versão do crosstool. É preciso ser possível usar isso como um nome de diretório em um caminho.

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

host_system_name string ou None. O padrão é None
. Ignorado.
target_system_name string ou None. O padrão é None
. Obsoleto. O nome do sistema GNU. A string é exposta a CcToolchainInfo.target_gnu_system_name.
target_cpu string ou None; o padrão é None
. Descontinuado: use restrições baseadas na CPU. Se a string for "k8", `target_cpu` será omitido do nome do arquivo de dados de perfil FDO brutos.
target_libc string ou None. O padrão é None
. Descontinuado: use restrições com base no SO. A string da versão da libc (por exemplo, "glibc-2.2.2"). Se a string for "macosx", a plataforma será considerada como MacOS. Caso contrário, Linux. A string é exposta a CcToolchainInfo.libc.
compiler string; required
A string do compilador (por exemplo, "gcc"). O compilador do conjunto de ferramentas atual é exposto a `@bazel_tools//tools/cpp:compiler (compiler_flag)` como um valor de flag. Os destinos que exigem flags específicas do compilador podem usar as config_settings em https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD em instruções select() ou criar config_setting personalizadas se as configurações atuais não forem suficientes.
abi_version string ou None. O padrão é None
. A ABI em uso, que é uma versão do gcc. Por exemplo: "gcc-3.4". A string é definida como ABI da variável de cadeia de ferramentas C++.
abi_libc_version string ou None; o padrão é None
. A versão da glibc usada pela ABI que estamos usando. A string é definida como ABI_LIBC_VERSION da variável do conjunto de ferramentas C++.
tool_paths sequence; o padrão é []
Locais das ferramentas.

Argumentos:

name: nome da ferramenta.

path: local da ferramenta. Pode ser um caminho absoluto (no caso de uma cadeia de ferramentas não hermética) ou um caminho relativo ao pacote da cc_toolchain.

make_variables sequence; o padrão é []
Uma variável de make que é disponibilizada para as regras.
builtin_sysroot string ou None. O padrão é None
. O sysroot integrado. Se esse atributo não estiver presente, o Bazel não permitirá o uso de um sysroot diferente, ou seja, pela opção "--grte_top".

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 O padrão é unbound
Conjunto de cabeçalhos necessários para compilar esse destino.
system_includes O padrão é unbound
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchetes angulares, ou seja, #include <foo/bar/header.h>. Eles podem ser relativos à raiz de execução ou absolutos. Geralmente transmitido com -isystem
includes O padrão é unbound
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchetes angulares e aspas.Normalmente transmitido com -I
quote_includes O padrão é unbound
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por aspas, ou seja, #include "foo/bar/header.h". Elas podem ser relativas à raiz de execução ou absolutas. Geralmente transmitido com -iquote
framework_includes O padrão é unbound
. Conjunto de caminhos de pesquisa de framework para arquivos de cabeçalho (somente plataforma Apple).
defines O padrão é unbound
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado de forma transitiva para dependentes.
local_defines O padrão é unbound
Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não é propagado de forma transitiva para dependentes.

create_compilation_outputs

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

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

Parâmetros

Parâmetro Descrição
objects depset ou None; o padrão é None
. Lista de arquivos de objeto.
pic_objects depset ou None; o padrão é None
. 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 Info; required
cc_toolchain for which we are creating build variables.
feature_configuration FeatureConfiguration; required
Configuração do recurso a ser consultada.
source_file O padrão é None
. Arquivo de origem opcional para a compilação. Prefira transmitir source_file aqui em vez de anexá-lo ao final da linha de comando gerada por cc_common.get_memory_inefficient_command_line. Assim, o autor da cadeia de ferramentas pode especificar e posicionar corretamente as flags do compilador.
output_file O padrão é None
Arquivo de saída opcional da compilação. Prefira transmitir output_file aqui em vez de anexá-lo ao final da linha de comando gerada por cc_common.get_memory_inefficient_command_line. Assim, o autor da cadeia de ferramentas pode especificar e posicionar corretamente as flags do compilador.
user_compile_flags sequência de strings ou None; o padrão é None
. Lista de flags de compilação adicionais (copts).
include_directories depset ou None; o padrão é None
. Depset de diretórios de inclusão.
quote_include_directories depset ou None; o padrão é None
. Depset de diretórios de inclusão de cotações.
system_include_directories depset ou None; o padrão é None
. Depset de diretórios de inclusão do sistema.
framework_include_directories depset ou None; o padrão é None
. Depset de diretórios de inclusão de framework.
preprocessor_defines depset ou None. O padrão é None
. Depset de definições do pré-processador.
thinlto_index string ou None; o padrão é None
Caminho do arquivo de índice LTO.
thinlto_input_bitcode_file string ou None; o padrão é None
Arquivo bitcode que é inserido no back-end da LTO.
thinlto_output_object_file string ou None. O padrão é None
. Arquivo de objeto gerado pelo back-end da LTO.
use_pic bool; o padrão é False
Quando verdadeiro, a compilação gera um código independente de posição.
add_legacy_cxx_options bool; o padrão é False
Não usado.
variables_extension dict; o padrão é unbound
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 Objeto required
actions.
feature_configuration O padrão é None
feature_configuration a ser consultado.
cc_toolchain O padrão é o provedor None
CcToolchainInfo a ser usado.
static_library Arquivo ou None. O padrão é None
File da biblioteca estática a ser vinculada.
pic_static_library Arquivo ou None; o padrão é None
File da biblioteca estática pic a ser vinculada.
dynamic_library Arquivo ou None. O padrão é None
File da biblioteca dinâmica a ser vinculada. Sempre usado para tempo de execução e vinculação se interface_library não for transmitido.
interface_library Arquivo ou None. O padrão é None
File da biblioteca de interface a ser vinculada.
pic_objects sequência de Files; o padrão é unbound
Experimental, não use
objects sequência de Files; o padrão é unbound
Experimental, não use
bool; o padrão é False
Indica se a biblioteca/os objetos estáticos serão vinculados no bloco --whole_archive.
string; o padrão é ''
Substitui o caminho padrão do link da biblioteca dinâmica no diretório solib. String vazia para usar o padrão.
string; o padrão é ''
Substitua o caminho padrão do link da biblioteca de interface no diretório solib. String vazia para usar o padrão.

Variables cc_common.create_link_variables(cc_toolchain, feature_configuration, library_search_directories=[], runtime_library_search_directories=[], user_link_flags=[], output_file=None, param_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 link usadas para vincular ações.

Parâmetros

Parâmetro Descrição
Info; required
cc_toolchain for which we are creating build variables.
FeatureConfiguration; required
Configuração do recurso a ser consultada.
depset; o padrão é []
Depset de diretórios em que o vinculador vai procurar bibliotecas no momento da vinculação.
depset; o padrão é []
Depset de diretórios em que o carregador vai procurar bibliotecas no momento da execução.
sequence; o padrão é []
Lista de flags de vinculação adicionais (linkopts).
O padrão é None
Caminho opcional do arquivo de saída.
O padrão é None
Caminho do arquivo de parâmetro opcional.
bool; o padrão é True
"True" ao usar o vinculador e "False" ao usar o arquivador. O caller é responsável por manter isso sincronizado com o nome da ação usada (is_using_linker = True para vincular executável ou biblioteca dinâmica, is_using_linker = False para arquivar biblioteca estática).
bool; o padrão é False
True ao criar uma biblioteca dinâmica e False ao criar uma biblioteca executável ou estática. O caller é responsável por manter isso sincronizado com o nome da ação usada. Esse campo será removido quando o problema b/65151735 for corrigido.
bool; o padrão é True
Quando definido como "False", o Bazel expõe a variável "strip_debug_symbols", que geralmente é usada para usar o vinculador e remover símbolos de depuração do arquivo de saída.
bool; o padrão é False
Quando definido como "true", a variável "is_cc_test" é definida.
bool; o padrão é True
Não usado.

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 Rótulo; obrigatório
O rótulo da meta que produziu todos os arquivos usados nesta entrada.
libraries None ou depset; o padrão é None
Lista de LibraryToLink.
None; ou depset de strings; ou sequence de strings; o padrão é None
Flags de link do usuário transmitidas como strings. Aceita [String], [[String]] ou depset(String). A segunda opção não é recomendada porque só é mantida para fins de compatibilidade, e o depset é achatado. Se você quiser propagar user_link_flags usando depsets() não simplificados, encapsule-os em um LinkerInput para que não sejam simplificados até o final.
additional_inputs None ou depset; o padrão é None
. Para outras entradas na ação de vinculação, por exemplo, scripts de vinculação.

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs)

Cria uma LinkingContext.

Parâmetros

Parâmetro Descrição
linker_inputs depset; required
Depset de LinkerInput.

create_linking_context_from_compilation_outputs

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

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

Parâmetros

Parâmetro Descrição
actions actions; required
Objeto actions.
name string; required
Usado para nomear os artefatos de saída das ações criadas por esse método.
feature_configuration FeatureConfiguration; required
feature_configuration a ser consultado.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
language string; o padrão é 'c++'
Por enquanto, apenas C++ é compatível. Não use esse parâmetro.
disallow_static_libraries bool; o padrão é False
Se as bibliotecas estáticas devem ser criadas.
disallow_dynamic_library bool; o padrão é False
Indica se uma biblioteca dinâmica precisa ser criada.
compilation_outputs CcCompilationOutputs; required
Saídas de compilação que contêm arquivos de objeto para vincular.
linking_contexts sequence; o 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.
sequence; o padrão é []
Lista adicional de opções de vinculação.
bool; o padrão é False
Se esta biblioteca deve ser sempre vinculada.
additional_inputs sequence; o padrão é []
Para outras entradas na ação de vinculação, por exemplo, scripts de vinculação.
variables_extension dict; o padrão é unbound
Variáveis adicionais a serem transmitidas para a configuração da cadeia de ferramentas ao criar a linha de comando do link.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

Criar contexto de compilação LTO

Parâmetros

Parâmetro Descrição
objects dict; o padrão é {}
mapa do objeto completo para o objeto de índice

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

Não use esse campo. O único objetivo 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 FeatureConfiguration; required
Configuração do recurso a ser consultada.
action_name string; required
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 Variáveis; 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 a ação especificada.

Parâmetros

Parâmetro Descrição
feature_configuration FeatureConfiguration; required
Configuração do recurso a ser consultada.
action_name string; required
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 flags de linha de comando simplificadas para determinada ação, usando as variáveis fornecidas para expansão. Transforma conjuntos aninhados em uma estrutura simples e, idealmente, não deve ser usado ou, pelo menos, não deve durar mais que a análise. Estamos trabalhando em uma função eficiente em termos de memória que retorna Args.

Parâmetros

Parâmetro Descrição
feature_configuration FeatureConfiguration; required
Configuração do recurso a ser consultada.
action_name string; required
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 Variáveis; obrigatório
Variáveis de build 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 FeatureConfiguration; required
Configuração do recurso a ser consultada.
action_name string; required
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 o recurso especificado estiver ativado na configuração de recursos.

Parâmetros

Parâmetro Descrição
feature_configuration FeatureConfiguration; required
Configuração do recurso a ser consultada.
feature_name string; required
Nome do recurso.

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

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

Parâmetros

Parâmetro Descrição
actions actions; required
Objeto actions.
name string; required
Usado para nomear os artefatos de saída das ações criadas por esse método.
feature_configuration FeatureConfiguration; required
feature_configuration a ser consultado.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
language string; o padrão é 'c++'
Por enquanto, apenas C++ é compatível. Não use esse parâmetro.
output_type string; o padrão é 'executable'
Pode ser "executable" ou "dynamic_library".
bool; o padrão é True
True para vincular dependências de maneira estática e False de maneira dinâmica.
compilation_outputs CcCompilationOutputs ou None; o padrão é None
Saídas de compilação que contêm arquivos de objeto para vinculação.
linking_contexts sequence; o padrão é []
Contextos de vinculação de dependências a serem vinculados ao contexto de vinculação gerado por esta regra.
sequence; o padrão é []
Lista adicional de opções de vinculador.
stamp int; o padrão é 0
Inclui informações de build no executável vinculado, se output_type for "executable". Se for 1, as informações de build sempre serão incluídas. Se 0, as informações de build padrão serão sempre excluídas. Se for -1, usa o comportamento padrão, que pode ser substituído pela flag --[no]stamp. Isso precisa ser desmarcado (ou definido como 0) ao gerar a saída executável para regras de teste.
additional_inputs sequence ou depset.O padrão é []
. Para outras entradas na ação de vinculação, por exemplo, scripts de vinculação.
additional_outputs sequence; o padrão é []
Para outras saídas da ação de vinculação, por exemplo, arquivos de mapa.
variables_extension dict; o padrão é {}
Variáveis adicionais a serem transmitidas para a configuração da cadeia de ferramentas ao criar a linha de comando do link.

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 sequence; o padrão é []
Lista de CompilationContextss a serem mesclados. 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=[])

Mescla saídas de compilação.

Parâmetros

Parâmetro Descrição
compilation_outputs sequence; o padrão é []