Participantes
- action_is_enabled
- CcToolchainInfo
- 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
- 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 o action_config estiver ativado na configuração do recurso.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatória Configuração de recursos a ser consultada. |
action_name
|
obrigatório Nome do action_config. |
CcToolchainInfo
Provider cc_common.CcToolchainInfoA chave usada para recuperar o provedor que contém informações sobre o conjunto de ferramentas C++ que está sendo usado.
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; ou None ;
o padrão é None .O contexto da regra. |
cc_toolchain
|
obrigatório cc_Dataset em que os recursos são configurados. |
language
|
string; ou None ;
o padrão é None O idioma a ser configurado para: c++ ou objc (c++ padrão) |
requested_features
|
o padrão é [] Lista de recursos a serem 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, cc_target_os=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 de um recurso. Argumentos:
- provides tiver o nome de outro recurso ou configuração de ação que queremos ativar.- provides 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
|
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 da ação ocorre pela mesma semântica dos atributos: um recurso pode "solicitar" ou "implicar" uma configuração de ação da mesma forma que faria com outro recurso. Argumentos:
|
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:
|
cxx_builtin_include_directories
|
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'. 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; 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"). |
compiler
|
obrigatório A string da versão do compilador (por exemplo, "gcc-4.1.1"). |
abi_version
|
string; ou None ;
o padrão é None A abi em uso, que é uma versão gcc. E.g.: “gcc-3.4” |
abi_libc_version
|
string; ou None ;
o padrão é None é a versão da glibc usada pela abi que estamos usando. |
tool_paths
|
o padrão é [] Locais da ferramenta. Argumentos:
|
make_variables
|
o padrão é [] Uma variável "make" que fica acessível para as regras. |
builtin_sysroot
|
string ou None . O padrão é None . A sysroot integrada. Se esse atributo não estiver presente, o Bazel não permitirá o uso de uma sysroot diferente, ou seja, com a opção --grte_top. |
cc_target_os
|
string; ou None ;
o padrão é None Somente para uso interno. Não usar. |
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
|
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. Normalmente passado com -isystem |
includes
|
padrão é unbound Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchete angular 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". Eles podem ser relativos à raiz de execução ou absolutos. Normalmente passado com -iquote |
framework_includes
|
o padrão é unbound Conjunto de caminhos de pesquisa de framework para arquivos de cabeçalho (somente na plataforma Apple) |
defines
|
o padrão é unbound Conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagada 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 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 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
|
obrigatório cc_Dataset para o qual estamos criando variáveis de build. |
feature_configuration
|
obrigatória Configuração de recursos a ser consultada. |
source_file
|
o padrão é None 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
|
o padrão é None 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_in performance_command_line, já que o autor do conjunto de ferramentas já pode especificar e posicionar corretamente as flags do compilador. |
user_compile_flags
|
sequência de strings ou None .
O padrão é None Lista de outras flags de compilação (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 O conjunto de diretórios de inclusão de aspas. |
system_include_directories
|
depset; ou None ;
o padrão é None O conjunto 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 do framework. |
preprocessor_defines
|
depset; ou None ;
o padrão é None O conjunto de pré-processador define. |
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 de bitcode de entrada para o back-end de LTO. |
thinlto_output_object_file
|
string; ou None ; o padrão é None . Arquivo de objeto que é gerado pelo back-end de LTO. |
use_pic
|
O padrão é False Quando verdadeiro, a compilação gera 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 extras usado pelas 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
|
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
|
File; ou None ;
o padrão é None File da biblioteca estática de imagens a ser vinculada.
|
dynamic_library
|
Arquivo 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
|
sequência de arquivos.
O padrão é unbound Experimental, não usar |
objects
|
sequência de arquivos.
O padrão é unbound Experimental, não usar |
alwayslink
|
o padrão é False Define se a biblioteca/objetos estáticos serão vinculados no bloco --whole_archive. |
dynamic_library_symlink_path
|
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. |
interface_library_symlink_path
|
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. |
create_link_variables
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 |
---|---|
cc_toolchain
|
obrigatório cc_Dataset para o qual estamos criando variáveis de build. |
feature_configuration
|
obrigatória Configuração de recursos a ser consultada. |
library_search_directories
|
None ; ou depset;
o padrão é None Conjunto de diretórios em que o vinculador procurará bibliotecas no momento da vinculação. |
runtime_library_search_directories
|
None ou depset;
o padrão é None Conjunto de diretórios em que o carregador procurará por bibliotecas no momento da execução. |
user_link_flags
|
None ; ou Sequence;
o padrão é None Lista de outras flags de vinculação (linkopts). |
output_file
|
o padrão é None Caminho do arquivo de saída opcional. |
param_file
|
o padrão é None Caminho do arquivo de parâmetro opcional. |
def_file
|
o padrão é None Caminho de arquivo .def opcional. |
is_using_linker
|
o padrão é True Verdadeiro ao usar o vinculador, "Falso" 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). |
is_linking_dynamic_library
|
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 isso sincronizado com o nome da ação usado. Este campo será removido assim que b/65151735 for corrigido. |
must_keep_debug
|
o padrão é True Quando definida como falsa, o bazel expõe 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
|
o padrão é False Quando definida como verdadeira, a variável "is_cc_test" é definida. |
is_static_linking_mode
|
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 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 stringss.
O padrão é None Sinalizações de links do usuário 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 ; ou depset;
o padrão é None 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 ; ou depset;
o padrão é None Depset de LinkerInput .
|
libraries_to_link
|
None ; ou sequência;
o padrão é None 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 .
|
user_link_flags
|
None ; ou sequência;
o padrão é None 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 ; ou sequência;
o padrão é None 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)É usado para criar regras de biblioteca que possam propagar informações downstream a fim de serem vinculadas mais tarde 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
|
objeto actions obrigatório.
|
feature_configuration
|
necessáriofeature_configuration para ser consultado.
|
cc_toolchain
|
necessárioCcToolchainInfo provedor para ser usado.
|
compilation_outputs
|
obrigatório Saídas de compilação contendo arquivos de objeto a serem vinculados. |
user_link_flags
|
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 um binário ou uma biblioteca. |
name
|
obrigatório Ele é 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. |
alwayslink
|
o padrão é False .Define se essa biblioteca precisa estar sempre vinculada. |
additional_inputs
|
o padrão é [] Para entradas adicionais 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, 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ória 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órios Variáveis de build a serem usadas na 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ória 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 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ória 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órios 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 uma ação específica.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatória 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 um determinado recurso está ativado na configuração do recurso.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatória Configuração de recursos a ser consultada. |
feature_name
|
obrigatório Nome do recurso. |
link
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 de C++.
Parâmetros
Parâmetro | Descrição |
---|---|
actions
|
objeto actions obrigatório.
|
feature_configuration
|
necessáriofeature_configuration para ser consultado.
|
cc_toolchain
|
necessárioCcToolchainInfo provedor para ser usado.
|
compilation_outputs
|
CcCompilationOutputs; ou None ;
o padrão é None Saídas de compilação que contêm arquivos de objetos a serem vinculados. |
user_link_flags
|
o padrão é [] Lista adicional de opções do vinculador. |
linking_contexts
|
o padrão é [] Vincular contextos de dependências a serem vinculados ao contexto de vinculação gerado por esta regra. |
name
|
obrigatório Ele é 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 "dinâmica_biblioteca". |
link_deps_statically
|
o padrão é True Verdadeiro para vincular dependências estaticamente e Falso dinamicamente. |
stamp
|
o padrão é 0 Define se informações de build 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
|
sequência; ou depset;
o padrão é [] Para entradas adicionais 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
CompilationContexts
s em um.
Parâmetros
Parâmetro | Descrição |
---|---|
compilation_contexts
|
o padrão é [] Lista de CompilationContexts s 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 é [] |