cc_común

Informar un problema Ver fuente

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 está habilitado action_config en la configuración de la función.

Parámetros

Parámetro Descripción
feature_configuration required
La configuración de la función que se debe consultar.
action_name required
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=[])

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

Parámetros

Parámetro Descripción
actions required
el objeto actions.
feature_configuration requiere
feature_configuration para la consulta.
cc_toolchain el proveedor
CcToolchainInfo obligatorio que se usará.
srcs el valor predeterminado es []
La lista de archivos de origen que se compilará.
public_hdrs el valor predeterminado es []
Es la lista de encabezados necesarios para la compilación de srcs y pueden incluirse de manera transitiva mediante reglas dependientes.
private_hdrs el valor predeterminado es []
Lista de encabezados necesarios para la compilación de srcs y NO para que se incluyan en las reglas dependientes.
includes secuencia o depset; la opción predeterminada es []
Busca rutas de acceso para los archivos de encabezado a los que se hace referencia mediante corchetes angulares y comillas. Por lo general, se pasa con -I. Se propaga a dependientes de forma transitiva.
quote_includes la opción predeterminada es []
Busca rutas de acceso para 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 exec o absolutas. Por lo general, se pasa con -icita. Se propaga a dependientes de forma transitiva.
system_includes la ruta predeterminada es []
Busca rutas de acceso para archivos de encabezado a los que se hace referencia con corchetes angulares, p.ej., #include <foo/bar/header.h>. Pueden ser relativos a la raíz exec o absoluta. Por lo general, se pasa con -isystem. Se propaga a dependientes de forma transitiva.
framework_includes la opción predeterminada es []
Busca rutas de acceso para los archivos de encabezado de los frameworks de Apple. Pueden ser relativas a la raíz exec o absolutas. Por lo general, se aprueba con -F. Se propaga a dependientes de forma transitiva.
defines el valor predeterminado es []
Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. Se propaga a dependientes de forma transitiva.
local_defines el valor predeterminado es []
Es el conjunto de definiciones necesarias para compilar este destino. Cada definición es una cadena. No se propaga a las dependientes de forma transitiva.
include_prefix la opción predeterminada 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 el valor de este atributo que se antepone a su ruta relativa de repositorio. El prefijo del atributo strip_include_prefix se quita antes de agregarlo.
strip_include_prefix la opción predeterminada 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 relativa, se toma como una 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 El valor predeterminado es []
Lista adicional de opciones de compilación.
compilation_contexts la configuración predeterminada es []
Encabezados de las dependencias que se usan para la compilación.
name required
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 el valor predeterminado es False
Si se deben crear resultados de PIC.
disallow_nopic_outputs el valor predeterminado es False
Establece si se deben crear salidas NOPIC.
additional_inputs El valor predeterminado es []
Lista de archivos adicionales necesarios para la compilación de srcs

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; o None; el valor predeterminado es None
El contexto de la regla.
cc_toolchain required
cc_toolchain para las funciones que configuramos.
language string; o None; el valor predeterminado es None
El lenguaje para configurar: c++ u objc (c++ predeterminado)
requested_features el valor predeterminado es []
Lista de funciones que se habilitarán.
unsupported_features 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, target_cpu, target_libc, 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 required
El contexto de la regla.
features el valor predeterminado es []
Contiene todas las especificaciones de la marca de una función.

Argumentos:

name: Es el nombre del componente. 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.

enabled: Si estableces la política como verdadera, se habilitará esta función, 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 está habilitada, los conjuntos de marcas se aplicarán para las acciones especificadas.

env_sets: Es una lista EnvSet. Si la función está habilitada, los conjuntos de entornos se aplicarán a las acciones para las que se hayan especificado.

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 alguno de los conjuntos de atributos se aplica completamente, es decir, cuando todas las funciones de un conjunto de funciones están habilitadas. Si se omite requires, se admite la función independientemente de las otras que estén habilitadas. Úsalo, por ejemplo, para filtrar marcas según el modo de compilación habilitado (opt / fastbuild / dbg).

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

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

