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 fornecido está ativado na configuração do recurso.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatório Configuração de recurso a ser consultada. |
action_name
|
obrigatório Nome da action_config. |
CcToolchainInfo
Provider cc_common.CcToolchainInfoChave 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 de cpp.
Parâmetros
Parâmetro | Descrição |
---|---|
ctx
|
ctx; ou None . O padrão é None . Contexto da regra. |
cc_toolchain
|
necessário cc_toolkit para o qual configuramos recursos. |
language
|
string; ou None ;
o padrão é None .A linguagem a ser configurada para: c++ ou objc (default c++) |
requested_features
|
o padrão é [] Lista de recursos que serão ativados. |
unsupported_features
|
o padrão é [] Lista de recursos incompatíveis com a regra atual. |
create_cc_toolchain_config_info
CcToolchainConfigInfo cc_common.create_cc_toolchain_config_info(ctx, features=[], action_configs=[], artifact_name_patterns=[], cxx_builtin_include_directories=[], toolchain_identifier, host_system_name=None, target_system_name, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)Cria um provedor
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:
- provides contém o nome de um recurso ou configuração de ação diferente que queremos ativar;- provides contém o mesmo valor de "provide" em uma configuração de ação ou recurso diferente que queremos ativar. Use-o para garantir que recursos incompatíveis não sejam ativados acidentalmente ao mesmo tempo, levando 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 nos recursos ativados. A ativação da configuração de ação ocorre pela mesma semântica dos recursos: um recurso pode "exigir" ou "implorar" 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 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". Atualmente, usamos os caminhos C++ também para a compilação em C, que é segura 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 for compatível com --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 crosstool. Ele precisa 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
|
necessário A string da versão da libc (por exemplo, "glibc-2.2.2"). |
compiler
|
necessá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 do glibc usada pela abi que está usando. |
tool_paths
|
o padrão é [] Locais da ferramenta. Argumentos:
|
make_variables
|
o padrão é [] Uma variável de 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á usar um 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 use. |
create_compilation_context
CompilationContext cc_common.create_compilation_context(headers=unbound, system_includes=unbound, includes=unbound, quote_includes=unbound, framework_includes=unbound, defines=unbound, local_defines=unbound)Cria uma
CompilationContext
.
Parâmetros
Parâmetro | Descrição |
---|---|
headers
|
O padrão é unbound O conjunto de cabeçalhos necessários para compilar este destino |
system_includes
|
o padrão é unbound O conjunto de caminhos de pesquisa para arquivos principais referenciados por colchetes angulares, ou seja, #include <foo/bar/header.h>. Eles podem ser relativos à raiz exec ou absoluto. Normalmente, transmitida com -isystem |
includes
|
O padrão é unbound Conjunto de caminhos de pesquisa para arquivos de cabeçalho referenciados por colchetes angulares e aspas.Geralmente, é passado com -I |
quote_includes
|
O padrão é unbound O 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. Geralmente transmitido com -iquote |
framework_includes
|
o padrão é unbound Conjunto de caminhos de pesquisa de framework para arquivos de cabeçalho (somente para a plataforma Apple) |
defines
|
O padrão é unbound O conjunto de definições necessárias para compilar esse destino. Cada definição é uma string. Propagado de forma transitiva 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 propagada 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 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 que estamos criando variáveis de build. |
feature_configuration
|
obrigatório Configuração de recurso a ser consultada. |
source_file
|
o padrão é None Arquivo de origem opcional para a compilação. Prefira passar o 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 dessa forma o autor do conjunto de ferramentas deve 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 dessa forma o autor do conjunto de ferramentas precisa 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 "include" das aspas. |
system_include_directories
|
depset ou None ;
o padrão é None Desativação dos diretórios de inclusão do sistema. |
framework_include_directories
|
depset ou None ;
o padrão é None O conjunto de diretórios inclui diretórios. |
preprocessor_defines
|
depset ou None ;
o padrão é None Depset of pré-processador define. |
thinlto_index
|
string; ou None ;
o padrão é None o caminho do arquivo de índice LTO. |
thinlto_input_bitcode_file
|
string; ou None ;
o padrão é None Arquivo de bitcode que é entrada para o back-end LTO. |
thinlto_output_object_file
|
string; ou None ;
o padrão é None Arquivo de objeto que é gerado pelo back-end 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 adicionais usado 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
|
obrigatório o objeto actions .
|
feature_configuration
|
o padrão é None feature_configuration para ser consultado.
|
cc_toolchain
|
o padrão é None o provedor CcToolchainInfo 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 de fotos 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 use |
objects
|
Sequence de Files.
O padrão é unbound Experimental, não use |
alwayslink
|
O padrão é False Define se a biblioteca/objetos estáticos será vinculado ao 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 é '' Substitui 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 que estamos criando variáveis de build. |
feature_configuration
|
obrigatório Configuração de recurso a ser consultada. |
library_search_directories
|
None ; ou depset;
o padrão é None Conjunto de diretórios em que o vinculador procura 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 sequência; o padrão é None Lista de sinalizações de links 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âmetros opcional. |
def_file
|
o padrão é None Caminho do arquivo .def opcional. |
is_using_linker
|
o padrão é True Verdadeiro ao usar o vinculador, falso quando o arquivador. O autor da chamada é responsável por manter a sincronia com o nome da ação usado (is_using_linker = Verdadeiro para vincular bibliotecas executável ou dinâmica, is_using_linker = Falso para arquivamento de bibliotecas estáticas. |
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 a sincronia 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 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
|
o padrão é False Quando definida como verdadeira, a variável "is_cc_test" será 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 na entrada. |
libraries
|
None ou depset. O padrão é None Lista de LibraryToLink .
|
user_link_flags
|
None ; ou depset de stringss ou sequência de stringss.
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, o depset é nivelado. Se você quiser propagar user_link_flags usando depsets() sem nivelamento, envolva-os em um LinkerInput para que eles não sejam nivelados até o final. |
additional_inputs
|
None ; ou depset;
o padrão é None Para outras entradas para a 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 Desativação 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 disso. Ela está desativada com o --+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 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 disso. Ela está desativada com o --+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 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 disso. Ela está desativada com o --+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 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)Deve ser usada 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 o objeto actions .
|
feature_configuration
|
necessáriofeature_configuration para ser consultado.
|
cc_toolchain
|
necessário que o provedor CcToolchainInfo seja usado.
|
compilation_outputs
|
necessá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 das 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 Usado para nomear os artefatos de saída das ações criadas por esse método. |
language
|
o padrão é 'c++' No momento, apenas C++ é compatível. Não use este parâmetro. |
alwayslink
|
O padrão é False Define se a biblioteca precisa ser sempre vinculada. |
additional_inputs
|
o padrão é [] Para outras informações sobre a ação de vinculação, por exemplo: scripts de vinculação. |
disallow_static_libraries
|
O padrão é False Define se as bibliotecas estáticas precisam ser criadas. |
disallow_dynamic_library
|
o padrão é False Indica 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, a única finalidade 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
|
obrigatório Configuração de recurso 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 de modelo. |
get_execution_requirements
sequence cc_common.get_execution_requirements(feature_configuration, action_name)Retorna os requisitos de execução para determinada ação.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatório Configuração de recurso 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 específicas para expansão. Suaviza conjuntos aninhados e, idealmente, não devem ser usados ou, pelo menos, não devem sobreviver à análise. O trabalho na função eficiente de memória que retorna Args está em andamento.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatório Configuração de recurso 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 a ação especificada.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatório Configuração de recurso 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 determinado recurso está ativado na configuração do recurso.
Parâmetros
Parâmetro | Descrição |
---|---|
feature_configuration
|
obrigatório Configuração de recurso 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 do C++.
Parâmetros
Parâmetro | Descrição |
---|---|
actions
|
obrigatório o objeto actions .
|
feature_configuration
|
necessáriofeature_configuration para ser consultado.
|
cc_toolchain
|
necessário que o provedor CcToolchainInfo seja usado.
|
compilation_outputs
|
CcCompilationOutputs ou None ;
o padrão é None Saídas de compilação contendo arquivos de objeto 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 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, apenas C++ é compatível. Não use este parâmetro. |
output_type
|
O padrão é 'executable' Pode ser "executável" ou "dynamic_library". |
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 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. Ele não pode ser definido (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 para a ação de vinculação, por exemplo: vinculação de scripts. |
additional_outputs
|
Sequence;
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=[])Mescle saídas de compilação.
Parâmetros
Parâmetro | Descrição |
---|---|
compilation_outputs
|
o padrão é [] |