成員
- action_is_enabled
- CcToolchainInfo
- 編譯
- configure_features
- create_cc_toolchain_config_info
- create_compilation_context
- create_compilation_outputs
- create_compile_variables
- create_library_to_link
- create_link_variables
- create_linker_input
- create_linking_context
- create_linking_context_from_compilation_outputs
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- 連結
- merge_compilation_contexts
- merge_compilation_outputs
action_is_enabled
bool cc_common.action_is_enabled(feature_configuration, action_name)
參數
| 參數 | 說明 | 
|---|---|
| feature_configuration | 必要 要查詢的功能設定。 | 
| action_name | 必要 動作設定的名稱。 | 
CcToolchainInfo
Provider cc_common.CcToolchainInfo
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=[])
CompilationContext, CcCompilationOutputs) 元組。
          
      參數
| 參數 | 說明 | 
|---|---|
| actions | 必要 actions物件。 | 
| feature_configuration | 必要 feature_configuration要查詢的項目。 | 
| cc_toolchain | 必須使用 CcToolchainInfo提供者。 | 
| srcs | 預設為 []要編譯的來源檔案清單。 | 
| public_hdrs | 預設值為 []編譯 src 時所需的標頭清單,可由依附規則遞移納入。 | 
| private_hdrs | 預設值為 []編譯 src 時需要使用的標頭清單,且不得由相依規則納入。 | 
| includes | sequence;或 depset;預設為 []。以角括號和引號參照的標頭檔搜尋路徑。通常會使用 -I 傳遞。遞移傳播至附屬元件。 | 
| quote_includes | 預設為 []以引號參照的標頭檔搜尋路徑,例如 #include "foo/bar/header.h"。可以是相對於執行根目錄的相對路徑,也可以是絕對路徑。通常會使用 -iquote 傳遞。遞移傳播至附屬元件。 | 
| system_includes | 預設為 []以角括號參照的標頭檔搜尋路徑,例如 #include <foo/bar/header.h>。這些路徑可以是相對於執行根目錄的路徑,也可以是絕對路徑。通常會使用 -isystem 傳遞。遞移傳播至附屬元件。 | 
| framework_includes | 預設為 []Apple 架構中標頭檔案的搜尋路徑。可以是相對於執行根目錄的相對路徑,也可以是絕對路徑。通常會使用 -F 傳遞。遞移傳播至附屬元件。 | 
| defines | 預設值為 []編譯這個目標所需的一組定義。每個定義都是字串。遞移傳播至附屬元件。 | 
| local_defines | 預設值為 []編譯這個目標所需的一組定義。每個定義都是字串。不會遞移傳播至依附元件。 | 
| include_prefix | 預設值為 ''要新增至這項規則標頭路徑的前置字串。設定後,系統會將這個屬性的值加到存放區相對路徑的前面,即可存取這項規則 hdrs 屬性中的標頭。系統會先移除 strip_include_prefix 屬性的前置字串,再新增這個前置字串。 | 
| strip_include_prefix | 預設為 ''要從這項規則的標頭路徑中移除的前置字串。設定後,即可在路徑中存取此規則 hdrs 屬性的標頭,但須先移除前置字元。如果是相對路徑,系統會將其視為與套件相關的路徑。如果是絕對路徑,則會解讀為存放區相對路徑。這個前置字元移除後,include_prefix 屬性中的前置字元就會加入。 | 
| user_compile_flags | 預設值為 []其他編譯選項清單。 | 
| conly_flags | 預設值為 []C 編譯的其他編譯選項清單。 | 
| cxx_flags | 預設值為 []C++ 編譯的其他編譯選項清單。 | 
| compilation_contexts | 預設為 []用於編譯的依附元件標頭。 | 
| name | 必要 這個方法會用來命名動作的輸出構件。另請參閱 `main_output` 引數。 | 
| disallow_pic_outputs | 預設值為 False是否應建立 PIC 輸出內容。 | 
| disallow_nopic_outputs | 預設值為 False是否應建立 NOPIC 輸出內容。 | 
| additional_inputs | 預設值為 []編譯 srcs 時所需的其他檔案清單 | 
configure_features
FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])
參數
| 參數 | 說明 | 
|---|---|
| ctx | ctx;或 None;
                                     預設值為None規則環境。 | 
