Utilitários para compilação, vinculação e geração de linha de comando em C++.
Membros
- action_is_enabled
- CcToolchainInfo
- compile
- configure_features
- create_cc_toolchain_config_info
- create_compilation_context
- create_compilation_outputs
- create_compile_variables
- create_library_to_link
- create_link_variables
- create_linker_input
- create_linking_context
- create_linking_context_from_compilation_outputs
- create_lto_compilation_context
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- link
- merge_compilation_contexts
- merge_compilation_outputs
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:
obrigatório configuração do recurso a ser consultado. |
action_name
|
string:
obrigatório Nome da action_config. |
CcToolchainInfo
Provider cc_common.CcToolchainInfoA 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 de (
CompilationContext
, CcCompilationOutputs
).
Parâmetros
Parâmetro | Descrição |
---|---|
actions
|
actions:
objeto actions obrigatório.
|
feature_configuration
|
FeatureConfiguration:
obrigatório feature_configuration a ser consultado.
|
cc_toolchain
|
Informações:
CcToolchainInfo provedor obrigatório.
|
srcs
|
sequência:
o padrão é [] . A lista de arquivos de origem a serem compilados. |
public_hdrs
|
sequência:
o padrão é [] . Lista de cabeçalhos necessários para a compilação de srcs e pode ser incluída por regras dependentes de forma transitiva. |
private_hdrs
|
sequência:
o 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
|
sequência 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 dependências de forma transitiva. |
quote_includes
|
sequência:
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. Geralmente transmitido com -iquote. Propagado para dependências de forma transitiva. |
system_includes
|
sequência:
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 dependências de forma transitiva. |
framework_includes
|
sequência;
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. Geralmente é transmitido com -F. Propagado para dependências de forma transitiva. |
defines
|
sequência:
o padrão é [] . Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado para dependências de forma transitiva. |
local_defines
|
sequência:
o padrão é [] . Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Não propagado para dependentes transitivamente. |
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 desta regra são acessíveis em "is", o valor deste atributo precedido pelo 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 são acessados no caminho com esse prefixo cortado. Se for um caminho relativo, ele será considerado relativo ao pacote. Se for absoluto, será entendido como um caminho relativo ao repositório. O prefixo no atributo "include_prefix" é adicionado depois que ele é removido. |
user_compile_flags
|
sequence:
o padrão é [] . Lista adicional de opções de compilação. |
conly_flags
|
sequência:
o padrão é [] Lista adicional de opções de compilação para compilações em C. |
cxx_flags
|
sequência;
o padrão é [] Lista adicional de opções de compilação para compilações em C++. |
compilation_contexts
|
sequência:
o padrão é [] Cabeçalhos de dependências usadas para a 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 Indica se as saídas de PIC precisam ser criadas. |
disallow_nopic_outputs
|
bool;
o padrão é False Indica se as saídas de NOPIC precisam ser criadas. |
additional_inputs
|
sequência;
o padrão é [] Lista de arquivos adicionais necessários para a compilação de srcs |
module_interfaces
|
sequência:
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
|
Informações:
necessário cc_toolchain para o qual configuramos recursos. |
language
|
string ou None ;
O padrão é None A linguagem a ser configurada: C++ ou Objective-C (padrão C++) |
requested_features
|
sequência:
o padrão é [] . Lista de recursos a serem ativados. |
unsupported_features
|
sequência:
o padrão é [] Lista de recursos que não têm suporte para 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: obrigatório O contexto da regra. |
features
|
sequência:
o padrão é [] . Contém todas as especificações de sinalizações de um recurso. Argumentos:
- provides contém o nome de um recurso ou configuração de ação diferente que queremos ativar.- provides contém o mesmo valor que um 'fornece' em um recurso ou configuração de ação diferente que queremos ativar. Use essa opção para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, o que pode levar a erros difíceis de diagnosticar no compilador.
|
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 com a mesma semântica dos recursos: um recurso pode "requerer" ou "implicar" uma configuração de ação da mesma forma que outro recurso. Argumentos:
|
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:
|
cxx_builtin_include_directories
|
sequência;
o 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 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 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 precisarão usar %sysroot% em vez do caminho de inclusão e especificar o atributo sysroot para fornecer a 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 da ferramenta de crosstool. É necessário que seja possível usar isso como um nome de diretório em um caminho. Ele precisa corresponder ao 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 em CPU. Se a string for "k8", "target_cpu" será omitido do nome de arquivo dos dados brutos do perfil FDO. |
target_libc
|
string ou None ;
o padrão é None Descontinuado: use restrições baseadas no SO. A string de 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;
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 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 nas instruções select() ou criar uma config_setting personalizada 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 variável do conjunto de ferramentas C++. |
abi_libc_version
|
string ou None ;
o padrão é None . A versão do glibc usada pela ABI que estamos usando. A string é definida como a variável ABI_LIBC_VERSION do conjunto de ferramentas C++. |
tool_paths
|
sequência:
o padrão é [] . Localizações da ferramenta. Argumentos:
|
make_variables
|
sequência:
o padrão é [] . Uma variável de make que é 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, 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, 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 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 do 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 transitivamente 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 transitivamente para dependentes. |
create_compilation_outputs
CcCompilationOutputs cc_common.create_compilation_outputs(objects=None, pic_objects=None)Crie 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 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
|
Informações;
requerido cc_toolchain para o qual estamos criando variáveis de build. |
feature_configuration
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
source_file
|
O padrão é None , arquivo de origem opcional para a compilação. É recomendável transmitir "source_file" aqui em vez de adicioná-lo ao final da linha de comando gerada em 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. É recomendável transmitir output_file aqui em vez de adicioná-lo ao final da linha de comando gerada em cc_common.get_memory_inefficient_command_line, porque 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 do framework inclui diretórios. |
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 do LTO. |
thinlto_input_bitcode_file
|
string ou None ;
o padrão é None . Arquivo de bytecode que é inserido no back-end de LTO. |
thinlto_output_object_file
|
string ou None ;
o padrão é None Arquivo de objeto gerado pelo back-end do 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. |
create_library_to_link
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
|
O objeto actions
é obrigatório. |
feature_configuration
|
O padrão é None feature_configuration para 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 de pic a ser vinculada.
|
dynamic_library
|
Arquivo ou None ;
o padrão é None File da biblioteca dinâmica a ser vinculada. Sempre usado para 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 arquivos:
o padrão é unbound Experimental, não use |
objects
|
sequência de arquivos:
o padrão é unbound Experimental, não use |
alwayslink
|
bool;
o padrão é False Indica se a biblioteca/objetos estáticos serão vinculados no bloco --whole_archive. |
dynamic_library_symlink_path
|
string;
O padrão é '' Substitua o caminho padrão do link da biblioteca dinâmica no diretório solib. String vazia para usar o padrão. |
interface_library_symlink_path
|
string;
O padrão é '' Override o caminho padrão do link da biblioteca de interface no diretório solib. String vazia para usar o padrão. |
create_link_variables
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 as variáveis de link usadas para vincular ações.
Parâmetros
Parâmetro | Descrição |
---|---|
cc_toolchain
|
Informações;
requerido cc_toolchain para o qual estamos criando variáveis de build. |
feature_configuration
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
library_search_directories
|
depset:
o padrão é [] . Depset de diretórios em que o vinculador vai procurar bibliotecas no momento da vinculação. |
runtime_library_search_directories
|
depset:
o padrão é [] . Depset de diretórios em que o loader vai procurar bibliotecas no momento da execução. |
user_link_flags
|
sequência:
o padrão é [] . Lista de flags de vinculação adicionais (linkopts). |
output_file
|
O padrão é None Caminho de arquivo de saída opcional. |
param_file
|
O padrão é None Caminho do arquivo de parâmetro opcional. |
is_using_linker
|
bool.
O padrão é True . Verdadeiro ao usar o vinculador. Falso ao usar o arquivador. O autor da chamada é responsável por manter essa sincronização com o nome da ação usada (is_using_linker = True para vincular executáveis ou bibliotecas dinâmicas, is_using_linker = False para arquivar bibliotecas estáticas). |
is_linking_dynamic_library
|
bool;
o padrão é False Verdadeiro ao criar uma biblioteca dinâmica, falso ao criar uma biblioteca executável ou estática. O autor da chamada é responsável por manter essa sincronização com o nome da ação usada. Esse campo será removido quando o b/65151735 for corrigido. |
must_keep_debug
|
bool;
o padrão é True Quando definido como False, 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. |
use_test_only_flags
|
bool;
o padrão é False Quando definido como "true", a variável "is_cc_test" será definida. |
is_static_linking_mode
|
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 do destino que produziu todos os arquivos usados nesta entrada. |
libraries
|
None ou depset.
O padrão é None . Lista de LibraryToLink .
|
user_link_flags
|
None ; ou depset de strings; ou sequência de strings;
O padrão é None Flags de vinculação do usuário transmitidas como strings. Aceita [String], [[String]] ou depset(String). O segundo é desencorajado, porque é mantido apenas para fins de compatibilidade. O depset é achatado. Se você quiser propagar user_link_flags usando depsets() não achatados, coloque-os em um LinkerInput para que não sejam achatados até o fim. |
additional_inputs
|
None ou depset.O padrão é None . Para outras entradas na ação de vinculação, por exemplo, vinculação de scripts. |
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 Depset de LinkerInput .
|
libraries_to_link
|
None ou sequência.
O padrão é None . Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa dele. Ele está desativado com --incompatible_require_linker_input_cc_api . Use essa flag para verificar se o código é compatível com a remoção iminente. Lista de LibraryToLink .
|
user_link_flags
|
None ou sequência.
O padrão é None . Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa dele. Ele está desativado com --incompatible_require_linker_input_cc_api . Use essa flag para verificar se o código é compatível com a remoção iminente. Lista de flags de vinculação do usuário transmitidas como strings. |
additional_inputs
|
None ou sequência.
O padrão é None . Descontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa dele. Ele está desativado com --incompatible_require_linker_input_cc_api . Use essa flag para verificar se o código é compatível com a remoção iminente. Para outras entradas na ação de vinculação, por exemplo, vinculação de scripts. |
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 possam propagar informações para serem vinculadas posteriormente por uma regra de nível superior que faz vinculação transitiva para criar um executável ou uma biblioteca dinâmica. Retorna a tupla de (
CcLinkingContext
, CcLinkingOutputs
).
Parâmetros
Parâmetro | Descrição |
---|---|
actions
|
actions:
objeto actions obrigatório.
|
name
|
string;
required É usado para nomear os artefatos de saída das ações criadas por esse método. |
feature_configuration
|
FeatureConfiguration:
obrigatório feature_configuration a ser consultado.
|
cc_toolchain
|
Informações:
CcToolchainInfo provedor obrigatório a ser usado.
|
language
|
string;
o padrão é 'c++' Somente C++ é aceito por enquanto. Não use esse parâmetro. |
disallow_static_libraries
|
bool;
o padrão é False Indica se as bibliotecas estáticas precisam ser criadas. |
disallow_dynamic_library
|
bool;
O padrão é False Indica se uma biblioteca dinâmica precisa ser criada. |
compilation_outputs
|
CcCompilationOutputs:
obrigatório Saídas de compilação que contêm arquivos de objeto para vincular. |
linking_contexts
|
sequência:
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. |
user_link_flags
|
sequência:
o padrão é [] Lista adicional de opções de vinculação. |
alwayslink
|
bool;
O padrão é False Indica se essa biblioteca precisa ser sempre vinculada. |
additional_inputs
|
sequência:
o padrão é [] Para outras entradas na ação de vinculação, por exemplo, vinculação de scripts. |
variables_extension
|
dict:
o padrão é unbound Variáveis adicionais para transmitir à configuração do conjunto de ferramentas ao criar a linha de comando de vinculação. |
create_lto_compilation_context
LtoCompilationContext cc_common.create_lto_compilation_context(objects={})Criar o contexto de compilação de LTO
Parâmetros
Parâmetro | Descrição |
---|---|
objects
|
dict:
o padrão é o mapa {} de objeto completo para 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 uma determinada ação.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
action_name
|
string;
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
|
Variáveis:
obrigatório Crie variáveis para serem usadas na expansão de modelos. |
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
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
action_name
|
string;
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 flags de linha de comando achatadas para uma determinada ação, usando variáveis específicas para expansão. Aplana conjuntos aninhados e, de preferência, 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
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
action_name
|
string;
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
|
Variáveis:
obrigatório Variáveis de build a serem usadas para expansões de modelos. |
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
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
action_name
|
string;
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 elemento estiver ativado na configuração.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
FeatureConfiguration:
obrigatório configuração do recurso a ser consultado. |
feature_name
|
string;
obrigatório Nome do recurso. |
link
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:
objeto actions obrigatório.
|
name
|
string;
required É usado para nomear os artefatos de saída das ações criadas por esse método. |
feature_configuration
|
FeatureConfiguration:
obrigatório feature_configuration a ser consultado.
|
cc_toolchain
|
Informações:
CcToolchainInfo provedor obrigatório.
|
language
|
string;
o padrão é 'c++' Somente C++ é aceito por enquanto. Não use esse parâmetro. |
output_type
|
string;
o padrão é 'executable' Pode ser 'executable' ou 'dynamic_library'. |
link_deps_statically
|
bool:
o padrão é True . Verdadeiro para vincular dependências de forma estática, falso para vincular de forma dinâmica. |
compilation_outputs
|
CcCompilationOutputs ou None ;
o padrão é None Saídas de compilação que contêm arquivos de objeto para vincular. |
linking_contexts
|
sequência:
o padrão é [] Vinculação de contextos de dependências para serem vinculadas ao contexto de vinculação gerado por essa regra. |
user_link_flags
|
sequência:
o padrão é [] Lista adicional de opções do vinculador. |
stamp
|
int;
o padrão é 0 Incluir informações de build no executável vinculado, se output_type for "executable". Se 1, as informações do build são sempre incluídas. Se for 0, as informações de build padrão serão sempre excluídas. Se for -1, o comportamento padrão será usado, que pode ser substituído pela flag --[no]stamp. Ele precisa ser redefinido (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, vinculação de scripts. |
additional_outputs
|
sequência:
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 para transmitir à 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
CompilationContexts
s em um.
Parâmetros
Parâmetro | Descrição |
---|---|
compilation_contexts
|
sequência:
o padrão é [] . Lista de CompilationContexts s 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=[])Mesclar saídas de compilação.
Parâmetros
Parâmetro | Descrição |
---|---|
compilation_outputs
|
sequência;
o padrão é [] . |