cc_common

报告问题 查看源代码 每夜 build · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

用于 C++ 编译、链接和命令行生成的实用程序。

成员

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

如果功能配置中启用了指定的 action_config,则返回 true。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
action_name 字符串; 必需
action_config 的名称。

CcToolchainInfo

Provider cc_common.CcToolchainInfo

用于检索包含所用 C++ 工具链的相关信息的提供程序的键

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)

应用于 C++ 编译。返回 (CompilationContext, CcCompilationOutputs) 元组。

参数

参数 说明
actions actions; 必需
actions 对象。
feature_configuration FeatureConfiguration
要查询的 feature_configuration
cc_toolchain 信息;
必须提供CcToolchainInfo要使用的提供程序。
srcs sequence; 默认为 []
要编译的源文件列表。
public_hdrs sequence; 默认值为 []
编译 src 所需的头文件列表,并且可能会由依赖项规则传递包含。
private_hdrs sequence; 默认值为 []
编译源代码所需的头文件列表,并且不应包含在依赖项规则中。
includes sequence;或 depset; 默认为 []
同时通过尖括号和引号引用的头文件的搜索路径。通常通过 -I 传递。以传递方式传播到依赖项。
quote_includes sequence; 默认为 []
搜索由引号引用的头文件的路径,例如 #include "foo/bar/header.h"。它们可以是相对于执行根目录的相对路径,也可以是绝对路径。通常通过 -iquote 传递。以传递方式传播到依赖项。
system_includes sequence; 默认值为 []
搜索由尖括号引用的头文件的路径,例如 #include <foo/bar/header.h>。这些路径可以是相对于执行根目录的相对路径,也可以是绝对路径。通常通过 -isystem 传递。以传递方式传播到依赖项。
framework_includes sequence;默认为 []
Apple 框架中头文件的搜索路径。它们可以是相对于执行根目录的相对路径,也可以是绝对路径。通常通过 -F 传递。以传递方式传播到依赖项。
defines sequence; 默认为 []
编译此目标所需的一组定义。每个定义都是一个字符串。以传递方式传播到依赖项。
local_defines sequence; 默认为 []
编译此目标所需的一组定义。每个定义都是一个字符串。不会传递给依赖项。
include_prefix 字符串; 默认值为 ''
要添加到此规则标头路径的前缀。设置后,此规则的 hdrs 属性中的标头可通过将此属性的值附加到其相对于代码库的路径来访问。系统会先移除 strip_include_prefix 属性中的前缀,然后再添加此前缀。
strip_include_prefix 字符串; 默认为 ''
要从此规则的标头路径中剥离的前缀。设置此属性后,此规则的 hdrs 属性中的标头可通过去掉此前缀的路径访问。如果是相对路径,则将其视为相对于软件包的路径。如果是绝对路径,则会被视为相对于代码库的路径。移除此前缀后,系统会添加 include_prefix 属性中的前缀。
user_compile_flags sequence; 默认值为 []
编译选项的其他列表。
conly_flags sequence; 默认为 []
适用于 C 编译的其他编译选项列表。
cxx_flags sequence; 默认为 []
适用于 C++ 编译的其他编译选项列表。
compilation_contexts sequence; 默认为 []
用于编译的依赖项中的头文件。
name string; 必需
此属性用于为此方法创建的操作的输出工件命名。另请参阅 `main_output` 参数。
disallow_pic_outputs bool; 默认值为 False
是否应创建 PIC 输出。
disallow_nopic_outputs bool; 默认为 False
是否应创建 NOPIC 输出。
additional_inputs sequence; 默认为 []
编译 srcs 所需的其他文件的列表
module_interfaces sequence; 默认值为 unbound
要编译的模块接口源文件的列表。注意:这项功能处于实验阶段,仅通过 --experimental_cpp_modules 启用

configure_features

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

创建 feature_configuration 实例。需要 cpp 配置 fragment。

参数

参数 说明
ctx ctx;或 None; 默认值为 None
规则上下文。
cc_toolchain Info; required
我们配置功能的 cc_toolchain。
language 字符串;或 None; 默认为 None
要配置的语言:c++ 或 objc(默认为 c++)
requested_features sequence; 默认为 []
要启用的功能列表。
unsupported_features sequence; 默认值为 []
当前规则不支持的功能列表。

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)

