cc_común

Informar un problema Ver fuente Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

Miembros

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Devuelve True si el parámetro de configuración action_config determinado está habilitado en la configuración de la función.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
action_name string; required
Nombre de action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

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

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)

Se debe usar para la compilación de C++. Devuelve una tupla de (CompilationContext, CcCompilationOutputs).

Parámetros

Parámetro Descripción
actions actions: objeto
actions obligatorio.
feature_configuration FeatureConfiguration; required
feature_configuration para consultar.
cc_toolchain Info; required
CcToolchainInfo proveedor que se usará.
srcs sequence; el valor predeterminado es []
Es la lista de archivos fuente que se compilarán.
public_hdrs sequence; el valor predeterminado es []
Lista de encabezados necesarios para la compilación de srcs y que pueden incluirse de forma transitiva en las reglas dependientes.
private_hdrs sequence; el valor predeterminado es []
Lista de encabezados necesarios para la compilación de srcs y que NO deben incluir las reglas dependientes.
includes sequence o depset; El valor predeterminado es []
Son las rutas de acceso de búsqueda para los archivos de encabezado a los que se hace referencia con corchetes angulares y comillas. Por lo general, se pasa con -I. Se propaga a los elementos dependientes de forma transitiva.
quote_includes sequence; el valor predeterminado es []
Son las rutas de búsqueda de los archivos de encabezado a los que se hace referencia entre comillas, p.ej., #include "foo/bar/header.h". Pueden ser relativas a la raíz de ejecución o absolutas. Por lo general, se pasa con -iquote. Se propaga a los elementos dependientes de forma transitiva.
system_includes sequence; el valor predeterminado es []
Son las rutas de búsqueda de los archivos de encabezado a los que se hace referencia con corchetes angulares, p.ej., #include <foo/bar/header.h>. Pueden ser relativas a la raíz de ejecución o absolutas. Por lo general, se pasa con -isystem. Se propaga a los elementos dependientes de forma transitiva.
framework_includes sequence; el valor predeterminado es []
Son las rutas de búsqueda de los archivos de encabezado de los frameworks de Apple. Pueden ser relativas a la raíz de ejecución o absolutas. Por lo general, se pasa con -F. Se propaga a los elementos dependientes de forma transitiva.
defines sequence; El valor predeterminado es []
Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. Se propaga a los elementos dependientes de forma transitiva.
local_defines sequence; El valor predeterminado es []
Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. No se propaga a los elementos dependientes de forma transitiva.
include_prefix string; El valor predeterminado es ''
Es el prefijo que se agregará a las rutas de acceso de los encabezados de esta regla. Cuando se configura, se puede acceder a los encabezados del atributo hdrs de esta regla en la ruta de acceso relativa al repositorio a la que se antepone el valor de este atributo. El prefijo del atributo strip_include_prefix se quita antes de que se agregue este prefijo.
strip_include_prefix cadena; el valor predeterminado es ''
. Es el prefijo que se quitará de las rutas de acceso de los encabezados de esta regla. Cuando se configura, se puede acceder a los encabezados del 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 de acceso relativa al paquete. Si es absoluta, se entiende como una ruta de acceso relativa al repositorio. El prefijo del atributo include_prefix se agrega después de que se quita este prefijo.
user_compile_flags sequence: El valor predeterminado es []
Lista adicional de opciones de compilación.
conly_flags sequence; el valor predeterminado es []
Lista adicional de opciones de compilación para compilaciones de C.
cxx_flags sequence; el valor predeterminado es []
Lista adicional de opciones de compilación para compilaciones de C++.
compilation_contexts sequence; el valor predeterminado es []
Encabezados de las dependencias que se usan para la compilación.
name cadena; 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 resultados de PIC.
disallow_nopic_outputs bool; El valor predeterminado es False
Indica si se deben crear resultados de NOPIC.
additional_inputs sequence; el valor predeterminado es []
Lista de archivos adicionales necesarios para la compilación de srcs
module_interfaces sequence; el valor predeterminado es unbound
Es la lista de archivos de origen de las interfaces del módulo que se compilarán. Nota: Esta es una función experimental que solo se habilita 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 C++.

