cc_común

Informar un problema . Ver fuente . Por la noche · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Utilidades para compilación, vinculación y generación de líneas de comandos de C++.

Miembros

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Muestra el valor True si se habilita action_config proporcionada en la configuración de la función.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
action_name string; obligatorio
Nombre de action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

La clave que se usa para recuperar el proveedor que contiene información sobre la cadena de herramientas de C++ que se está usando.

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=[], module_interfaces=unbound)

Debe usarse para la compilación de C++. Muestra la tupla de (CompilationContext, CcCompilationOutputs).

Parámetros

Parámetro Descripción
actions acciones obligatorio
actions.
feature_configuration FeatureConfiguration; obligatorio
feature_configuration que se consultará.
cc_toolchain Información; obligatorio
Proveedor de CcToolchainInfo que se usará.
srcs secuencia; el valor predeterminado es []
Es la lista de archivos de origen que se compilarán.
public_hdrs secuencia; el valor predeterminado es []
Lista de encabezados necesarios para la compilación de srcs y que las reglas dependientes pueden incluir de forma transitiva.
private_hdrs secuencia; el valor predeterminado es []
Lista de encabezados necesarios para la compilación de srcs y que NO deben incluirse en las reglas dependientes.
includes secuencia; o depset; el valor predeterminado es []
Busca rutas de acceso de archivos de encabezado a los que se haga referencia tanto por corchete angular como entre comillas. Por lo general, se aprueba con -I. Se propaga a los dependientes de forma transitiva.
quote_includes secuencia; el valor predeterminado es []
Rutas de acceso de archivos de encabezado a los que se hace referencia entre comillas, p.ej., #include "foo/bar/header.h". Pueden ser absolutas o relativas a la raíz de ejecución. Por lo general, se pasa con -iquote. Se propaga a los dependientes de forma transitiva.
system_includes secuencia; el valor predeterminado es []
Rutas de acceso de archivos de encabezado a los que se hace referencia con comillas angulares, p.ej., #include <foo/bar/header.h>. Pueden ser absolutas o relativas a la raíz de ejecución. Por lo general, se pasa con -isystem. Se propaga a los dependientes de forma transitiva.
framework_includes secuencia; el valor predeterminado es []
Busca rutas de acceso para archivos de encabezado en marcos de trabajo de Apple. Pueden ser absolutas o relativas a la raíz de ejecución. Por lo general, se aprueba con -F. Se propaga a los dependientes de forma transitiva.
defines secuencia; el valor predeterminado es []
Conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. Se propaga a los dependientes de forma transitiva.
local_defines secuencia; el valor predeterminado es []
Conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. No se propaga a los dependientes de forma transitiva.
include_prefix string; el valor predeterminado es ''
El prefijo que se agregará a las rutas de acceso de los encabezados de esta regla. Cuando se establece, los encabezados en el atributo hdrs de esta regla son accesibles en el valor de este atributo antepuesto a su ruta de acceso relativa del repositorio. Se quita el prefijo del atributo strip_include_prefix antes de agregar este prefijo.
strip_include_prefix string; el valor predeterminado es ''
El prefijo para quitar las rutas de acceso de los encabezados de esta regla. Cuando se establece, se puede acceder a los encabezados en el atributo hdrs de esta regla en su ruta de acceso con este prefijo cortado. Si es una ruta de acceso relativa, se toma como una ruta relativa de paquete. Si es una absoluta, se entiende como una ruta de acceso relativa de repositorio. El prefijo del atributo include_prefix se agrega después de que se quita este prefijo.
user_compile_flags secuencia; el valor predeterminado es []
Lista adicional de opciones de compilación.
compilation_contexts secuencia; el valor predeterminado es []
Encabezados de dependencias que se usan para la compilación.
name string; obligatorio
Se usa para nombrar los artefactos de salida de las acciones creadas por este método. Consulta también el argumento `main_output`.
disallow_pic_outputs bool; el valor predeterminado es False
Indica si se deben crear los resultados PIC.
disallow_nopic_outputs bool; el valor predeterminado es False
Establece si se deben crear los resultados NOPIC.
additional_inputs secuencia; el valor predeterminado es []
Lista de archivos adicionales necesarios para la compilación de srcs
module_interfaces secuencia; el valor predeterminado es unbound
Es la lista de archivos de origen de interfaces de módulo que se compilarán. Nota: Esta es una función experimental, solo habilitada con --experimental_cpp_modules