创建 CcToolchainConfigInfo 提供方

参数

参数 说明
ctx ctx; 必需
规则上下文。
features sequence;默认为 []
,包含一项功能的所有标志规范。

参数:

name:地图项的名称。您可以通过向工具链添加“feature”部分,并在 BUILD 文件中将相应字符串添加为 feature,在不更改 Bazel 的情况下引入功能。

enabled:如果为“True”,则表示启用此功能,除非规则类型明确将其标记为不受支持。

flag_sets:FlagSet 列表。如果已启用给定功能,系统会对指定的操作应用标志集。

env_sets:EnvSet 列表。如果已启用给定功能,系统会对指定了 env 集的操作应用这些 env 集。

requires:功能集列表,用于定义工具链何时支持此功能。如果任何功能集都完全应用(即启用功能集的所有功能),则该功能受支持。如果省略 requires,则无论启用了哪些其他功能,系统都支持该功能。例如,您可以使用此方法根据启用的构建模式(opt / fastbuild / dbg)过滤标记。

implies:在启用此功能时自动启用的功能或操作配置的字符串列表。如果无法启用任何隐含功能或操作配置,系统也不会(静默地)启用此功能。

provides:与此地图项冲突的名称列表。

如果存在以下情况,则无法启用相应功能:
- provides 包含我们要启用的其他功能或操作配置的名称。
- provides 包含与我们要启用的其他功能或操作配置中的“提供”相同的值。使用此方法可确保不兼容的功能不会同时意外启用,从而导致难以诊断的编译器错误。
action_configs sequence;默认为 []
操作配置对应于 Bazel 操作,允许根据已启用的功能选择工具。与功能一样,操作配置的激活也遵循相同的语义:功能可以像对待其他功能一样“要求”或“隐式要求”操作配置。

参数:

action_name:此配置适用的 Bazel 操作的名称,例如“c-compile”或“c-module-compile”。

enabled:如果为“True”,则表示此操作处于启用状态,除非某个规则类型明确将其标记为不受支持。

tools:应用于操作的工具将是第一个具有与功能配置匹配的功能集的工具。如果没有工具与所提供的功能配置匹配,系统会抛出错误。因此,最好提供具有空功能集的默认工具。

flag_sets:如果启用了指定的操作配置,系统会将标志集应用于相应的操作。

implies:启用此操作配置时自动启用的功能或操作配置的列表。如果无法启用任何隐含功能或操作配置,此操作配置也将(静默)停用。

artifact_name_patterns sequence;默认为 []
操作的给定类别输入工件或输出工件的工件名称。

参数:

category_name:此选择适用的工件类别。系统会将此字段与 Bazel 中定义的类别列表进行比较。示例类别包括“linked_output”或此选择的工件。该名称与扩展名一起用于根据目标名称创建工件名称。

extension:用于为此选择创建工件的扩展程序。它与前缀一起用于根据目标名称创建工件名称。

cxx_builtin_include_directories sequence; 默认值为 []

用于 C++ 编译的内置包含目录。这些应是编译器使用的确切路径,通常相对于执行根目录。

编译器使用的路径可以通过“gcc -E -xc++ - -v”确定。

我们目前也将 C++ 路径用于 C 编译,只要 C++ 和 C 头文件之间没有名称冲突,这种做法是安全的。

相对路径相对于配置文件目录解析。

如果编译器支持 --sysroot,则这些路径应使用 %sysroot% 而非包含路径,并指定 sysroot 属性,以便向 Blaze 提供进行正确替换所需的信息。

toolchain_identifier 字符串; 必填

交叉工具版本中工具链的唯一标识符。必须能够将其用作路径中的目录名称。

它必须与以下正则表达式匹配:[a-zA-Z_][\.\- \w]*