No se puede habilitar una función en los siguientes casos:
- provides contiene el nombre de una función o configuración de acción diferente que queremos habilitar.
- provides contiene el mismo valor que “proporciona” en una configuración de función o 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 el valor predeterminado es []
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 se produce con la misma semántica que los atributos: un atributo puede "requerir" o "implique" 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".

enabled: Si estableces la política como verdadera, se habilitará esta acción, 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 con un conjunto de atributos que coincida con la configuración correspondiente. Se mostrará un error si ninguna herramienta coincide con la configuración de una 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.

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 acción. Si no se puede habilitar alguna de las opciones de configuración de acciones o funciones implícitas, esta configuración de la acción tampoco se habilitará (de forma silenciosa).

artifact_name_patterns predeterminado es []
El nombre de un artefacto de una categoría determinada de artefactos de entrada o salida de una acción.

Argumentos:

category_name: Es 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.

extension: Es la extensión para crear el artefacto de esta selección. Se usa junto con el prefijo para crear un nombre de artefacto según el nombre del destino.

cxx_builtin_include_directories la cantidad predeterminada es []

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

Las rutas de acceso 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 inclusión y especificar el atributo sysroot para proporcionarle al Blaze la información necesaria para realizar los reemplazos correctos.

toolchain_identifier obligatorio

Es el identificador único de la cadena de herramientas dentro de la versión de la herramienta cruzada. Debe ser posible usar esto 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
Se ignora.
target_system_name required
El nombre del sistema de GNU.
target_cpu required
La string de la arquitectura de destino.
target_libc required
Es la string de la 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
compiler required
La string del compilador (p.ej., "gcc"). El compilador del conjunto de herramientas actual se expone a `@bazel_tools//tools/cpp:compiler (compiler_flag)` como 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
El ABI en uso, que es una versión de gcc E.g.: “gcc-3.4”
abi_libc_version string; o None; el valor predeterminado es None
La versión de glibc que usa la ABI que estamos usando.
tool_paths la opción predeterminada es []
Ubicaciones de 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 relativa al paquete de cc_toolchain.

make_variables el valor predeterminado es []
Es una variable de Make a la que las reglas pueden acceder.
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, mediante 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 la configuración predeterminada es unbound
Conjunto de rutas de búsqueda para 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 exec o absolutas. Por lo general, se pasa con -isystem
includes la configuración predeterminada es unbound
Conjunto de rutas de búsqueda para archivos de encabezado a los que se hace referencia tanto por corchete angular como por comillas.Por lo general, se pasa con -I
quote_includes la configuración predeterminada es unbound
Conjunto de rutas de búsqueda para los 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 exec o absolutas. Por lo general, se pasa con -iQuote
framework_includes la opción predeterminada es unbound
Conjunto de rutas de búsqueda de framework 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 propagan transitivamente a 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 las dependientes.

create_compilation_outputs

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

Crea un 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 con imágenes.

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 usadas para acciones de compilación.

Parámetros