configure_features

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

Crea una instancia de feature_configuration. Requiere el fragmento de configuración de cpp.

Parámetros

Parámetro Descripción
ctx ctx; o None; el valor predeterminado es None
El contexto de la regla.
cc_toolchain Información; obligatorio
cc_toolchain para el que configuramos funciones.
language string; o None; el valor predeterminado es None
El lenguaje para configurar: c++ u objc (c++ predeterminado)
requested_features secuencia; el valor predeterminado es []
Lista de funciones que se habilitarán.
unsupported_features secuencia; el valor predeterminado es []
Lista de funciones que no son compatibles con la regla actual.

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)

Crea un proveedor de CcToolchainConfigInfo.

Parámetros

Parámetro Descripción
ctx ctx; obligatorio
El contexto de la regla.
features secuencia; el valor predeterminado es []
Contiene todas las especificaciones de marcas de una función.

Argumentos:

name: Es el nombre del componente. Es posible incorporar una función sin cambiar a Bazel agregando una “función” a la cadena de herramientas y agrega la cadena correspondiente como función en el archivo BUILD.

enabled: Si se establece en "True", esta función se habilitará, a menos que un tipo de regla la marque explícitamente como no compatible.

flag_sets: Es una lista de FlagSet. Si se habilita la función en cuestión, se aplicarán los conjuntos de marcas a las acciones para las que se especifiquen.

env_sets: Es una lista de EnvSet. Si se habilita la función en cuestión, los conjuntos de entornos se aplicarán a las acciones para las que se especifiquen.

requires: Es una lista de conjuntos de atributos que definen cuándo la cadena de herramientas admite esta función. La función es compatible si se aplica por completo alguno de los conjuntos de atributos, es decir, cuando todas las funciones de un conjunto de atributos están habilitadas. Si se omite requires, la función se admite independientemente de cuáles otras funciones estén habilitadas. Úsalo como ejemplo para filtrar marcas según el modo de compilación habilitado (opt / fastbuild / dbg).

implies: Es una lista de cadenas de funciones o parámetros de configuración de acciones que se habilitan automáticamente cuando se habilita esta función. Si no se puede habilitar alguna de las funciones o configuraciones de acciones implícitas, esta función tampoco se habilitará (en silencio).

provides: Es una lista de nombres con los que esta función entra en conflicto.

Una función no se puede habilitar en los siguientes casos:
- provides contiene el nombre de una configuración de acción o función diferente que queremos habilitar.
- provides contiene el mismo valor que “ proporciona” en una configuración de acción o función diferente que queramos habilitar. Úsalo para asegurarte de que las funciones incompatibles no se puedan activar accidentalmente al mismo tiempo, lo que dificulta el diagnóstico de errores del compilador.
action_configs secuencia; el valor predeterminado es []
Una configuración de acciones corresponde a una acción de Bazel y permite la selección de una herramienta según las funciones activadas. La activación de la configuración de acciones ocurre con la misma semántica que los atributos: una función puede ser “requerida”. o "implícita" para configurar una acción del mismo modo que con otro atributo.

Argumentos:

action_name: Es el nombre de la acción de Bazel a la que se aplica esta configuración, p.ej., "c-compile" o "c-module-compile".

enabled: Si se configura como "True", esta acción se habilita, a menos que un tipo de regla la marque explícitamente como no compatible.

tools: La herramienta que se aplique a la acción será la primera que tenga un conjunto de atributos que coincida con la configuración de atributos. Se mostrará un error si ninguna herramienta coincide con una configuración de atributos proporcionada. Por ese motivo, es una buena idea proporcionar una herramienta predeterminada con un conjunto de atributos vacío.

flag_sets: Si se habilita la configuración de la acción determinada, los conjuntos de marcas se aplicarán a la acción correspondiente.

implies: Es una lista de funciones o parámetros de configuración de acciones que se habilitan automáticamente cuando se habilita esta configuración de acciones. Si no se puede habilitar alguna de las funciones o configuraciones de acciones implícitas, esta configuración de acciones tampoco se habilitará (en silencio).

artifact_name_patterns secuencia; el valor predeterminado es []
Es el nombre de un artefacto de una categoría determinada de artefactos de entrada o salida para una acción.

Argumentos:

