cc_common

Informar um problema Acessar fonte

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
A configuração de recursos a ser consultada.
action_name obrigatório
Nome da 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=[])

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 necessário
feature_configuration para ser consultado.
cc_toolchain provedor
CcToolchainInfo necessário a ser usado.
srcs o padrão é []
A lista de arquivos de origem a serem compilados.
public_hdrs o padrão é []
Lista de cabeçalhos necessários para a compilação de srcs e pode ser incluído de maneira transitiva por regras dependentes.
private_hdrs o padrão é []
Lista de cabeçalhos necessários para a compilação de srcs e NÃO para serem incluídos pelas regras dependentes.
includes Sequence ou depset. O padrão é []
Pesquisa caminhos para arquivos de cabeçalho referenciados por colchetes angulares e aspas. Geralmente, é transmitido com -I. Propagado para os dependentes de forma transitiva.
quote_includes o padrão é []
Pesquisar caminhos para arquivos de cabeçalho referenciados por aspas, por exemplo, #include "foo/bar/header.h". Elas podem ser relativas à raiz executiva ou absolutas. Geralmente transmitido com -iquote. Propagado para os dependentes de forma transitiva.
system_includes o padrão é []
Pesquisar caminhos para arquivos de cabeçalho referenciados por colchetes angulares (por exemplo, #include <foo/bar/header.h>). Eles podem ser relativos à raiz "exec" ou absolutos. Geralmente transmitido com -isystem. Propagado para os dependentes de forma transitiva.
framework_includes o padrão é []
Pesquisar caminhos para arquivos de cabeçalho de frameworks da Apple. Elas podem ser relativas à raiz executiva ou absolutas. Geralmente transmitido com -F. Propagado para os dependentes de forma transitiva.
defines o padrão é []
O conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado para os dependentes de forma transitiva.
local_defines o padrão é []
O conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não é propagado para os dependentes de forma transitiva.
include_prefix 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 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 O padrão é ''
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, será entendido como um caminho relativo ao repositório. O prefixo no atributo include_prefix é adicionado depois que esse prefixo é removido.
user_compile_flags o padrão é []
Lista adicional de opções de compilação.
compilation_contexts o padrão é []
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 o padrão é False
Define se as saídas PIC precisam ser criadas.
disallow_nopic_outputs o padrão é False
Define se as saídas NOPIC precisam ser criadas.
additional_inputs o padrão é []
Lista de arquivos adicionais necessários para a compilação de srcs

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; ou None. O padrão é None
o contexto da regra.
cc_toolchain required
cc_dataset para a qual configuramos recursos.
language string; ou None; o padrão é None
A linguagem a ser configurada: c++ ou objc (c++ padrão)
requested_features O padrão é []
Lista de recursos que serão ativados.
unsupported_features 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, target_cpu, target_libc, 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 obrigatório
O contexto da regra.
features 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 uma mudança no Bazel adicionando uma seção "feature" ao conjunto de ferramentas e a string correspondente como recurso no arquivo BUILD.

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

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

env_sets: uma lista de EnvSet. Se o recurso fornecido 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 o conjunto de ferramentas. O recurso terá suporte se algum dos conjuntos de recursos for totalmente aplicável, ou seja, quando todos os recursos de um conjunto estiverem ativados. Se requires for omitido, o recurso terá suporte independente de quais outros recursos forem ativados. Use essa opção, por exemplo, para filtrar flags de acordo com o modo de build ativado (opt / fastbuild / dbg).

implies: 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).

provides: uma lista dos nomes com os quais esse recurso está 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 tiver o mesmo valor de "oferece" em uma configuração de ação ou recurso diferente que queremos ativar. Use esse método para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, o que leva a erros de compilador difíceis de diagnosticar.
action_configs 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 em 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 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".

enabled: se for "Verdadeiro", a 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 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 determinada estiver ativada, os conjuntos de sinalizações serão aplicados à ação correspondente.

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

artifact_name_patterns o padrão é []
O nome de um artefato de 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. Os exemplos de categorias incluem "linked_output" ou o artefato desta 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 a seleção. Com o prefixo, ele é usado para criar um nome de artefato com base no nome de destino.

cxx_builtin_include_directories o padrão é []