| cc_toolchain | 必要 cc_toolchain,我們會為其設定功能。 | 
| language | string 或 None;預設值為None要設定的語言:c++ 或 objc (預設為 c++) | 
| requested_features | 預設值為 []要啟用的功能清單。 | 
| unsupported_features | 預設值為 []目前規則不支援的功能清單。 | 
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)
CcToolchainConfigInfo 提供者
          
      參數
| 參數 | 說明 | 
|---|---|
| ctx | 必要 規則情境。 | 
| features | 預設值為 []包含單一功能的全部旗標規格。 引數: 
 
 
 
 
 
 
 - provides包含我們要啟用的不同功能或動作設定名稱。- provides包含與我們要啟用的不同功能或動作設定中「提供」相同的值。使用這項功能可確保不相容的功能不會同時啟用,進而導致難以診斷的編譯器錯誤。 | 
| action_configs | 預設值為 []動作設定對應於 Bazel 動作,可根據啟用的功能選取工具。動作設定的啟用方式與功能相同:功能可以「要求」或「暗示」動作設定,就像其他功能一樣。 引數: 
 
 
 
 
 | 
| artifact_name_patterns | 預設值為 []指定類別的輸入或輸出構件的名稱,適用於動作。 引數: 
 
 | 
| cxx_builtin_include_directories | 預設值為 []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 | string 或 None;預設值為None已忽略。 | 
| target_system_name | required GNU 系統名稱。 | 
| target_cpu | 必要 目標架構字串。 | 
| target_libc | 必要 libc 版本字串 (例如「glibc-2.2.2」)。 | 
| compiler | 必要 編譯器版本字串 (例如「gcc-4.1.1」)。 | 
| abi_version | string 或 None;預設值為None使用的 ABI,也就是 GCC 版本。例如:"gcc-3.4" | 
| abi_libc_version | string 或 None;
                                     預設值為None我們使用的 ABI 所用 glibc 版本。 | 
| tool_paths | 預設值為 []工具位置。 引數: 
 
 | 
| make_variables | 預設為 []可供規則存取的 make 變數。 | 
| builtin_sysroot | string 或 None;預設值為None內建的 sysroot。如果沒有這項屬性,Bazel 就不允許使用其他 sysroot,也就是透過 --grte_top 選項。 | 
| cc_target_os | string 或 None;預設值為None僅供內部使用,請勿使用。 | 
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;
預設值為Nonepic 物件檔案清單。 | 
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 | 必要 要查詢的功能設定。 | 
| 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。系統 include 目錄的 Depset。 | 
| framework_include_directories | depset;或 None;預設為None架構 include 目錄的 Depset。 | 
| preprocessor_defines | depset;或 None;
                                     預設值為None前置處理器定義的 Depset。 | 
| thinlto_index | string;或 None;預設為NoneLTO 索引檔案路徑。 | 
| thinlto_input_bitcode_file | string;或 None;預設為None輸入 LTO 後端的位元碼檔案。 | 
| thinlto_output_object_file | string;或 None;預設為None由 LTO 後端輸出的物件檔案。 | 
| use_pic | 預設為 False如果為 true,編譯作業會產生與位置無關的程式碼。 | 
| add_legacy_cxx_options | 預設值為 False未使用。 | 
| variables_extension | dict;預設為 unbound編譯動作使用的其他變數字典。 | 
create_library_to_link
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 | 預設值為 Nonefeature_configuration,可供查詢。 | 
| cc_toolchain | 預設值為 None要使用的 CcToolchainInfo提供者。 | 
| static_library | File;或 None;預設為None要連結的靜態程式庫。 File | 
| pic_static_library | File;或 None;預設為None要連結的 pic 靜態程式庫。 File | 
| dynamic_library | File;或 None;預設為None。要連結的動態程式庫 File。一律用於執行階段,且在未傳遞interface_library時用於連結。 | 
| interface_library | File;或 None;
                                     預設為None要連結的介面程式庫 File。 | 
