cc_común

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)

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

Parámetros

Parámetro Descripción
feature_configuration obligatorio
La configuración de funciones que se debe consultar.
action_name required
Es el 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 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=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], grep_includes=None)

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

Parámetros

Parámetro Descripción
actions obligatorio
objeto actions.
feature_configuration requerido
feature_configuration para consultar.
cc_toolchain se requiere
el proveedor CcToolchainInfo que se use.
srcs default = []
Lista de archivos de origen que se compilarán.
public_hdrs default = []
Lista de encabezados necesarios para la compilación de srcs. Las reglas dependientes pueden incluirlos de forma transitiva.
private_hdrs default = []
Lista de encabezados necesarios para la compilación de srcs y NO deben incluirse en las reglas dependientes.
includes default = []
Busca rutas de acceso de archivos de encabezados a los que se hace referencia por corchete angular y comillas. Por lo general, se aprueba con -I. Se propagan de forma transitiva a las dependientes.
quote_includes default = []
Busca rutas de acceso de archivos de encabezados a los que se hace referencia con comillas, p.ej., #include "foo/bar/header.h". Pueden ser relativas a la raíz ejecutiva o absolutas. Por lo general, se pasa con -iQuote. Se propagan de forma transitiva a las dependientes.
system_includes default = []
Busca rutas de acceso de archivos de encabezado a los que se hace referencia con corchetes angulares, p.ej., #include <foo/bar/header.h>. Pueden estar relacionadas con la raíz ejecutiva o con el valor absoluto. Suele pasar con -isystem. Se propagan de forma transitiva a las dependientes.
framework_includes default = []
Busca rutas de acceso para archivos de encabezado de frameworks de Apple. Pueden ser relativas a la raíz ejecutiva o absolutas. Suele pasar con -F. Se propagan de forma transitiva a las dependientes.
defines default = []
Conjunto de definiciones necesarias para compilar este destino. Cada definir es una string. Se propagan de forma transitiva a las dependientes.
local_defines default = []
Conjunto de definiciones necesarias para compilar este destino. Cada definir es una string. No se propaga a las dependientes de forma transitiva.
include_prefix default = ''
Es el prefijo que se agrega a las rutas de acceso de los encabezados de esta regla. Cuando se configura, se puede acceder a los encabezados en el atributo hdrs de esta regla desde el valor de este atributo antepuesto a su ruta de acceso relativa de repositorio. Antes de agregar este prefijo, se quita el prefijo del atributo strip_include_prefix.
strip_include_prefix default = ''
Es el prefijo que se quitará de 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 relativa, se toma como relativa de paquete. Si es una absoluta, se entiende como una ruta relativa de repositorio. El prefijo del atributo include_prefix se agrega después de quitar este prefijo.
user_compile_flags default = []
Lista adicional de opciones de compilación.
compilation_contexts default = []
Encabezados de las dependencias usadas para la compilación.
name obligatorio
Se usa para nombrar los artefactos de salida de las acciones que crea este método. Consulta también el argumento `main_output`.
disallow_pic_outputs default = False
Indica si se deben crear resultados de PIC.
disallow_nopic_outputs default = False
Indica si se deben crear salidas NOPIC.
additional_inputs default = []
Lista de archivos adicionales necesarios para la compilación de srcs
grep_includes File; or None; predeterminado = Ninguno

configure_features

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

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

Parámetros

Parámetro Descripción
ctx ctx; or None; default = None
El contexto de la regla.
cc_toolchain required
cc_toolchain para el que configuramos funciones.
language string; or None; default = None
Idioma para configurar: c++ u objc (c++ predeterminado)
requested_features default = []
Lista de funciones que se habilitarán.
unsupported_features default = []
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, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)

Crea un proveedor de CcToolchainConfigInfo

Parámetros

Parámetro Descripción
ctx required
El contexto de la regla.
features predeterminado = []

Contiene todas las especificaciones de marcas para un componente.

Argumentos:

name: Muestra el nombre del elemento. Es posible introducir una función sin un cambio en Bazel agregando una sección 'feature' a la cadena de herramientas y agregando la cadena correspondiente como atributo en el archivo BUILD.

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

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

