副本

回報問題 查看來源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

C++ 編譯、連結和指令列產生公用程式。

成員

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

如果功能設定中已啟用指定 action_config,則傳回 True。

參數

參數 說明
feature_configuration FeatureConfiguration; required
要查詢的功能設定。
action_name string; required
Name of the 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; required
actions object.
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
srcs sequence; 預設值為 []
要編譯的來源檔案清單。
public_hdrs sequence; 預設為 []
編譯 src 時所需的標頭清單,可由依附規則遞移納入。
private_hdrs sequence; 預設為 []
編譯 srcs 時需要使用的標頭清單,且不得由依附規則納入。
includes sequencedepset; 預設為 []
以角括號和引號參照的標頭檔搜尋路徑。通常會使用 -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 序列; 預設為 []
編譯這個目標所需的一組定義。每個定義都是字串。遞移傳播至附屬元件。
local_defines 序列; 預設為 []
編譯這個目標所需的一組定義。每個定義都是字串。不會遞移至依附元件。
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 字串; 必要
這個名稱用於命名這個方法建立的動作輸出構件。另請參閱 `main_output` 引數。
disallow_pic_outputs bool; 預設值為 False
是否應建立 PIC 輸出內容。
disallow_nopic_outputs bool; 預設值為 False
是否應建立 NOPIC 輸出內容。
additional_inputs sequence; default is []
List of additional files needed for compilation of 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 設定片段。

參數

參數 說明
ctx ctx;或 None; 預設為 None
規則環境。
cc_toolchain 資訊; 必要
我們設定功能的 cc_toolchain。
language string; 或 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; required
規則內容。
features 序列; 預設為 []
包含一項功能的所有旗標規格。

引數:

name:功能名稱。您可以在工具鍊中新增「feature」區段,並在 BUILD 檔案中新增對應的字串做為功能,藉此導入功能,而不必變更 Bazel。

enabled:如果為「True」,這項功能會啟用,除非規則類型明確標示為不支援。

flag_sets:FlagSet 清單。如果啟用指定功能,系統就會為指定動作套用旗標集。

env_sets:EnvSet 清單。如果啟用指定功能,系統會為指定動作套用環境集。

requires:功能集清單,定義工具鍊何時支援這項功能。只要有任何一組功能完全適用,也就是啟用一組功能的所有功能,系統就會支援這項功能。如果省略 requires,無論啟用哪些其他功能,系統都會支援這項功能。舉例來說,您可以根據啟用的建構模式 (opt / fastbuild / dbg) 篩選標記。

implies:啟用這項功能時,系統會自動啟用功能或動作設定的字串清單。如果無法啟用任何隱含功能或動作設定,這項功能也會 (無聲) 停用。

provides:這項功能會與這些名稱衝突。

如果發生下列情況,就無法啟用功能:
- provides 包含我們要啟用的不同功能或動作設定名稱。
- provides 包含與我們要啟用的不同功能或動作設定中「提供」相同的值。使用這項功能可確保不相容的功能不會同時意外啟用,進而導致難以診斷的編譯器錯誤。
action_configs sequence; default is []
An action config corresponds to a Bazel action, and allows selection of a tool based on activated features. 動作設定的啟用方式與功能相同:功能可以「要求」或「隱含」動作設定,就像其他功能一樣。

引數:

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++ 編譯的內建 include 目錄。這些應該是編譯器使用的確切路徑,通常與執行根目錄相關。

編譯器使用的路徑可由「gcc -E -xc++ - -v」判斷。

我們目前也將 C++ 路徑用於 C 編譯,只要 C++ 和 C 標頭檔之間沒有名稱衝突,這就是安全的做法。

系統會根據設定檔目錄解析相對路徑。

如果編譯器支援 --sysroot,這些路徑應使用 %sysroot%,而非 include 路徑,並指定 sysroot 屬性,為 blaze 提供必要資訊,以進行正確的替換。

toolchain_identifier 字串; 必要

Crosstool 版本中工具鍊的專屬 ID。必須能做為路徑中的目錄名稱。

必須符合下列規則運算式:[a-zA-Z_][\.\- \w]*

host_system_name 字串;或 None; 預設值為 None
系統會忽略此值。
target_system_name 字串;或 None; 預設值為 None
已淘汰。GNU 系統名稱。這個字串會公開給 CcToolchainInfo.target_gnu_system_name。
target_cpu string;或 None; 預設為 None
已淘汰:請改用以 CPU 為準的限制。如果字串為「k8」,原始 FDO 設定檔資料的檔案名稱會省略 `target_cpu`。
target_libc 字串;或 None; 預設值為 None
已淘汰:請改用以 OS 為準的限制。libc 版本字串 (例如「glibc-2.2.2」)。如果字串為「macosx」,平台會假設為 MacOS。否則為 Linux。字串會公開給 CcToolchainInfo.libc。
compiler string; required
編譯器字串 (例如「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 序列; 預設為 []
工具位置。

引數:

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 資訊; 必要
我們要為其建立建構變數的 cc_toolchain。
feature_configuration FeatureConfiguration; required
要查詢的功能設定。
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
包含目錄的 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 string;或 None; 預設為 None
輸入至 LTO 後端的位元碼檔案。
thinlto_output_object_file 字串;或 None; 預設為 None
LTO 後端輸出的物件檔案。
use_pic bool; 預設值為 False
如果為 true,編譯作業會產生與位置無關的程式碼。
add_legacy_cxx_options bool; 預設為 False
未使用。
variables_extension dict; 預設值為 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 File「序列; 預設為 unbound
實驗性質,請勿使用
objects File「序列; 預設為 unbound
實驗性質,請勿使用
bool; default is False
Whether to link the static library/objects in the --whole_archive block.
string; default is ''
Override the default path of the dynamic library link in the solib directory. 如要使用預設值,請輸入空字串。
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)