| pic_objects | sequence of Files;
                                     預設為 unbound實驗功能,請勿使用 | 
| objects | sequence of Files;
                                     預設為 unbound實驗功能,請勿使用 | 
| alwayslink | 預設為 False是否連結 --whole_archive 區塊中的靜態程式庫/物件。 | 
| dynamic_library_symlink_path | string;預設為 ''覆寫 solib 目錄中動態程式庫連結的預設路徑。如要使用預設值,請輸入空字串。 | 
| interface_library_symlink_path | 預設為 ''覆寫 solib 目錄中介面程式庫連結的預設路徑。如要使用預設值,請輸入空字串。 | 
create_link_variables
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)
參數
| 參數 | 說明 | 
|---|---|
| cc_toolchain | 必要 我們要為其建立建構變數的 cc_toolchain。 | 
| feature_configuration | 必要 要查詢的功能設定。 | 
| library_search_directories | None;或 depset;預設為None目錄的 Depset,連結器會在連結時於其中尋找程式庫。 | 
| runtime_library_search_directories | None;或 depset;預設為None。載入器會在執行階段於這個目錄的 Depset 中尋找程式庫。 | 
| user_link_flags | None;或 sequence;預設為None。其他連結標記 (linkopts) 清單。 | 
| output_file | 預設為 None選用輸出檔案路徑。 | 
| param_file | 預設值為 None選用參數檔案路徑。 | 
| def_file | 預設值為 None選用 .def 檔案路徑。 | 
| is_using_linker | 預設值為 True使用連結器時為 True,使用封存器時為 False。呼叫端有責任確保這項設定與使用的動作名稱保持同步 (如要連結可執行檔或動態程式庫,請將 is_using_linker 設為 True;如要封存靜態程式庫,請將 is_using_linker 設為 False)。 | 
| is_linking_dynamic_library | 預設值為 False建立動態程式庫時為 True,建立可執行檔或靜態程式庫時為 False。呼叫端負責確保這項設定與使用的動作名稱保持同步。Skylark 問題修正後,系統就會移除這個欄位。 | 
| must_keep_debug | 預設值為 True設為 False 時,bazel 會公開「strip_debug_symbols」變數,通常用於使用連結器從輸出檔案中移除偵錯符號。 | 
| use_test_only_flags | 預設值為 False設為 true 時,系統會設定「is_cc_test」變數。 | 
| is_static_linking_mode | 預設值為 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;
                                     預設為NoneLibraryToLink清單。 | 
| user_link_flags | None;或 depset 的 string;或 sequence 的 string;
                                     預設為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=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)
LinkingContext。
          
      參數
| 參數 | 說明 | 
|---|---|
| linker_inputs | None;或 depset;
                                     預設為NoneLinkerInput的 Depset。 | 
| libraries_to_link | None或序列;預設值為None已淘汰。這項參數已淘汰,並將在近期內移除。因此請勿依賴這項功能。使用 --+incompatible_require_linker_input_cc_api停用。請使用這個標記,確認程式碼與即將移除的項目相容。LibraryToLink清單。 | 
| user_link_flags | None或序列;預設值為None已淘汰。這項參數已淘汰,並將在近期內移除。因此請勿依賴這項功能。使用 --+incompatible_require_linker_input_cc_api停用。請使用這個標記,確認程式碼與即將移除的項目相容。以字串形式傳遞的使用者連結旗標清單。 | 
| additional_inputs | None或序列;預設值為None已淘汰。這項參數已淘汰,並將在近期內移除。因此請勿依賴這項功能。使用 --+incompatible_require_linker_input_cc_api停用。請使用這個標記,確認程式碼與即將移除的項目相容。連結動作的其他輸入內容,例如連結指令碼。 | 
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)
CcLinkingContext, CcLinkingOutputs) 元組。
          
      參數