env_sets: Una lista EnvSet: Si se habilita la función determinada, se aplicarán los conjuntos de entorno a las acciones para las que se hayan especificado.

requiere: Una lista de conjuntos de atributos que definen cuándo la cadena de herramientas admite esta función. La función es compatible si alguno de los conjuntos de atributos se aplica por completo, es decir, cuando todas las funciones de un conjunto de atributos están habilitadas. Si se omite la opción "require", la función se admite independientemente de las demás funciones que estén habilitadas. Usa esto, por ejemplo, para filtrar marcas según el modo de compilación habilitado (opt / fastbuild / dbg).

implica: 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 alguna de las funciones implícitas o los parámetros de configuración de acciones no se pueden habilitar, esta función tampoco se habilitará (de forma silenciosa).

proporciona: Una lista de nombres con los que este elemento entra en conflicto.

No se puede habilitar una función en los siguientes casos:
- "proporciona" contiene el nombre de una función o configuración de acción diferente que queremos habilitar.
- "proporcionado" contiene el mismo valor que "proporciona" en una función o configuración de acción diferente que queremos 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 predeterminado = []

Una configuración de acción corresponde a una acción de Bazel y permite seleccionar una herramienta según las funciones activadas. La activación de la configuración de acciones ocurre según la misma semántica que las funciones: una función puede "requerir" o "implicar" una configuración de 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".

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

herramientas: La herramienta que se aplique a la acción será la primera con un conjunto de atributos que coincida con su configuración. Se mostrará un error si ninguna herramienta coincide con una configuración de función proporcionada; por ese motivo, se recomienda proporcionar una herramienta predeterminada con un conjunto de atributos vacío.

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

implica: una lista de funciones o parámetros de configuración de acciones que se habilitan automáticamente cuando se habilita esta configuración de acción. Si alguna de las funciones implícitas o la configuración de acciones no se pueden habilitar, esta configuración de acción tampoco se habilitará (de forma silenciosa).

artifact_name_patterns predeterminado = []

El nombre de un artefacto de una categoría determinada de artefactos de entrada o salida de una acción.

Argumentos:

category_name: Indica la categoría de artefactos a los 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 del destino.

Extensión: Es la extensión para crear el artefacto de 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 predeterminado = []

Los directorios incluidos para la compilación de C++ están integrados. Estas deben ser las rutas de acceso exactas que usa el compilador y, por lo general, están relacionadas con la raíz de ejecución.

Las rutas que usa el compilador pueden determinarse con "gcc -E -xc++ - -v".

Actualmente, usamos las rutas de acceso de C++ también para la compilación de C, que es segura siempre que no haya conflictos de nombres entre los archivos de encabezados de C++ y C.

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

Si el compilador es compatible con --sysroot, estas rutas de acceso deben usar %sysroot% en lugar de 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 obligatorio

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

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

host_system_name string; or None; predeterminado = Ninguno
Ignorada.
target_system_name required
El nombre del sistema de GNU.
target_cpu obligatorio
La string de arquitectura de destino.
target_libc obligatorio
La string de versión de libc (p.ej., "glibc-2.2.2").
compiler required
La string de la versión del compilador (p.ej., “gcc-4.1.1”).
abi_version string; or None; default = None
El abi en uso, que es una versión de gcc. E.g.: “gcc-3.4”
abi_libc_version string; or None; default = Ninguna
La versión de glibc que usa la ABI que usamos.
tool_paths predeterminado = []

Ubicaciones de las herramientas.

Argumentos:

name: Nombre de la herramienta.

path: Indica 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 relativa al paquete de cc_toolchain.

make_variables default = []
Es una variable de Make a la que pueden acceder las reglas.
builtin_sysroot string; or None; default = 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.
cc_target_os string; or None; predeterminado = Ninguno
Solo para uso interno, no usar.

create_compilation_context

CompilationContext cc_common.create_compilation_context(headers=unbound, system_includes=unbound, includes=unbound, quote_includes=unbound, framework_includes=unbound, defines=unbound, local_defines=unbound)

Crea un CompilationContext.

Parámetros