Parámetro Descripción
cc_toolchain required
cc_toolchain para las que crearemos variables de compilación.
feature_configuration required
La configuración de la función que se debe consultar.
source_file predeterminado es None
Archivo de origen opcional para la compilación. Es preferible pasar el archivo source_file aquí en lugar de agregarlo al final de la línea de comandos generada a partir de cc_common.get_memory_ineficiente_command_line, ya que depende del autor de la cadena de herramientas para especificar y posicionar correctamente los indicadores del compilador.
output_file predeterminado es None
Archivo de salida opcional de la compilación. Es preferible 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 para especificar y posicionar correctamente los indicadores del compilador.
user_compile_flags secuencia de strings o None; el valor predeterminado es None
Lista de marcas adicionales de compilación (copts).
include_directories depset; o None; el valor predeterminado es None
Depset de los directorios de inclusión.
quote_include_directories depset; o None; el valor predeterminado es None
El separador de los directorios de inclusión de comillas.
system_include_directories depset; o None; el valor predeterminado es None
Depset de los directorios de inclusión del sistema.
framework_include_directories depset o None; el valor predeterminado es None
Depset de los directorios de inclusión del framework.
preprocessor_defines depset; o None; el valor predeterminado es None
Define el Depset del preprocesador.
thinlto_index string; o None; el valor predeterminado es None
, en la ruta del archivo del índice LTO.
thinlto_input_bitcode_file string; o None; el valor predeterminado es None
Un 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
Es un archivo de objeto que emite el backend de LTO.
use_pic el valor predeterminado es False
Si el valor es verdadero, la compilación generará código independiente de la posición.
add_legacy_cxx_options 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 required
el objeto actions.
feature_configuration el valor predeterminado es None
feature_configuration para consultarse.
cc_toolchain el proveedor predeterminado es None
CcToolchainInfo que se usará.
static_library File; o None; el valor predeterminado es None
File de la biblioteca estática que se vinculará.
pic_static_library File o None; el valor predeterminado es None
File de la biblioteca estática de imágenes 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 File; o None; el valor predeterminado es None
File de la biblioteca de la interfaz que se vinculará.
pic_objects secuencia de objetos File; el valor predeterminado es unbound
Experimental, no usar
objects secuencia de objetos File; el valor predeterminado es unbound
Experimental, no usar
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 de la biblioteca dinámica en el directorio solib. La cadena está vacía para usar el valor predeterminado.
el valor predeterminado es ''
Anula la ruta de acceso predeterminada del vínculo de la biblioteca de la interfaz en el directorio solib. La cadena está 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, 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 vincular acciones.

Parámetros

Parámetro Descripción
required
cc_toolchain para las que crearemos variables de compilación.
required
La configuración de la función que se debe consultar.
None; o depset; el valor predeterminado es None
El depósito de los directorios en los que el vinculador buscará bibliotecas en el tiempo de vinculación.
None; o depset; el valor predeterminado es None
El depósito de los directorios en los que el cargador buscará las bibliotecas en el tiempo de ejecución.
None o secuencia; el valor predeterminado es None
Lista de marcas de vínculos adicionales (linkopts).
predeterminado es None
Ruta de archivo de salida opcional.
el valor predeterminado es None
Ruta del archivo de parámetros opcional.
la configuración predeterminada es True
Verdadero cuando se usa el vinculador, Falso 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 bibliotecas estáticas).
el valor predeterminado es False
Verdadero cuando se crea una biblioteca dinámica y falso cuando se crea una biblioteca ejecutable o estática. El emisor es responsable de mantenerla sincronizada con el nombre de acción utilizado. Este campo se quitará una vez que se corrija b/65151735.
el valor predeterminado es True
Cuando se establece como falso, bazel expone la variable "strip_debug_symbols", que se suele usar para usar el vinculador para quitar los símbolos de depuración del archivo de salida.
el valor predeterminado es False
Cuando se establece en true, se establece la variable 'is_cc_test'.
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 required
Es la etiqueta del destino que produjo todos los archivos que se usan 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ínculos de usuario que se pasan como cadenas. Acepta [String], [[String]] o depset(String). Esta última no se recomienda, ya que solo se conserva por motivos de compatibilidad; el depset se acopla. Si deseas propagar user_link_flags a través de depsets() sin compactar, únelos en un LinkerInput para que no queden acoplados hasta el final.
additional_inputs None o depset; el valor predeterminado es None
Para entradas adicionales a la acción de vinculación, p.ej., la vinculación de secuencias de comandos.

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
Depset de LinkerInput.
None o secuencia; el valor predeterminado es None
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 o secuencia; el valor predeterminado es None
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ínculo de usuario pasadas como strings.
additional_inputs None o secuencia; el valor predeterminado es None
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., la vinculación de secuencias de comandos

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)