Parámetros

Parámetro Descripción
ctx ctx; o None; el valor predeterminado es None
Es el contexto de la regla.
cc_toolchain Info; required
cc_toolchain para el que configuramos funciones.
language string o None; El valor predeterminado es None
El lenguaje para configurar: c++ o objc (c++ predeterminado)
requested_features sequence; el valor predeterminado es []
Lista de funciones que se habilitarán.
unsupported_features sequence; el valor predeterminado es []
Lista de funciones que no admite 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: required
Es el contexto de la regla.
features sequence; El valor predeterminado es []
Contiene todas las especificaciones de marcas para una función.

Argumentos:

name: Es el nombre de la función. Es posible introducir una función sin cambiar Bazel. Para ello, agrega una sección "feature" a la cadena de herramientas y agrega la cadena correspondiente como función en el archivo BUILD.

enabled: Si es "True", esta función está habilitada, a menos que un tipo de regla la marque explícitamente como no compatible.

flag_sets: Es una lista de FlagSet. Si la función determinada está habilitada, se aplicarán los conjuntos de marcas para las acciones especificadas.

env_sets: Es una lista de EnvSet. Si la función determinada está habilitada, se aplicarán los conjuntos de variables de entorno para las acciones en las que se especifican.

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

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

provides: Es una lista de nombres con los que este atributo entra en conflicto.

No se puede habilitar una función si:
- provides contiene el nombre de otra configuración de acción o función que queremos habilitar.
- provides contiene el mismo valor que un "provides" en otra configuración de acción o función que queremos habilitar. Úsalo para garantizar que las funciones incompatibles no se puedan activar accidentalmente al mismo tiempo, lo que generaría errores de compilador difíciles de diagnosticar.
action_configs sequence; El valor predeterminado es []
Una configuración de acción corresponde a una acción de Bazel y permite seleccionar una herramienta en función de las funciones activadas. La activación de la configuración de la acción se produce con la misma semántica que las funciones: una función puede "requerir" o "implicar" una configuración de la acción de la misma manera que lo haría con otra función.

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 es "True", esta acción está habilitada, a menos que un tipo de regla la marque explícitamente como no compatible.

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

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

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

artifact_name_patterns sequence; 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. Entre las categorías de ejemplo, se incluyen "linked_output" o el artefacto para esta selección. Junto con la extensión, se usa para crear un nombre de artefacto basado en el nombre del 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 del destino.

cxx_builtin_include_directories sequence; el valor predeterminado es []

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

Los comandos "gcc -E -xc++ - -v" pueden determinar las rutas que usa el compilador.

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

Las rutas relativas se resuelven en relación con el directorio del archivo de configuración.

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

toolchain_identifier string; required

Es el identificador único de la cadena de herramientas dentro de la versión de crosstool. 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 cadena o None; el valor predeterminado es None
Se ignora.
target_system_name cadena 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 cadena o None; el valor predeterminado es None
Obsoleto: En su lugar, usa restricciones basadas en la CPU. Si la cadena es "k8", se omitirá `target_cpu` del nombre de archivo de los datos sin procesar del perfil de FDO.
target_libc cadena o None; el valor predeterminado es None
Obsoleto: Usa restricciones basadas en el SO en su lugar. Es 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. La cadena se expone a CcToolchainInfo.libc.
compiler string; obligatorio
Es la cadena del compilador (p.ej., "gcc"). El compilador de la cadena de herramientas actual se expone a `@bazel_tools//tools/cpp:compiler (compiler_flag)` como un valor de la 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 instrucciones select() o crear config_setting personalizadas si la configuración existente no es suficiente.
abi_version string o None; El valor predeterminado es None
Es la ABI en uso, que es una versión de gcc. P. ej.: "gcc-3.4". La cadena se establece en la ABI de la variable de la cadena de herramientas de C++.
abi_libc_version cadena o None; el valor predeterminado es None
Es la versión de glibc que usa la ABI que estamos usando. La cadena se establece en la variable de cadena de herramientas de C++ ABI_LIBC_VERSION.
tool_paths sequence: El valor predeterminado es []
Ubicaciones de herramientas.