Parámetro Descripción
headers default = unbound
Conjunto de encabezados necesarios para compilar este destino
system_includes default = unbound
Conjunto de rutas de búsqueda para 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 ejecutiva o al valor absoluto. Suele pasar con -isystem
includes default = unbound
Conjunto de rutas de búsqueda para archivos de encabezado a los que se hace referencia tanto por corchete angular como por comillas.Suele pasar con -I
quote_includes default = unbound
Conjunto de rutas de búsqueda para archivos de encabezado a los que se hace referencia con comillas, es decir, #include "foo/bar/header.h". Pueden ser relativas a la raíz ejecutiva o absolutas. Suele pasar con -icita
framework_includes default = unbound
Conjunto de rutas de búsqueda de framework para archivos de encabezado (solo para la plataforma de Apple)
defines default = unbound
Conjunto de definiciones necesarias para compilar este destino. Cada definir es una string. Se propagan de forma transitiva a dependientes.
local_defines default = unbound
Conjunto de definiciones necesarias para compilar este destino. Cada definir es una string. No se propaga de forma transitiva a las dependientes.

create_compilation_outputs

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

Crea un objeto de salidas de compilación.

Parámetros

Parámetro Descripción
objects depset; or None; default = None
Lista de archivos de objetos.
pic_objects depset; or None; default = 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 las variables que se usan para las acciones de compilación.

Parámetros

Parámetro Descripción
cc_toolchain required
cc_toolchain para la que estamos creando variables de compilación.
feature_configuration obligatorio
La configuración de funciones que se debe consultar.
source_file default = Ninguno
Archivo de origen opcional para la compilación. Prefiere pasar source_file aquí en lugar de adjuntarlo al final de la línea de comandos generada desde cc_common.get_memory_ineficiente_command_line, ya que depende del autor del conjunto de herramientas especificar y posicionar correctamente los indicadores del compilador.
output_file default = None
Archivo de salida opcional de la compilación. Prefiere pasar el archivo output_file aquí en lugar de agregarlo al final de la línea de comandos generada desde cc_common.get_memory_ineficiente_command_line, ya que depende del autor de la cadena de herramientas especificar y posicionar correctamente los indicadores del compilador.
user_compile_flags sequence of strings; or None; default = None
Lista de marcas de compilación adicionales (copts).
include_directories depset; or None; default = None
Conjunto de directorios de inclusión.
quote_include_directories depset; or None; predeterminado = Ninguno
Conjunto de directorios de inclusión de cotizaciones.
system_include_directories depset; or None; predeterminado = Ninguno
Conjunto de directorios de inclusión del sistema.
framework_include_directories depset; or None; predeterminado = Ninguno
Conjunto de directorios de inclusión de framework.
preprocessor_defines depset; or None; predeterminado = Ninguno
Define el porcentaje del preprocesador.
thinlto_index string; or None; predeterminado = Ninguno
Ruta del archivo de índice LTO.
thinlto_input_bitcode_file string; or None; predeterminado = Ninguno
Archivo de código de bits que se ingresa al backend de LTO.
thinlto_output_object_file string; or None; predeterminado = Ninguno
Archivo de objeto que emite el backend de LTO.
use_pic default = False
Cuando sea verdadero, la compilación generará código independiente de la posición.
add_legacy_cxx_options default = False
Sin usar.
variables_extension dict; predeterminado = no delimitado
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 predeterminado = Ninguno
feature_configuration para consultar.
cc_toolchain predeterminado = Ninguno
Proveedor de CcToolchainInfo que se usará.
static_library File; or None; default = None
File de la biblioteca estática que se vinculará.
pic_static_library File; or None; default = None
File de la biblioteca estática de imágenes se vinculará.
dynamic_library File; or None; predeterminado = Ninguno
File de la biblioteca dinámica que se vinculará. Siempre se usa para el tiempo de ejecución y se utiliza para la vinculación si no se pasa interface_library.
interface_library File; or None; predeterminado = Ninguna
File de la biblioteca de la interfaz que se vinculará.
pic_objects sequence of Files; predeterminado = no vinculado
Experimental, no usar
objects sequence of Files; predeterminado = no vinculado
Experimental, no usar
default = False
Si se debe vincular la biblioteca o los objetos estáticos en el bloque --whole_archive.
string; default = ''
Anula la ruta de acceso predeterminada del vínculo de biblioteca dinámica en el directorio solib. Una string vacía para usar el valor predeterminado.
default = ''
Anula la ruta de acceso predeterminada del vínculo de la biblioteca de la interfaz en el directorio solib. Una string vacía para usar el valor predeterminado.

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)

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