category_name: Es la categoría de artefactos a la que se aplica esta selección. Este campo se compara con una lista de categorías definidas en Bazel. Las categorías de ejemplo incluyen "linked_output" o el artefacto de esta selección. Junto con la extensión, se usa para crear un nombre de artefacto basado en el nombre de destino.

extension: Es la extensión para crear el artefacto para esta selección. Junto con el prefijo, se usa para crear un nombre de artefacto basado en el nombre de destino.

cxx_builtin_include_directories secuencia; el valor predeterminado es []

Directorios de inclusión integrados para la compilación de C++. Estas deben ser las rutas de acceso exactas que usa el compilador y, en general, son relativas a la raíz de ejecución.

Las rutas de acceso usadas por el compilador pueden determinarse con "gcc -E -xc++ - -v".

Actualmente, usamos las rutas de acceso de C++ también para la compilación en C, lo cual es seguro siempre y cuando no haya conflictos de nombres entre los archivos de encabezado C++ y C.

Las rutas de acceso relativas se resuelven según el directorio del archivo de configuración.

Si el compilador es compatible con --sysroot, estas rutas de acceso deben usar %sysroot% en lugar de incluir la ruta de acceso de inclusión y especificar el atributo sysroot a fin de proporcionar a blaze la información necesaria para realizar los reemplazos correctos.

toolchain_identifier string; obligatorio

El identificador único de la cadena de herramientas dentro del lanzamiento de la herramienta cruzada. Debe ser posible usarlo como nombre de directorio en una ruta de acceso.

Debe coincidir con la siguiente regex: [a-zA-Z_][\.\- \w]*

host_system_name string; o None; el valor predeterminado es None
Ignorado
target_system_name string; o None; el valor predeterminado es None
Obsoleto. Es el nombre del sistema GNU. La cadena se expone a CcToolchainInfo.target_gnu_system_name.
target_cpu string; o None; el valor predeterminado es None
Obsoleto: Usa restricciones basadas en la CPU en su lugar. Si la cadena es “k8”, se omitirá “target_cpu” del nombre de archivo de los datos del perfil FDO sin procesar.
target_libc string; o None; el valor predeterminado es None
Obsoleto: Usa restricciones basadas en el SO en su lugar. La cadena de versión de libc (p.ej., "glibc-2.2.2"). Si la cadena es "macosx", se supone que la plataforma es MacOS. De lo contrario, Linux. Se expone la cadena a CcToolchainInfo.libc.
compiler string; obligatorio
La cadena del compilador (p.ej., "gcc"). El compilador actual de la cadena de herramientas está expuesto a `@bazel_tools//tools/cpp:compiler (compiler_flag)` como un valor de marca. Los destinos que requieren marcas específicas del compilador pueden usar config_settings en https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD en sentencias select() o crear config_setting personalizado si la configuración existente no es suficiente.
abi_version string; o None; el valor predeterminado es None
La ABI en uso, que es una versión de GCC. P. ej.: “gcc-3.4”. La cadena se configura en ABI de la variable del conjunto de herramientas C++.
abi_libc_version string; o None; el valor predeterminado es None
Es la versión glibc que usa la ABI que usamos. La cadena se establece en la variable de la cadena de herramientas de C++ ABI_LIBC_VERSION.
tool_paths secuencia; el valor predeterminado es []
Ubicaciones de las herramientas

Argumentos:

name: Es el nombre de la herramienta.

path: ubicación de la herramienta. Puede ser una ruta de acceso absoluta (en el caso de una cadena de herramientas no hermética) o una ruta de acceso relativa al paquete cc_toolchain.

make_variables secuencia; el valor predeterminado es []
Una variable Make a la que pueden acceder las reglas.
builtin_sysroot string; o None; el valor predeterminado es None
El sysroot integrado. Si este atributo no está presente, Bazel no permite usar un sysroot diferente, es decir, a través de la opción --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)

Crea un CompilationContext.

Parámetros