Argumentos:

name: Nombre de la herramienta.

path: Es la 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 de cc_toolchain.

make_variables sequence; El valor predeterminado es []
Es una variable de creación que se hace accesible para las reglas.
builtin_sysroot cadena o None; el valor predeterminado es None
Es el directorio raíz del sistema 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
. Es un conjunto de rutas de acceso de búsqueda para los archivos de encabezado a los que se hace referencia con corchetes angulares, es decir, #include <foo/bar/header.h>. Pueden ser relativas a la raíz de ejecución o absolutas. Suele pasarse con -isystem
includes El valor predeterminado es unbound
. Es un conjunto de rutas de búsqueda para los archivos de encabezado a los que se hace referencia con corchetes angulares y comillas. Por lo general, se pasa con -I.
quote_includes El valor predeterminado es unbound
. Es un conjunto de rutas de acceso de búsqueda para los archivos de encabezado a los que se hace referencia entre comillas, p. ej., #include "foo/bar/header.h". Pueden ser relativas a la raíz de ejecución o absolutas. Por lo general, se pasa con -iquote
framework_includes El valor predeterminado es unbound
. Conjunto de rutas de búsqueda de frameworks para archivos de encabezado (solo para la plataforma de Apple)
defines El valor predeterminado es unbound
. Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. Se propaga de forma transitiva a los elementos dependientes.
local_defines El valor predeterminado es unbound
. Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. No se propaga de forma transitiva a los elementos dependientes.

create_compilation_outputs

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

Crea el objeto de resultados de la 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)

Devuelve las variables que se usan para las acciones de compilación.

Parámetros

Parámetro Descripción
cc_toolchain Info; required
cc_toolchain para la que creamos variables de compilación.
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
source_file El valor predeterminado es None
. Archivo de origen opcional para la compilación. Prefiere pasar source_file aquí en lugar de agregarlo al final de la línea de comandos generada a partir de cc_common.get_memory_inefficient_command_line, ya que, de esta manera, el autor de la cadena de herramientas puede especificar y posicionar correctamente las marcas del compilador.
output_file El valor predeterminado es None
. Archivo de salida opcional de la compilación. Prefiere pasar output_file aquí en lugar de agregarlo al final de la línea de comandos generada a partir de cc_common.get_memory_inefficient_command_line, ya que, de esta manera, el autor de la cadena de herramientas puede especificar y posicionar correctamente las marcas del compilador.
user_compile_flags secuencia de cadenas o None; el valor predeterminado es None
Lista de marcas de compilación adicionales (copts).
include_directories depset o None; El valor predeterminado es None
Es un depset de los directorios de inclusión.
quote_include_directories depset o None; el valor predeterminado es None
Es un depset de directorios de inclusión de comillas.
system_include_directories depset o None; El valor predeterminado es None
Es el depset de los directorios de inclusión del sistema.
framework_include_directories depset o None; El valor predeterminado es None
Es un depset de directorios de inclusión del framework.
preprocessor_defines depset o None; el valor predeterminado es None
Es el depset de las definiciones del preprocesador.
thinlto_index string o None; el valor predeterminado es None
Ruta de acceso al archivo de índice del LTO.
thinlto_input_bitcode_file string o None; el valor predeterminado es None
Archivo de bitcode que se ingresa en el backend de LTO.
thinlto_output_object_file cadena o None; el valor predeterminado es None
Archivo de objeto que genera el backend de LTO.
use_pic bool; el valor predeterminado es False
Cuando es verdadero, la compilación generará código independiente de la posición.
add_legacy_cxx_options bool; El valor predeterminado es False
Sin usar.
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
Objeto actions.
feature_configuration El valor predeterminado es None
feature_configuration que se consultará.
cc_toolchain El valor predeterminado es el proveedor None
CcToolchainInfo 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
File de la biblioteca estática de pic que se vinculará.
dynamic_library File 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 la interfaz que se vinculará.
pic_objects sequence de Files; el valor predeterminado es unbound
Experimental, no usar
objects sequence de Files; el valor predeterminado es unbound
Experimental, no usar
bool; El valor predeterminado es False
Indica si se deben vincular los objetos o la biblioteca estática en el bloque --whole_archive.
string; el valor predeterminado es ''
Anula la ruta de acceso predeterminada del vínculo de la biblioteca dinámica en el directorio solib. Cadena vacía para usar el valor predeterminado.
cadena; el valor predeterminado es ''
Anula la ruta de acceso 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)