Diretórios integrados para compilação 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".

No momento, usamos os caminhos 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 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 do crosstool. Precisa 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 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"). Se a string for "macosx", a plataforma será considerada MacOS. Caso contrário, o Linux
compiler obrigatório
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 sinalização. Os destinos que exigem flags específicas do compilador podem usar 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 existentes não forem suficientes.
abi_version string; ou None; o padrão é None
A abi em uso, que é uma versão do gcc. E.g.: "gcc-3,4"
abi_libc_version string ou None. O padrão é None
A versão do glibc usada pela abi que estamos usando.
tool_paths o 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 o padrão é []
Uma variável de criação que se torna acessível para 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, com a 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 este destino
system_includes o padrão é unbound
O 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 exec ou absolutos. Geralmente transmitido com -isystem
includes o padrão é unbound
Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchete angular e aspas.Geralmente 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 executiva ou absolutas. Geralmente transmitido com -iquote
framework_includes o padrão é unbound
Conjunto de caminhos de pesquisa do framework para arquivos principais (somente na plataforma Apple)
defines o padrão é unbound
O conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado transitivamente para os dependentes.
local_defines o padrão é unbound
O conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagado 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 ou None; o padrão é None
Lista de arquivos de objetos.
pic_objects depset ou None; o padrão é None
Lista de arquivos de objetos 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 que estamos criando variáveis de build.
feature_configuration obrigatório
A configuração de recursos a ser consultada.
source_file o padrão é None
Arquivo de origem opcional para a compilação. Prefira passar 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 da cadeia de ferramentas é responsável por especificar e posicionar corretamente as sinalizações do compilador.
output_file o padrão é 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 o autor da cadeia de ferramentas é responsável por especificar e posicionar corretamente as sinalizações do compilador.
user_compile_flags sequência de strings ou None. O padrão é None.
Lista de sinalizações 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 aspas.
system_include_directories depset ou None; o padrão é None
Conjunto de diretórios de inclusão do sistema.
framework_include_directories depset ou None; o padrão é None
Depset do framework inclui diretórios.
preprocessor_defines depset ou None; o padrão é None
Desativação do pré-processador definido.
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 é entrada para o back-end LTO.
thinlto_output_object_file string; ou None. O padrão é None
Arquivo de objeto gerado pelo back-end da LTO.
use_pic o padrão é False
Quando verdadeiro, a compilação vai gerar um código independente de posição.
add_legacy_cxx_options o padrão é False
Não usado.
variables_extension dict: o padrão é unbound
. 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
objeto actions.
feature_configuration o padrão é None
feature_configuration a ser consultado.
cc_toolchain o padrão é None
CcToolchainInfo provedor a ser usado.
static_library File ou None. O padrão é None
File da biblioteca estática a ser vinculada.
pic_static_library File ou None. O padrão é None
File da biblioteca estática da imagem a ser vinculada.
dynamic_library File ou None. O padrão é None
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 ou None. O padrão é None
File da biblioteca de interface a ser vinculada.
pic_objects Sequence de Files. O padrão é unbound
Experimental, não usar
objects Sequence de Files. O padrão é unbound
Experimental, não usar
o padrão é False
Define se a biblioteca estática/objetos será vinculada no bloco --whole_Archive.
string; o padrão é ''
Modifique o caminho padrão do link da biblioteca dinâmica no diretório solib. String em branco para usar o padrão.
o padrão é ''
Substitui 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, 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 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
A configuração de recursos a ser consultada.
None ou depset; o padrão é None
Desativação de diretórios em que o vinculador procura bibliotecas no momento do link.
None ou depset; o padrão é None
Conjunto de diretórios em que o carregador procurará bibliotecas no momento da execução.
None ou sequência. O padrão é None
Lista de sinalizações de link adicionais (linkopts).
o padrão é None
Caminho opcional do arquivo de saída.
o padrão é None
Caminho do arquivo de parâmetros opcional.
O padrão é True
Verdadeiro ao usar o vinculador, Falso quando o arquivador. O autor da chamada é responsável por manter a sincronização com o nome da ação usado (is_using_linker = True para vincular bibliotecas executáveis ou dinâmicas, is_using_linker = False para arquivamento de bibliotecas estáticas).
o padrão é 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 sincronização com o nome da ação usada. Este campo será removido assim que b/65151735 for corrigido.
O padrão é True
Quando definido como falso, o Bazel vai expor a variável "strip_debug_symbols", que normalmente é usada para usar o vinculador para remover símbolos de depuração do arquivo de saída.
o padrão é False
Quando definida como "true", a variável "is_cc_test" é definida.
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 obrigatório
O rótulo do destino que produziu todos os arquivos usados nessa entrada.
libraries None ou depset. O padrão é None
Lista de LibraryToLink.
None; ou depset de strings; ou sequência de strings. O padrão é 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, e o depset é nivelado. Se você quiser propagar user_link_flags por depsets() sem nivelamento, envolva-os em um LinkerInput para que não sejam nivelados até o final.
additional_inputs None ou depset; o padrão é None
Para mais entradas 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 ou depset. O padrão é None
Desativação de LinkerInput.
None ou sequência. O padrão é None
Descontinuado. Este parâmetro está obsoleto e será removido em breve. Não dependa disso. Ela está desativada com --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se o código é compatível com a remoção iminente.
Lista de LibraryToLink.
None ou sequência. O padrão é None
Descontinuado. Este parâmetro está obsoleto e será removido em breve. Não dependa disso. Ela está desativada com --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se o código é compatível com a remoção iminente.
Lista de sinalizações de links do usuário transmitidas como strings.
additional_inputs None ou sequência. O padrão é None
Descontinuado. Este parâmetro está obsoleto e será removido em breve. Não dependa disso. Ela está desativada com --+incompatible_require_linker_input_cc_api. Use essa sinalização para verificar se o código é compatível com a remoção iminente.
Para informações 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)