Parámetro Descripción
headers el valor predeterminado es unbound
Conjunto de encabezados necesarios para compilar este destino
system_includes el valor predeterminado es unbound
Conjunto de rutas de búsqueda de archivos de encabezado a los que se hace referencia con corchetes angulares, p.ej., #include <foo/bar/header.h>. Pueden ser absolutas o relativas a la raíz de ejecución. Por lo general, se pasa con -isystem.
includes el valor predeterminado es unbound
Conjunto de rutas de búsqueda para archivos de encabezado a los que se hace referencia tanto por corchete angular como entre comillas. Por lo general, se pasan con -I.
quote_includes el valor predeterminado es unbound
Conjunto de rutas de búsqueda de archivos de encabezado a los que se hace referencia con comillas, p.ej., #include "foo/bar/header.h". Pueden ser absolutas o relativas a la raíz de ejecución. Por lo general, se pasa con -iquote.
framework_includes el valor predeterminado es unbound
Conjunto de rutas de búsqueda de framework para archivos de encabezado (solo en la plataforma de Apple)
defines el valor predeterminado es unbound
Conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. Se propaga de forma transitiva a los dependientes.
local_defines el valor predeterminado es unbound
Conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. No se propaga de forma transitiva a las dependencias.

create_compilation_outputs

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

Crea el objeto de resultados de compilación.

Parámetros

Parámetro Descripción
objects depset; o None; el valor predeterminado es None
Lista de archivos de objetos.
pic_objects depset; o None; el valor predeterminado es None
Lista de archivos 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)

Muestra variables usadas para acciones de compilación.

Parámetros

Parámetro Descripción
cc_toolchain Información; obligatorio
cc_toolchain para el que creamos variables de compilación.
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
source_file el valor predeterminado es None
Archivo fuente opcional para la compilación. Es preferible pasar source_file en lugar de agregarlo al final de la línea de comandos generada desde cc_common.get_memory_inefficient_command_line, ya que el autor de la cadena de herramientas puede especificar y posicionar correctamente los indicadores del compilador.
output_file el valor predeterminado es None
Archivo de salida opcional de la compilación. Es preferible pasar output_file en lugar de agregarlo al final de la línea de comandos generada desde cc_common.get_memory_inefficient_command_line, ya que depende del autor del conjunto de herramientas especificar y posicionar correctamente las marcas del compilador.
user_compile_flags secuencia de strings; o None; el valor predeterminado es None
Lista de marcas de compilación adicionales (copias).
include_directories depset; o None; el valor predeterminado es None
Conjunto de directorios de inclusión.
quote_include_directories depset; o None; el valor predeterminado es None
El depósito de las comillas incluye directorios.
system_include_directories depset; o None; el valor predeterminado es None
El punto de partida del sistema incluye directorios.
framework_include_directories depset; o None; el valor predeterminado es None
El origen del framework incluye directorios.
preprocessor_defines depset; o None; el valor predeterminado es None
Define el punto del preprocesador.
thinlto_index string; o None; el valor predeterminado es None
Ruta del archivo de índice de LTO.
thinlto_input_bitcode_file string; o None; el valor predeterminado es None
Archivo de código de bits que se ingresa al backend de LTO.
thinlto_output_object_file string; o None; el valor predeterminado es None
Archivo de objeto que es exportado por el backend de LTO.
use_pic bool; el valor predeterminado es False
Cuando sea verdadera, la compilación generará un código independiente de la posición.
add_legacy_cxx_options bool; el valor predeterminado es False
Sin uso.
variables_extension dict; el valor predeterminado es unbound
Es un diccionario de variables adicionales que usan las acciones de compilación.

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='')

Crea LibraryToLink

Parámetros

Parámetro Descripción
actions obligatorio
actions.
feature_configuration el valor predeterminado es None
feature_configuration que se consultarán.
cc_toolchain el valor predeterminado es None
CcToolchainInfo proveedor que se usará.
static_library Archivo; o None; el valor predeterminado es None
File de la biblioteca estática que se vinculará.
pic_static_library Archivo; o None; el valor predeterminado es None
Se vinculará File de la biblioteca de imágenes estáticas.
dynamic_library Archivo; o None; el valor predeterminado es None
File de la biblioteca dinámica que se vinculará. Siempre se usa para el tiempo de ejecución y para la vinculación si no se pasa interface_library.
interface_library Archivo; o None; el valor predeterminado es None
File de la biblioteca de interfaz que se vinculará.
pic_objects secuencia de Files; el valor predeterminado es unbound
Experimental, no usar
objects secuencia de Files; el valor predeterminado es unbound
Experimental, no usar
bool; el valor predeterminado es False
Establece si se deben vincular la biblioteca o los objetos estáticos en el bloque --whole_archive.
string; el valor predeterminado es ''
Anula la ruta de acceso predeterminada del vínculo dinámico de la biblioteca en el directorio solib. Cadena vacía para usar el valor predeterminado.
string; el valor predeterminado es ''
Anula la ruta predeterminada del vínculo de la biblioteca de la interfaz en el directorio solib. Cadena vacía para usar el valor predeterminado.

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)