host_system_name 字符串;或 None; 默认值为 None
忽略。
target_system_name 字符串;或 None; 默认为 None
已废弃。GNU 系统名称。该字符串会公开给 CcToolchainInfo.target_gnu_system_name。
target_cpu 字符串;或 None; 默认为 None
已废弃:请改用基于 CPU 的约束条件。如果字符串为“k8”,则会从原始 FDO 配置数据的文件名中省略“target_cpu”。
target_libc 字符串;或 None; 默认为 None
已废弃:请改用基于操作系统的约束条件。libc 版本字符串(例如“glibc-2.2.2”)。如果字符串为“macosx”,则平台会被假定为 MacOS。否则,则为 Linux。该字符串会公开给 CcToolchainInfo.libc。
compiler 字符串; 必需
编译器字符串(例如“gcc”)。当前工具链的编译器会作为标志值公开给 `@bazel_tools//tools/cpp:compiler (compiler_flag)`。需要特定于编译器的标志的目标可以在 select() 语句中使用 https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD 中的 config_settings,或者在现有设置不够用时创建自定义 config_setting。
abi_version 字符串;或 None; 默认为 None
使用的 ABI,即 gcc 版本。例如:“gcc-3.4”。该字符串设置为 C++ 工具链变量 ABI。
abi_libc_version 字符串;或 None; 默认为 None
我们使用的 ABI 所使用的 glibc 版本。该字符串设置为 C++ 工具链变量 ABI_LIBC_VERSION。
tool_paths sequence;默认为 []
工具位置。

参数:

name:工具的名称。

path:工具的位置;可以是绝对路径(非密封型工具链的情况下),也可以是相对于 cc_toolchain 软件包的路径。

make_variables sequence; 默认为 []
可供规则访问的 make 变量。
builtin_sysroot 字符串;或 None; 默认为 None
内置 sysroot。如果不存在此属性,Bazel 不允许使用其他 sysroot(例如通过 --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)

创建 CompilationContext

参数

参数 说明
headers 默认值为 unbound
编译此目标所需的一组头文件
system_includes 默认值为 unbound
由尖括号引用的头文件的搜索路径集,即 #include <foo/bar/header.h>。这些路径可以是相对于执行根目录的相对路径,也可以是绝对路径。通常通过 -isystem 传递
includes 默认值为 unbound
同时通过尖括号和引号引用的头文件的搜索路径集。通常通过 -I 传递
quote_includes 默认值为 unbound
由引号引用的头文件的搜索路径集,例如 #include "foo/bar/header.h"。它们可以是相对于执行根目录的相对路径,也可以是绝对路径。通常通过 -iquote 传递
framework_includes 默认值为 unbound
头文件的框架搜索路径集(仅限 Apple 平台)
defines 默认值为 unbound
编译此目标所需的一组定义。每个定义都是一个字符串。以传递方式传播到依赖项。
local_defines 默认值为 unbound
编译此目标所需的一组定义。每个定义都是一个字符串。不会传递给依赖项。

create_compilation_outputs

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

创建编译输出对象。

参数

参数 说明
objects depset;或 None; 默认为 None
对象文件列表。
pic_objects depset;或 None; 默认为 None
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)

返回用于编译操作的变量。

参数

参数 说明
cc_toolchain Info; required
我们要为其创建 build 变量的 cc_toolchain。
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
source_file 默认为 None
编译的可选源文件。请优先在此处传递 source_file,而不是将其附加到从 cc_common.get_memory_inefficient_command_line 生成的命令行的末尾,因为这样,工具链作者就可以正确指定和放置编译器标志。
output_file 默认为 None
编译的可选输出文件。请优先在此处传递 output_file,而不是将其附加到从 cc_common.get_memory_inefficient_command_line 生成的命令行的末尾,因为这样,工具链作者就可以正确指定和放置编译器标志。
user_compile_flags 字符串序列;或 None; 默认为 None
其他编译标志 (copts) 的列表。
include_directories depset;或 None; 默认为 None
include 目录的 Depset。
quote_include_directories depset;或 None; 默认为 None
引号包含目录的 Depset。
system_include_directories depset;或 None; 默认为 None
系统包含目录的 Depset。
framework_include_directories depset;或 None; 默认为 None
框架包含目录的 Depset。
preprocessor_defines depset;或 None; 默认为 None
预处理器定义的 Depset。
thinlto_index 字符串;或 None; 默认为 None
LTO 索引文件路径。
thinlto_input_bitcode_file 字符串;或 None; 默认为 None
输入到 LTO 后端的位码文件。
thinlto_output_object_file 字符串;或 None; 默认为 None
由 LTO 后端输出的对象文件。
use_pic bool; 默认为 False
如果为 true,编译将生成位置无关代码。
add_legacy_cxx_options bool; 默认值为 False
未使用。
variables_extension 字典; 默认为 unbound
包含编译操作使用的其他变量的字典。

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