Parámetros

Parámetro Descripción
required
cc_toolchain para la que estamos creando variables de compilación.
obligatorio
La configuración de funciones que se debe consultar.
None; or depset; default = None
Conjunto de directorios en los que el vinculador buscará bibliotecas en el momento de la vinculación.
None; or depset; default = None
Conjunto de directorios en los que el cargador buscará las bibliotecas en el tiempo de ejecución.
None; or sequence; default = None
Lista de marcas de vínculos adicionales (linkopts).
default = Ninguno
Ruta de archivo de salida opcional.
default = None
Ruta de archivo de parámetros opcional.
default = Ninguno
Ruta de archivo .def opcional.
default = True
True cuando se usa el vinculador, False cuando se usa el archivador. El llamador es responsable de mantener esto sincronizado con el nombre de acción utilizado (is_using_linker = True para vincular bibliotecas dinámicas o ejecutables, is_using_linker = False para archivar biblioteca estática).
default = False
True cuando se crea una biblioteca dinámica, False cuando se crea una biblioteca ejecutable o estática. El llamador es responsable de mantener esto sincronizado con el nombre de acción utilizado. Este campo se quitará una vez que se corrija b/65151735.
default = True
Cuando se establece en True, bazel expondrá la variable "strip_debug_symbols", que se suele usar para usar el vinculador a fin de quitar símbolos de depuración del archivo de salida.
default = False
Cuando se establece en true, se establece la variable "is_cc_test".
default = 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 obligatorio
La etiqueta del destino que produjo todos los archivos que se usan en esta entrada.
libraries None; or depset; predeterminado = Ninguno
Lista de LibraryToLink.
None; or depset of strings; or sequence of strings; predeterminado = Ninguna
Las marcas de los vínculos de usuario se pasan como strings. Acepta [String], [[String]] o depset(String). Esta última no se recomienda, ya que solo se conserva por motivos de compatibilidad; la depset se aplana. Si deseas propagar user_link_flags mediante depsets() sin compactar, únelos en un LinkerInput para que no queden acoplados hasta el final.
additional_inputs None; or depset; default = None
Para 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; or depset; default = None
Departamento de LinkerInput.
None; or sequence; predeterminado = Ninguno
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependas de ello. Está inhabilitada con --+incompatible_require_linker_input_cc_api. Usa esta marca para verificar que tu código sea compatible con la eliminación inminente.
Lista de LibraryToLink.
None; or sequence; predeterminado = Ninguno
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependas de ello. Está inhabilitada con --+incompatible_require_linker_input_cc_api. Usa esta marca para verificar que tu código sea compatible con la eliminación inminente.
Lista de marcas de vínculos de usuarios pasadas como strings.
additional_inputs None; or sequence; predeterminado = Ninguno
Obsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependas de ello. Está inhabilitada con --+incompatible_require_linker_input_cc_api. Usa esta marca para verificar que tu código sea compatible con la 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, 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, grep_includes=None)

Debe usarse para crear reglas de biblioteca que puedan propagar información en sentido descendente para que luego la vincule una regla de nivel superior que realice vinculaciones transitivas a fin de crear una biblioteca ejecutable o dinámica. Muestra una tupla de (CcLinkingContext, CcLinkingOutputs).

Parámetros