Muestra las variables de vínculo utilizadas para las acciones de vinculación.

Parámetros

Parámetro Descripción
Información; obligatorio
cc_toolchain para el que creamos variables de compilación.
FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
depset; el valor predeterminado es []
Conjunto de directorios en el que el vinculador buscará bibliotecas en el momento de la vinculación.
depset; el valor predeterminado es []
Conjunto de directorios en el que el cargador buscará bibliotecas en el tiempo de ejecución.
secuencia; el valor predeterminado es []
Lista de marcas de vínculos adicionales (linkopts).
el valor predeterminado es None
Ruta de archivo de salida opcional.
el valor predeterminado es None
Ruta de archivo de parámetros opcional.
bool; el valor predeterminado es True
Es verdadero cuando se usa el vinculador y Falso cuando se archiva. El llamador es responsable de mantenerla sincronizada con el nombre de acción utilizado (is_using_linker = True para vincular una biblioteca ejecutable o dinámica, is_using_linker = False para archivar la biblioteca estática).
bool; el valor predeterminado es False
Es verdadero cuando se crea una biblioteca dinámica. Es falso cuando se usa una biblioteca ejecutable o estática. La persona que llama es responsable de mantenerla sincronizada con el nombre de la acción utilizado. Este campo se quitará una vez que se corrija b/65151735.
bool; el valor predeterminado es True
Si la estableces como falsa, Bazel expondrá "strip_debug_symbols" variable que generalmente se usa para utilizar el vinculador para quitar los símbolos de depuración del archivo de salida.
bool; el valor predeterminado es False
Cuando se configura como verdadero, “is_cc_test”. variable de entorno.
bool; el valor predeterminado es True
Sin uso.

create_linker_input

LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)

Crea un LinkerInput.

Parámetros

Parámetro Descripción
owner Etiqueta; obligatorio
Etiqueta del destino que produjo todos los archivos usados en esta entrada.
libraries None; o depset; el valor predeterminado es None
Lista de LibraryToLink.
None; o depset de cadenas; o secuencia de cadenas; el valor predeterminado es None
Marcas de vínculo de usuario pasadas como cadenas. Acepta [String], [[String]] o depset(String). Este último no es recomendable, ya que solo se conserva por motivos de compatibilidad; el depset se aplana. Si deseas propagar user_link_flags mediante depsets() sin compactar, únelos en un LinkerInput para que no se acoplen hasta el final.
additional_inputs None; o depset; el valor predeterminado es None
Para obtener entradas adicionales a la acción de vinculación, p.ej., secuencias de comandos de vinculación.

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)

Crea un LinkingContext.

Parámetros

Parámetro Descripción
linker_inputs None; o depset; el valor predeterminado es None
Punto de salida de LinkerInput.
None; o secuencia; el valor predeterminado es None
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con --incompatible_require_linker_input_cc_api. Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente.
Lista de LibraryToLink.
None; o secuencia; el valor predeterminado es None
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con --incompatible_require_linker_input_cc_api. Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente.
Lista de marcas de vínculos de usuarios pasadas como cadenas.
additional_inputs None; o secuencia; el valor predeterminado es None
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con --incompatible_require_linker_input_cc_api. Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente.
Para entradas adicionales a la acción de vinculación, p.ej., secuencias de comandos de vinculación.

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)

Debe usarse para crear reglas de biblioteca que puedan propagar información de manera descendente para que se vinculen más adelante con una regla de nivel superior que realice vinculaciones transitivas para crear una biblioteca ejecutable o dinámica. Muestra la tupla de (CcLinkingContext, CcLinkingOutputs).

Parámetros