创建 LibraryToLink

参数

参数 说明
actions 必需
actions 对象。
feature_configuration 默认值为要查询的 None
feature_configuration
cc_toolchain 默认值为 None
要使用的 CcToolchainInfo 提供程序。
static_library 文件;或 None; 默认为要关联的静态库的 None
File
pic_static_library 文件;或 None; 默认为 None
要关联的 PIC 静态库的 File
dynamic_library 文件;或 None; 默认为 None
要关联的动态库的 File。始终用于运行时,如果未传递 interface_library,则用于关联。
interface_library 文件;或 None; 默认为 None
要关联的接口库的 File
pic_objects 文件序列;默认为 unbound
实验性功能,请勿使用
objects 文件序列;默认为 unbound
实验性功能,请勿使用
bool; 默认为 False
是否要链接 --whole_archive 块中的静态库/对象。
string; 默认值为 ''
替换 solib 目录中动态库链接的默认路径。空字符串表示使用默认值。
string; 默认为 ''
替换 solib 目录中接口库链接的默认路径。空字符串表示使用默认值。

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)

返回用于关联操作的链接变量。

参数

参数 说明
Info; required
我们要为其创建 build 变量的 cc_toolchain。
FeatureConfiguration; 必需
要查询的功能配置。
depset; 默认为 []
链接器在链接时会在其中查找库的目录的 Depset。
depset; 默认为 []
加载器在运行时查找库的目录的 Depset。
sequence; 默认值为 []
额外的链接标志 (linkopts) 列表。
默认为 None
可选输出文件路径。
默认为 None
可选参数文件路径。
bool; 默认为 True
使用链接器时为 true,使用归档器时为 false。调用方负责使其与所使用的操作名称保持同步(对于链接可执行文件或动态库,is_using_linker = True;对于归档静态库,is_using_linker = False)。
bool; 默认为 False
创建动态库时为 true,创建可执行文件或静态库时为 false。调用方负责使其与所使用的操作名称保持同步。修复 b/65151735 后,此字段将被移除。
bool; 默认为 True
如果设为 False,Bazel 将公开“strip_debug_symbols”变量,该变量通常用于使用链接器从输出文件中剥离调试符号。
bool; 默认为 False
如果设置为 true,系统会设置“is_cc_test”变量。
bool; 默认值为 True
未使用。

create_linker_input

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

创建 LinkerInput

参数

参数 说明
owner 标签; 必需
生成此输入中所用所有文件的目标的标签。
libraries None;或 depset; 默认值为 None
LibraryToLink 的列表。
None;或字符串depset;或字符串序列; 默认值为 None
以字符串形式传递的用户关联标志。接受 [String]、[[String]] 或 depset(String)。不建议使用后者,因为它仅出于兼容性目的而保留,并且 depset 会扁平化。如果您想通过未展开的 depset() 传播 user_link_flags,请将其封装在 LinkerInput 中,以便在结束之前不展开。
additional_inputs None;或 depset; 默认为 None
链接操作的其他输入,例如:链接脚本。

create_linking_context

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

创建 LinkingContext

参数

参数 说明
linker_inputs None;或 depset; 默认值为 None
LinkerInput 的 Depset。
None;或序列; 默认值为 None
已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_require_linker_input_cc_api 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。
LibraryToLink 的列表。
None;或序列; 默认值为 None
已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_require_linker_input_cc_api 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。
以字符串形式传递的用户关联标志列表。
additional_inputs None;或序列; 默认值为 None
已废弃。此参数已弃用,很快就会被移除。请勿依赖此功能。在 --incompatible_require_linker_input_cc_api 中,此功能处于停用状态。使用此标志可验证您的代码是否与即将移除的 API 兼容。
用于关联操作的其他输入,例如关联脚本。

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)

应用于创建可向下游传播信息的库规则,以便稍后由执行传递关联以创建可执行文件或动态库的顶级规则进行关联。返回 (CcLinkingContext, CcLinkingOutputs) 元组。