| 參數 | 說明 | 
|---|---|
| actions | 必要 actions物件。 | 
| feature_configuration | 必要 feature_configuration要查詢的項目。 | 
| cc_toolchain | 必須使用 CcToolchainInfo提供者。 | 
| compilation_outputs | 必要 包含要連結的物件檔案的編譯輸出內容。 | 
| user_link_flags | 預設值為 []其他連結選項清單。 | 
| linking_contexts | 預設為 []依附元件中的程式庫。這些程式庫會連結至 link() 呼叫的輸出構件,無論是二進位檔或程式庫都一樣。 | 
| name | 必要 這個名稱用於命名這個方法建立的動作輸出構件。 | 
| language | 預設為 'c++'目前僅支援 C++。請勿使用這個參數。 | 
| alwayslink | 預設值為 False這個程式庫是否應一律連結。 | 
| additional_inputs | 預設值為 []連結動作的其他輸入內容,例如連結指令碼。 | 
| disallow_static_libraries | 預設值為 False是否應建立靜態程式庫。 | 
| disallow_dynamic_library | 預設值為 False是否應建立動態程式庫。 | 
do_not_use_tools_cpp_compiler_present
None cc_common.do_not_use_tools_cpp_compiler_presentget_environment_variables
dict cc_common.get_environment_variables(feature_configuration, action_name, variables)
參數
| 參數 | 說明 | 
|---|---|
| feature_configuration | 必要 要查詢的功能設定。 | 
| 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)
參數
| 參數 | 說明 | 
|---|---|
| feature_configuration | 必要 要查詢的功能設定。 | 
| 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)
參數
| 參數 | 說明 | 
|---|---|
| feature_configuration | 必要 要查詢的功能設定。 | 
| 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 | 必要 要查詢的功能設定。 | 
| 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)
參數
| 參數 | 說明 | 
|---|---|
| feature_configuration | 必要 要查詢的功能設定。 | 
| feature_name | 必要 功能名稱。 | 
連結
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)
參數
| 參數 | 說明 | 
|---|---|
| actions | 必要 actions物件。 | 
| feature_configuration | 必要 feature_configuration要查詢的項目。 | 
| cc_toolchain | 必須使用 CcToolchainInfo提供者。 | 
| compilation_outputs | CcCompilationOutputs;或 None;預設為None包含要連結物件檔案的編譯輸出內容。 | 
| user_link_flags | 預設值為 []連結器選項的其他清單。 | 
| linking_contexts | 預設為 []從依附元件連結環境,以便連結至這項規則產生的連結環境。 | 
| name | 必要 這個名稱用於命名這個方法建立的動作輸出構件。 | 
| language | 預設為 'c++'目前僅支援 C++。請勿使用這個參數。 | 
| output_type | 預設值為 'executable'可以是「executable」或「dynamic_library」。 | 
| link_deps_statically | 預設值為 True。如要靜態連結依附元件,請設為 True;如要動態連結,請設為 False。 | 
| stamp | 預設值為 0如果 output_type 為「executable」,是否要在連結的可執行檔中加入建構資訊。如果為 1,一律會納入建構資訊。如果設為 0,系統一律會排除預設的建構資訊。如果是 -1,則會使用預設行為,但可能會遭到 --[no]stamp 旗標覆寫。為測試規則產生可執行輸出內容時,應取消設定 (或設為 0)。 | 
| additional_inputs | sequence 或 depset;
                                     預設為 []如要為連結動作提供其他輸入內容,例如連結指令碼。 | 
| additional_outputs | sequence;預設為 unbound連結動作的其他輸出內容,例如:對應檔案。 | 
merge_compilation_contexts
CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])
CompilationContexts 合併為一個。
          
      參數
| 參數 | 說明 | 
|---|---|
| compilation_contexts | 預設值為 []要合併的 CompilationContexts清單。系統會匯出傳回供應商中直接欄位的每個內容標頭。 | 
merge_compilation_outputs
CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])
參數
| 參數 | 說明 | 
|---|---|
| compilation_outputs | 預設值為 [] |