Parámetro Descripción
actions acciones obligatorio
actions.
name string; obligatorio
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
feature_configuration FeatureConfiguration; obligatorio
feature_configuration que se consultará.
cc_toolchain Información; obligatorio
Proveedor de CcToolchainInfo que se usará.
language string; el valor predeterminado es 'c++'
Por el momento, solo es compatible con C++. No uses este parámetro.
disallow_static_libraries bool; el valor predeterminado es False
Si se deben crear o no bibliotecas estáticas
disallow_dynamic_library bool; el valor predeterminado es False
Indica si se debe crear o no una biblioteca dinámica.
compilation_outputs CcCompilationOutputs; obligatorio
Resultados de compilación que contienen archivos de objeto para vincular.
linking_contexts secuencia; el valor predeterminado es []
Bibliotecas de dependencias Estas bibliotecas se vincularán al artefacto de salida de la llamada link(), ya sea un objeto binario o una biblioteca.
secuencia; el valor predeterminado es []
Lista adicional de opciones de vinculación.
bool; el valor predeterminado es False
Si esta biblioteca siempre debe estar vinculada.
additional_inputs secuencia; el valor predeterminado es []
Para obtener entradas adicionales a la acción de vinculación, p.ej., secuencias de comandos de vinculación.
variables_extension dict; el valor predeterminado es unbound
Variables adicionales para pasar a la configuración de la cadena de herramientas cuando se crea la línea de comandos de vínculo.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

Cómo crear contexto de compilación de LTO

Parámetros

Parámetro Descripción
objects dict; el valor predeterminado es {}
mapa del objeto completo al índice del objeto

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

No uses este campo, su único propósito es ayudarte con la migración de config_setting.values{'compiler') a config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}.

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

Muestra las variables de entorno que se deben configurar para una acción determinada.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres de @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl).
variables Variables; obligatorio
Variables de compilación que se usarán para la expansión de plantillas.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Muestra los requisitos de ejecución para la acción determinada.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres de @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)

Muestra marcas de línea de comandos compactas para una acción determinada, usando variables determinadas para la expansión. Aplana los conjuntos anidados y lo ideal es que no se use, o al menos no debería sobrevivir al análisis. El trabajo en la función eficiente de memoria que muestra Args está en curso.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres de @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl).
variables Variables; obligatorio
Variables de compilación que se usarán para las expansiones de plantillas.

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

Muestra la ruta de acceso de la herramienta para la acción determinada.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres de @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)

Muestra el valor True si la función determinada está habilitada en la configuración de la función.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; obligatorio
Configuración del atributo que se consultará.
feature_name string; obligatorio
Es el nombre del elemento.

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={})

Debe usarse para la vinculación transitiva de C++.

Parámetros

Parámetro Descripción
actions acciones obligatorio
actions.
name string; obligatorio
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
feature_configuration FeatureConfiguration; obligatorio
feature_configuration que se consultará.
cc_toolchain Información; obligatorio
Proveedor de CcToolchainInfo que se usará.
language string; el valor predeterminado es 'c++'
Por el momento, solo es compatible con C++. No uses este parámetro.
output_type string; el valor predeterminado es 'executable'
Puede ser “ejecutable” o "dynamic_library".
bool; el valor predeterminado es True
True para vincular dependencias de forma estática; falso de forma dinámica.
compilation_outputs CcCompilationOutputs; o None; el valor predeterminado es None
Resultados de compilación que contienen archivos de objeto para vincular.
linking_contexts secuencia; el valor predeterminado es []
Vincula contextos de dependencias que se vincularán al contexto de vinculación que genera esta regla.
secuencia; el valor predeterminado es []
Lista adicional de opciones del vinculador.
stamp int; el valor predeterminado es 0
Indica si se debe incluir información de compilación en el ejecutable vinculado, si output_type es 'executable'. Si es 1, siempre se incluye la información de la compilación. Si es 0 (la información de compilación predeterminada siempre se excluye. Si es -1, se usa el comportamiento predeterminado, que puede anularse con la marca --[no]stamp. No se debe establecer (o se debe establecer en 0) cuando se genera el resultado ejecutable de las reglas de prueba.
additional_inputs secuencia; o depset; el valor predeterminado es []
Para obtener entradas adicionales a la acción de vinculación, p.ej., secuencias de comandos de vinculación.
additional_outputs secuencia; el valor predeterminado es []
Para obtener resultados adicionales a la acción de vinculación, p.ej., archivos de mapa.
variables_extension dict; el valor predeterminado es {}
Variables adicionales para pasar a la configuración de la cadena de herramientas cuando se crea la línea de comandos de vínculo.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Combina varios CompilationContexts en uno solo.

Parámetros

Parámetro Descripción
compilation_contexts secuencia; el valor predeterminado es []
Lista de objetos CompilationContexts que se combinarán. Los campos directos del proveedor mostrado exportarán los encabezados de cada contexto.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Combina los resultados de la compilación.

Parámetros

Parámetro Descripción
compilation_outputs secuencia; el valor predeterminado es []