Devuelve las variables de vínculo que se usan para las acciones de vinculación.

Parámetros

Parámetro Descripción
Info; required
cc_toolchain para la que creamos variables de compilación.
FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
depset; El valor predeterminado es []
Es el depset de los directorios en los que el vinculador buscará bibliotecas en el momento de la vinculación.
depset; El valor predeterminado es []
Es el depset de los directorios en los que el cargador buscará bibliotecas durante el tiempo de ejecución.
sequence; el valor predeterminado es []
Lista de marcas de vinculación adicionales (linkopts).
El valor predeterminado es None
. Ruta de acceso opcional del archivo de salida.
El valor predeterminado es None
. Ruta de acceso al archivo de parámetros opcional.
bool; el valor predeterminado es True
Es verdadero cuando se usa el vinculador y falso cuando se usa el archivador. La persona que llama es responsable de mantener esto sincronizado con el nombre de la acción que se usa (is_using_linker = True para vincular la biblioteca dinámica o el ejecutable, 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 y falso cuando se trata de una biblioteca ejecutable o estática. La entidad llamadora es responsable de mantener la sincronización con el nombre de la acción que se usa. Este campo se quitará una vez que se corrija el error b/65151735.
bool; el valor predeterminado es True
Cuando se establece en False, bazel expondrá la variable "strip_debug_symbols", que suele usarse para que el vinculador quite los símbolos de depuración del archivo de salida.
bool; el valor predeterminado es False
Cuando se configura como verdadero, se establecerá la variable "is_cc_test".
bool; El valor predeterminado es True
Sin usar.

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 Label: obligatorio
Es la etiqueta del destino que produjo todos los archivos utilizados en esta entrada.
libraries None; o depset; El valor predeterminado es None
Lista de LibraryToLink.
None; o depset de strings; o sequence de strings; el valor predeterminado es None
Son marcas de vínculos del usuario que se pasan como cadenas. Acepta [String], [[String]] o depset(String). No se recomienda el último, ya que solo se mantiene por motivos de compatibilidad, y el depset se aplana. Si deseas propagar user_link_flags a través de depsets() sin aplanar, envuélvelos en un LinkerInput para que no se aplanen hasta el final.
additional_inputs None o depset; El valor predeterminado es None
Son entradas adicionales para 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)

Crea un LinkingContext.

Parámetros

Parámetro Descripción
linker_inputs depset; required
Es el depset de LinkerInput.

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)

Se debe usar para crear reglas de biblioteca que puedan propagar información de forma descendente para que una regla de nivel superior que realice una vinculación transitiva pueda vincularlas más adelante para crear un archivo ejecutable o una biblioteca dinámica. Devuelve una tupla de (CcLinkingContext, CcLinkingOutputs).

Parámetros