傳回用於連結動作的連結變數。

參數

參數 說明
資訊; 必要
我們要為其建立建構變數的 cc_toolchain。
FeatureConfiguration; required
要查詢的功能設定。
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; default is True
When set to False, bazel will expose 'strip_debug_symbols' variable, which is usually used to use the linker to strip debug symbols from the output file.
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;或 depsetstring;或 sequencestring; 預設為 None
以字串形式傳遞的使用者連結旗標。接受 [String]、[[String]] 或 depset(String)。不建議使用後者,因為這只會為了相容性而保留,且 depset 會扁平化。如要透過未扁平化的 depsets() 傳播 user_link_flags,請將其包裝在 LinkerInput 中,這樣系統就不會扁平化這些旗標,直到最後為止。
additional_inputs None; 或 depset; 預設為 None
如要為連結動作提供其他輸入內容,例如連結指令碼。

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs)

建立 LinkingContext

參數

參數 說明
linker_inputs depset; required
Depset of 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)

應使用此規則建立程式庫規則,以便在下游傳播資訊,稍後由頂層規則連結,進行遞移連結,建立可執行檔或動態程式庫。傳回 (CcLinkingContext, CcLinkingOutputs) 元組。

參數

參數 說明
actions actions; required
actions object.
name 字串; 必要
這個名稱用於命名這個方法建立的動作輸出構件。
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
language string; 預設值為 'c++'
目前僅支援 C++。請勿使用這個參數。
disallow_static_libraries bool; 預設值為 False
是否應建立靜態程式庫。
disallow_dynamic_library bool; default is False
Whether a dynamic library should be created.
compilation_outputs CcCompilationOutputs; required
Compilation outputs containing object files to link.
linking_contexts sequence; 預設為 []
依附元件中的程式庫。這些程式庫會連結至 link() 呼叫的輸出構件,無論是二進位檔或程式庫都適用。
sequence; 預設為 []
其他連結選項清單。
bool; 預設值為 False
這個程式庫是否應一律連結。
additional_inputs sequence; 預設值為 []
如要為連結動作提供其他輸入內容,例如連結指令碼。
variables_extension dict; default is unbound
Additional variables to pass to the toolchain configuration when creating link command line.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

建立 LTO 編譯環境

參數

參數 說明
objects dict; 預設為 {}
完整物件對應至索引物件的地圖

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; required
要查詢的功能設定。
action_name 字串; 必要
動作名稱。必須是 @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)

Returns execution requirements for given action.

參數

參數 說明
feature_configuration FeatureConfiguration; required
要查詢的功能設定。
action_name 字串; 必要
動作名稱。必須是 @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)

傳回指定動作的扁平化指令列旗標,並使用指定變數進行擴展。將巢狀集合扁平化,理想情況下不應使用,或至少不應超過分析期限。我們正在開發可傳回 Args 的記憶體效率函式。

參數

參數 說明
feature_configuration FeatureConfiguration; required
要查詢的功能設定。
action_name 字串; 必要
動作名稱。必須是 @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_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

傳回指定動作的工具路徑。

參數

參數 說明
feature_configuration FeatureConfiguration; required
要查詢的功能設定。
action_name 字串; 必要
動作名稱。必須是 @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; required
要查詢的功能設定。
feature_name 字串; 必要
功能名稱。

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; required
actions object.
name 字串; 必要
這個名稱用於命名這個方法建立的動作輸出構件。
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain Info; required
CcToolchainInfo provider to be used.
language string; 預設值為 'c++'
目前僅支援 C++。請勿使用這個參數。
output_type string; 預設值為 'executable'
可以是「executable」或「dynamic_library」。
bool; default is True
True to link dependencies statically, False dynamically.
compilation_outputs CcCompilationOutputs;或 None; 預設為 None
包含要連結之物件檔案的編譯輸出內容。
linking_contexts sequence; default is []
Linking contexts from dependencies to be linked into the linking context generated by this rule.
sequence; 預設值為 []
連結器選項的其他清單。
stamp int; default is 0
Whether to include build information in the linked executable, if output_type is 'executable'. 如果為 1,一律會納入建構資訊。如果設為 0,系統一律會排除預設的建構作業資訊。如果是 -1,則會使用預設行為,但可能會遭到 --[no]stamp 旗標覆寫。為測試規則產生可執行輸出內容時,應取消設定 (或設為 0)。
additional_inputs sequencedepset; 預設為 []
如要為連結動作提供其他輸入內容,例如連結指令碼。
additional_outputs 序列; 預設為 []
如要連結動作的其他輸出內容,例如地圖檔案。
variables_extension dict; default is {}
Additional variables to pass to the toolchain configuration when create link command line.

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; default is []