Se debe usar para crear reglas de biblioteca que puedan propagar información de manera descendente para que se la vincule más adelante mediante una regla de nivel superior que realice vinculaciones transitivas a fin de crear una biblioteca dinámica o ejecutable. Muestra una tupla de (CcLinkingContext, CcLinkingOutputs).

Parámetros

Parámetro Descripción
actions required
el objeto actions.
feature_configuration requiere
feature_configuration para la consulta.
cc_toolchain el proveedor
CcToolchainInfo obligatorio que se usará.
compilation_outputs required
Salidas de compilación que contienen archivos de objeto que se deben vincular.
la opción predeterminada es []
Lista adicional de opciones de vinculación.
linking_contexts la opción predeterminada es []
Bibliotecas de dependencias. Estas bibliotecas se vincularán con el artefacto de salida de la llamada link(), ya sea un objeto binario o una biblioteca.
name required
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
language El valor predeterminado es 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
el valor predeterminado es False
Establece si esta biblioteca siempre debe estar vinculada.
additional_inputs la configuración predeterminada es []
Para obtener entradas adicionales a la acción de vinculación, p. ej., la vinculación de secuencias de comandos
disallow_static_libraries el valor predeterminado es False
Establece si deben crearse bibliotecas estáticas.
disallow_dynamic_library el valor predeterminado es False
Indica si se debe crear una biblioteca dinámica.

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

No uses este campo, ya que 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 required
La configuración de la función que se debe consultar.
action_name required
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 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 required
La configuración de la función que se debe consultar.
action_name required
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 acopladas para una acción determinada usando variables determinadas para la expansión. Se acopla los conjuntos anidados. Idealmente, no deberían usarse o al menos no deberían durar más que el análisis. El trabajo en la función eficiente de la memoria que muestra Args está en curso.

Parámetros

Parámetro Descripción
feature_configuration required
La configuración de la función que se debe consultar.
action_name required
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 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 la herramienta para la acción determinada.

Parámetros

Parámetro Descripción
feature_configuration required
La configuración de la función que se debe consultar.
action_name required
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 determinada función está habilitada en la configuración de la función.

Parámetros

Parámetro Descripción
feature_configuration required
La configuración de la función que se debe consultar.
feature_name required
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=[], additional_outputs=unbound)

Debe usarse para los vínculos transitivos de C++.

Parámetros

Parámetro Descripción
actions required
el objeto actions.
feature_configuration requiere
feature_configuration para la consulta.
cc_toolchain el proveedor
CcToolchainInfo obligatorio que se usará.
compilation_outputs CcCompilationOutputs o None; el valor predeterminado es None
Salidas de compilación que contienen archivos de objeto para vincular.
el valor predeterminado es []
Lista adicional de opciones del vinculador.
linking_contexts El valor predeterminado es []
Vincular contextos de dependencias para que se vinculen al contexto de vinculación generado por esta regla.
name required
Se usa para nombrar los artefactos de salida de las acciones creadas por este método.
language El valor predeterminado es 'c++'
Por el momento, solo se admite C++. No uses este parámetro.
output_type el valor predeterminado es 'executable'
Puede ser "executable" o "dynamic_library"
El valor predeterminado es True
Verdadero para vincular dependencias de forma estática y Falso de forma dinámica.
stamp 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 compilación. Si es 0 (siempre se excluye la información de compilación predeterminada. Si es -1, usa el comportamiento predeterminado, que puede anularse con la marca --[no]stamp. No debería establecerse (o establecerse en 0) cuando se genere el resultado ejecutable para 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., la vinculación de secuencias de comandos.
additional_outputs secuencia; el valor predeterminado es unbound
Para resultados adicionales de la acción de vinculación, p.ej., archivos de mapa.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Combina varios CompilationContexts en uno.

Parámetros

Parámetro Descripción
compilation_contexts el valor predeterminado es []
Lista de CompilationContexts que se combinarán. Los encabezados de cada contexto se exportarán mediante los campos directos en el proveedor que se muestra.

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 la cantidad predeterminada es []