Parámetro Descripción
actions actions: objeto
actions obligatorio.
name cadena; obligatorio
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
feature_configuration FeatureConfiguration; required
feature_configuration para consultar.
cc_toolchain Info; required
CcToolchainInfo proveedor que se usará.
language string; El valor predeterminado es 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
disallow_static_libraries bool; el valor predeterminado es False
Indica si se deben crear bibliotecas estáticas.
disallow_dynamic_library bool; el valor predeterminado es False
Indica si se debe crear una biblioteca dinámica.
compilation_outputs CcCompilationOutputs; required
Resultados de la compilación que contienen archivos de objetos para vincular.
linking_contexts sequence; el valor predeterminado es []
Bibliotecas de dependencias. Estas bibliotecas se vincularán en el artefacto de salida de la llamada a link(), ya sea un objeto binario o una biblioteca.
sequence: El valor predeterminado es []
Lista adicional de opciones de vinculación.
bool; el valor predeterminado es False
Indica si esta biblioteca siempre debe estar vinculada.
additional_inputs sequence; el valor predeterminado es []
Son entradas adicionales para 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 del vínculo.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

Crea un contexto de compilación de LTO.

Parámetros

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

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 ayudar 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)

Devuelve las variables de entorno que se deben establecer para la acción determinada.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres en @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: required
Son las variables de compilación que se usarán para la expansión de la plantilla.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

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

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres en @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)

Devuelve marcas de línea de comandos aplanadas para la acción determinada, con las variables proporcionadas para la expansión. Aplanar conjuntos anidados y, de forma ideal, no se debe usar o, al menos, no debe sobrevivir al análisis. Se está trabajando en una función eficiente en cuanto a la memoria que devuelve Args.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres en @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
Son las 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)

Devuelve la ruta de la herramienta para la acción determinada.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
action_name string; obligatorio
Nombre de la acción. Debe ser uno de los nombres en @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)

Devuelve True si la función determinada está habilitada en la configuración de funciones.

Parámetros

Parámetro Descripción
feature_configuration FeatureConfiguration; required
Es la configuración de la función sobre la que se realizará la consulta.
feature_name string; obligatorio
Nombre de la función.

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

Se debe usar para la vinculación transitiva de C++.

Parámetros

Parámetro Descripción
actions actions: objeto
actions obligatorio.
name cadena; obligatorio
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
feature_configuration FeatureConfiguration; required
feature_configuration para consultar.
cc_toolchain Info; required
CcToolchainInfo proveedor que se usará.
language string; El valor predeterminado es 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
output_type string; el valor predeterminado es 'executable'
Puede ser "executable" o "dynamic_library".
bool; el valor predeterminado es True
Es verdadero para vincular dependencias de forma estática y falso para hacerlo de forma dinámica.
compilation_outputs CcCompilationOutputs o None; el valor predeterminado es None
Son los resultados de la compilación que contienen archivos de objeto para vincular.
linking_contexts sequence: El valor predeterminado es []
Contextos de vinculación de las dependencias que se vincularán al contexto de vinculación generado por esta regla.
sequence: 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 archivo ejecutable vinculado, si output_type es "executable". Si es 1, siempre se incluye la información de compilación. Si es 0, la información de compilación predeterminada siempre se excluye. Si es -1, se usa el comportamiento predeterminado, que se puede anular con la marca --[no]stamp. Este parámetro debe anularse (o establecerse en 0) cuando se genere el resultado ejecutable para las reglas de prueba.
additional_inputs sequence o depset; la opción predeterminada es []
. Son entradas adicionales para la acción de vinculación, p. ej., secuencias de comandos de vinculación.
additional_outputs sequence; el valor predeterminado es []
Para obtener resultados adicionales de la acción de vinculación, p.ej., archivos de mapas.
variables_extension dict; El valor predeterminado es {}
Son variables adicionales que se pasan a la configuración de la cadena de herramientas cuando se crea la línea de comandos del vínculo.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Combina varios objetos CompilationContexts en uno.

Parámetros

Parámetro Descripción
compilation_contexts sequence; el valor predeterminado es []
Lista de CompilationContextss que se combinarán. Los encabezados de cada contexto se exportarán a través de los campos directos del proveedor devuelto.

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 sequence; el valor predeterminado es []