参数

参数 说明
actions actions; 必需
actions 对象。
name string; 必需
此属性用于为此方法创建的操作的输出工件命名。
feature_configuration FeatureConfiguration
要查询的 feature_configuration
cc_toolchain 信息;
必须提供CcToolchainInfo要使用的提供程序。
language 字符串; 默认为 'c++'
目前仅支持 C++。请勿使用此参数。
disallow_static_libraries bool; 默认为 False
是否应创建静态库。
disallow_dynamic_library bool; 默认值为 False
是否应创建动态库。
compilation_outputs CcCompilationOutputs; 必需
包含要关联的对象文件的编译输出。
linking_contexts sequence;默认为 []
依赖项中的库。这些库将链接到 link() 调用的输出工件(二进制文件或库)。
sequence; 默认为 []
关联选项的其他列表。
bool; 默认值为 False
是否应始终关联此库。
additional_inputs sequence;默认为 []
链接操作的其他输入,例如:链接脚本。
variables_extension 字典; 默认为 unbound
创建链接命令行时要传递给工具链配置的其他变量。

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

创建 LTO 编译上下文

参数

参数 说明
objects 字典; 默认为 {}
将完整对象映射到索引对象

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

请勿使用此字段,其唯一用途是帮助从 config_setting.values{'compiler') 迁移到 config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

返回要为给定操作设置的环境变量。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
action_name string; 必需
操作的名称。必须是 @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl) 中的名称之一
variables 变量; 必需
要用于模板展开的构建变量。

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

返回给定操作的执行要求。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
action_name string; 必需
操作的名称。必须是 @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)

使用给定变量进行展开,返回给定操作的扁平化命令行标志。会展开嵌套的集合,最好不要使用,或者至少不要在分析结束后保留。我们正在努力实现高效返回实参的内存函数。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
action_name string; 必需
操作的名称。必须是 @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl) 中的名称之一
variables 变量; 必需
要用于模板展开的 build 变量。

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

返回指定操作的工具路径。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
action_name string; 必需
操作的名称。必须是 @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)

如果功能配置中启用了指定功能,则返回 true。

参数

参数 说明
feature_configuration FeatureConfiguration; 必需
要查询的功能配置。
feature_name string; 必需
地图项的名称。

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

应用于 C++ 传递关联。

参数

参数 说明
actions actions; 必需
actions 对象。
name string; 必需
此属性用于为此方法创建的操作的输出工件命名。
feature_configuration FeatureConfiguration
要查询的 feature_configuration
cc_toolchain 信息;
必须提供CcToolchainInfo要使用的提供程序。
language 字符串; 默认为 'c++'
目前仅支持 C++。请勿使用此参数。
output_type 字符串; 默认值为 'executable'
可以是“可执行文件”或“动态库”。
bool; 默认为 True
如果为 true,则以静态方式链接依赖项,如果为 false,则以动态方式链接依赖项。
compilation_outputs CcCompilationOutputs;或 None; 默认为 None
包含要关联的对象文件的编译输出。
linking_contexts sequence; 默认为 []
将依赖项的链接上下文链接到此规则生成的链接上下文。
sequence; 默认为 []
链接器选项的其他列表。
stamp int; 默认为 0
如果 output_type 为“可执行文件”,则确定是否要在关联的可执行文件中添加 build 信息。如果为 1,则始终包含 build 信息。如果为 0(默认 build 信息始终被排除。如果为 -1,则使用默认行为,该行为可能会被 --[no]stamp 标志替换。为测试规则生成可执行输出时,应取消设置此值(或将其设置为 0)。
additional_inputs sequence;或 depset; 默认为 []
链接操作的其他输入,例如:链接脚本。
additional_outputs sequence; 默认为 []
链接操作的其他输出,例如:映射文件。
variables_extension 字典; 默认为 {}
在创建链接命令行时传递给工具链配置的其他变量。

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

将多个 CompilationContexts 合并为一个。

参数

参数 说明
compilation_contexts sequence; 默认值为 []
要合并的 CompilationContexts 的列表。每个情境的标头将由返回的提供程序中的直接字段导出。

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

合并编译输出。

参数

参数 说明
compilation_outputs sequence; 默认值为 []