Parámetro Descripción
actions obligatorio
objeto actions.
feature_configuration requerido
feature_configuration para consultar.
cc_toolchain se requiere
el proveedor CcToolchainInfo que se use.
compilation_outputs obligatorio
Resultados de compilación que contienen archivos de objeto que se vincularán.
default = []
Lista adicional de opciones de vinculación.
linking_contexts default = []
Bibliotecas de dependencias. Estas bibliotecas se vincularán al artefacto de salida de la llamada link(), ya sea un objeto binario o una biblioteca.
name obligatorio
Se usa para nombrar los artefactos de salida de las acciones que crea este método.
language default = 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
default = False
Establece si esta biblioteca siempre debe estar vinculada.
additional_inputs predeterminado = []
Para entradas adicionales a la acción de vinculación, p. ej., secuencias de comandos de vinculación
disallow_static_libraries default = False
Indica si se deben crear bibliotecas estáticas.
disallow_dynamic_library default = False
Indica si se debe crear una biblioteca dinámica.
grep_includes File; or None; predeterminado = Ninguno

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)

Muestra las variables de entorno que se establecerán para una acción determinada.

Parámetros

Parámetro Descripción
feature_configuration obligatorio
La configuración de funciones que se debe consultar.
action_name required
Es el 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 requerida
Son 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 obligatorio
La configuración de funciones que se debe consultar.
action_name required
Es el 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)

Muestra marcas de línea de comandos aplanadas para una acción determinada usando variables determinadas para la expansión. Acopla los conjuntos anidados. Idealmente, no deberían utilizarse o, al menos, no deberían sobrevivir al análisis. Se está trabajando en la función eficiente de memoria que muestra Args.

Parámetros

Parámetro Descripción
feature_configuration obligatorio
La configuración de funciones que se debe consultar.
action_name required
Es el 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 obligatorias
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)

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

Parámetros

Parámetro Descripción
feature_configuration obligatorio
La configuración de funciones que se debe consultar.
action_name required
Es el 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)

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 obligatorio
La configuración de funciones que se debe consultar.
feature_name obligatorio
Es el nombre de la función.

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=[], grep_includes=None, additional_outputs=unbound)

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

Parámetros

Parámetro Descripción
actions obligatorio
objeto actions.
feature_configuration requerido
feature_configuration para consultar.
cc_toolchain se requiere
el proveedor CcToolchainInfo que se use.
compilation_outputs CcCompilationOutputs; or None; default = None
Resultados de compilación que contienen archivos de objeto que se vincularán.
default = []
Lista adicional de opciones del vinculador.
linking_contexts default = []
Vinculación de contextos de dependencias para que se vinculen al contexto de vinculación que genera esta regla.
name obligatorio
Se usa para nombrar los artefactos de salida de las acciones que crea este método.
language default = 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
output_type default = 'executable'
Puede ser “executable” o “dynamic_library”.
default = True
True para vincular dependencias de forma estática, y False de forma dinámica.
stamp default = 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 información de compilación. Si es 0 (la información de compilación predeterminada siempre se excluye; Si es -1, usa el comportamiento predeterminado, que se puede anular con la marca --[no]stamp. No se debe configurar (o se debe establecer en 0) cuando se genere el resultado ejecutable para las reglas de prueba.
additional_inputs sequence; or depset; default = []
Para entradas adicionales a la acción de vinculación, p. ej., secuencias de comandos de vinculación
grep_includes File; or None; predeterminado = Ninguno
additional_outputs sequence; default = unbound
Para resultados adicionales a la acción de vinculación, p.ej., archivos de mapa.

merge_cc_infos

CcInfo cc_common.merge_cc_infos(direct_cc_infos=[], cc_infos=[])

Combina varios CcInfo en uno.

Parámetros

Parámetro Descripción
direct_cc_infos default = []
Lista de objetos CcInfo que se combinarán, cuyos encabezados se exportarán mediante los campos directos del proveedor que se muestra.
cc_infos default = []
Lista de objetos CcInfo que se combinarán, cuyos encabezados no se exportarán mediante los campos directos del proveedor que se muestra.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Combina varios CompilationContexts en uno.

Parámetros

Parámetro Descripción
compilation_contexts default = []
Lista de objetos CompilationContexts que se combinarán. Los encabezados de cada contexto se exportarán mediante los campos directos en el proveedor mostrado.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Combina los resultados de compilación.

Parámetros

Parámetro Descripción
compilation_outputs predeterminado = []