É 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 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 necessário
feature_configuration para ser consultado.
cc_toolchain provedor
CcToolchainInfo necessário a ser usado.
compilation_outputs necessário
Saídas de compilação contendo arquivos de objeto a serem vinculados.
o padrão é []
Lista adicional de opções de vinculação.
linking_contexts o padrão é []
Bibliotecas de dependências. Essas bibliotecas serão vinculadas ao artefato de saída da chamada link(), seja ela 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 o padrão é 'c++'
No momento, só há suporte para C++. Não use esse parâmetro.
O padrão é False
Define se essa biblioteca precisa ser sempre vinculada.
additional_inputs o padrão é []
Para mais entradas para a ação de vinculação, por exemplo, scripts de vinculação.
disallow_static_libraries o padrão é False
Define se bibliotecas estáticas precisam ser criadas.
disallow_dynamic_library o padrão é False
Define se uma biblioteca dinâmica precisa ser criada.

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

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

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
A configuração de recursos 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 do modelo.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

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

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
A configuração de recursos 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 niveladas para determinada ação, usando variáveis determinadas 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
A configuração de recursos 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 uma determinada ação.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
A configuração de recursos 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 o recurso está ativado na configuração do recurso.

Parâmetros

Parâmetro Descrição
feature_configuration obrigatório
A configuração de recursos 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=[], additional_outputs=unbound)

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

Parâmetros

Parâmetro Descrição
actions obrigatório
objeto actions.
feature_configuration necessário
feature_configuration para ser consultado.
cc_toolchain provedor
CcToolchainInfo necessário a ser usado.
compilation_outputs CcCompilationOutputs ou None; o padrão é None
Saídas de compilação contendo arquivos de objeto a serem vinculados.
o padrão é []
Lista adicional de opções do vinculador.
linking_contexts o padrão é []
Vincular contextos das 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 o padrão é 'c++'
No momento, só há suporte para C++. Não use esse parâmetro.
output_type o padrão é 'executable'
Pode ser "executável" ou "dynamic_library".
O padrão é True
Verdadeiro para vincular dependências estaticamente, Falso dinamicamente.
stamp o padrão é 0
Define se informações de build no executável vinculado serão incluídas, se output_type for "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. Essa opçã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 ou depset. O padrão é []
Para mais entradas para a ação de vinculação, por exemplo: scripts de vinculação.
additional_outputs sequência; o padrão é unbound
. Para saídas adicionais para a ação de vinculação, por exemplo: arquivos de mapa.

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 o 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 o padrão é []