Tiện ích để biên dịch, liên kết và tạo dòng lệnh C++.
Hội viên
- action_is_enabled
- CcToolchainInfo
- biên dịch
- 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
- create_lto_compilation_context
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- link
- merge_compilation_contexts
- merge_compilation_outputs
action_is_enabled
bool cc_common.action_is_enabled(feature_configuration, action_name)Trả về True nếu action_config cho trước được bật trong cấu hình tính năng.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
action_name
|
string;
bắt buộc Tên của action_config. |
CcToolchainInfo
Provider cc_common.CcToolchainInfoKhoá dùng để truy xuất nhà cung cấp có chứa thông tin về chuỗi công cụ C++ đang được sử dụng
biên dịch
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=[], module_interfaces=unbound)Nên được sử dụng để biên dịch C++. Trả về bộ dữ liệu của (
CompilationContext
, CcCompilationOutputs
).
Tham số
Thông số | Mô tả |
---|---|
actions
|
action (hành động);
bắt buộc Đối tượng actions .
|
feature_configuration
|
FeatureConfiguration;
bắt buộcfeature_configuration cần truy vấn.
|
cc_toolchain
|
Thông tin;
bắt buộcCcToolchainInfo sẽ được sử dụng.
|
srcs
|
trình tự;
giá trị mặc định là [] Danh sách các tệp nguồn sẽ được biên dịch. |
public_hdrs
|
trình tự;
giá trị mặc định là [] Danh sách các tiêu đề cần thiết để biên dịch src và có thể được đưa vào theo các quy tắc phụ thuộc bắc cầu. |
private_hdrs
|
trình tự;
giá trị mặc định là [] Danh sách các tiêu đề cần thiết để biên dịch src và KHÔNG được đưa vào các quy tắc phụ thuộc. |
includes
|
trình tự; hoặc phần phụ thuộc;
mặc định là [] Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bằng cả dấu ngoặc góc và dấu ngoặc kép. Thường được truyền bằng -I. Được truyền cho các phần phụ thuộc theo cách bắc cầu. |
quote_includes
|
trình tự;
giá trị mặc định là [] Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu trong dấu ngoặc kép, ví dụ: #include "foo/bar/header.h". Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường có dấu -dấu ngoặc kép. Được truyền cho các phần phụ thuộc theo cách bắc cầu. |
system_includes
|
trình tự;
giá trị mặc định là [] Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bằng dấu ngoặc nhọn, ví dụ: #include <foo/bar/header.h>. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -isystem. Được truyền cho các phần phụ thuộc theo cách bắc cầu. |
framework_includes
|
trình tự;
giá trị mặc định là [] Đường dẫn tìm kiếm tệp tiêu đề từ khung Apple. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -F. Được truyền cho các phần phụ thuộc theo cách bắc cầu. |
defines
|
trình tự;
giá trị mặc định là [] Tập hợp các định nghĩa cần thiết để biên dịch mục tiêu này. Mỗi định nghĩa là một chuỗi. Được truyền cho các phần phụ thuộc theo cách bắc cầu. |
local_defines
|
trình tự;
giá trị mặc định là [] Tập hợp các định nghĩa cần thiết để biên dịch mục tiêu này. Mỗi định nghĩa là một chuỗi. Không được truyền cho các phần phụ thuộc theo cách bắc cầu. |
include_prefix
|
string;
giá trị mặc định là '' Tiền tố để thêm vào đường dẫn của các tiêu đề của quy tắc này. Khi đặt, tiêu đề trong thuộc tính hdrs của quy tắc này có thể truy cập được tại giá trị của thuộc tính này được thêm vào trước đường dẫn tương đối của kho lưu trữ. Tiền tố trong thuộc tính string_include_prefix sẽ bị xoá trước khi thêm tiền tố này. |
strip_include_prefix
|
string;
giá trị mặc định là '' Tiền tố để tách khỏi đường dẫn của các tiêu đề của quy tắc này. Khi đặt giá trị này, bạn có thể truy cập vào các tiêu đề trong thuộc tính hdrs của quy tắc này tại đường dẫn của chúng và tiền tố này bị cắt bỏ. Nếu đó là đường dẫn tương đối, thì đường dẫn đó được coi là đường dẫn tương đối theo gói. Nếu giá trị là một giá trị tuyệt đối, thì giá trị này được hiểu là một đường dẫn tương đối của kho lưu trữ. Tiền tố trong thuộc tính include_prefix sẽ được thêm sau khi bạn loại bỏ tiền tố này. |
user_compile_flags
|
trình tự;
giá trị mặc định là [] Danh sách bổ sung các tuỳ chọn biên dịch. |
compilation_contexts
|
trình tự;
giá trị mặc định là [] Tiêu đề của các phần phụ thuộc dùng để biên dịch. |
name
|
string;
bắt buộc Thông tin này dùng để đặt tên cho cấu phần phần mềm đầu ra của các thao tác do phương thức này tạo ra. Hãy xem thêm tham số "main_output". |
disallow_pic_outputs
|
bool;
giá trị mặc định là False Liệu có cần tạo đầu ra PIC hay không. |
disallow_nopic_outputs
|
bool;
giá trị mặc định là False Liệu có nên tạo đầu ra NOPIC hay không. |
additional_inputs
|
trình tự;
giá trị mặc định là [] Danh sách các tệp bổ sung cần thiết để biên dịch src |
module_interfaces
|
trình tự;
giá trị mặc định là unbound Danh sách các tệp nguồn của giao diện mô-đun sẽ được biên dịch. Lưu ý: đây là tính năng thử nghiệm, chỉ được bật bằng --experimental_cpp_modules |
configure_features
FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])Tạo một bản sao Feature_configuration. Yêu cầu mảnh cấu hình cpp.
Tham số
Thông số | Mô tả |
---|---|
ctx
|
ctx; hoặc None ;
giá trị mặc định là None Ngữ cảnh quy tắc. |
cc_toolchain
|
Thông tin;
bắt buộc cc_toolchain mà chúng tôi định cấu hình các tính năng. |
language
|
string; hoặc None ;
giá trị mặc định là None Ngôn ngữ cần định cấu hình: c++ hoặc objc (c++ mặc định) |
requested_features
|
trình tự;
giá trị mặc định là [] Danh sách các tính năng sẽ được bật. |
unsupported_features
|
trình tự;
giá trị mặc định là [] Danh sách các tính năng không được quy tắc hiện tại hỗ trợ. |
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)Tạo một trình cung cấp
CcToolchainConfigInfo
Tham số
Thông số | Mô tả |
---|---|
ctx
|
ctx;
bắt buộc Ngữ cảnh quy tắc. |
features
|
trình tự;
giá trị mặc định là [] Chứa tất cả thông số kỹ thuật về việc gắn cờ cho một tính năng. Đối số:
– provides chứa tên của một tính năng hoặc cấu hình hành động khác mà chúng ta muốn bật.– provides chứa cùng giá trị với thuộc tính "offers" trong một cấu hình hành động hoặc tính năng khác mà chúng ta muốn bật. Hãy dùng phương thức này để đảm bảo đồng thời không thể vô tình kích hoạt các tính năng không tương thích, dẫn đến các lỗi khó chẩn đoán về trình biên dịch.
|
action_configs
|
trình tự;
giá trị mặc định là [] Một cấu hình thao tác tương ứng với một thao tác Bazel và cho phép lựa chọn công cụ dựa trên các tính năng đã kích hoạt. Việc kích hoạt cấu hình hành động diễn ra theo cùng ngữ nghĩa như các tính năng: một tính năng có thể "yêu cầu" hoặc 'chỉ' một cấu hình hành động theo cách tương tự như với một tính năng khác. Đối số:
|
artifact_name_patterns
|
trình tự;
giá trị mặc định là [] Tên của một cấu phần phần mềm thuộc một danh mục cấu phần phần mềm đầu vào hoặc đầu ra nhất định cho một thao tác. Đối số:
|
cxx_builtin_include_directories
|
trình tự;
giá trị mặc định là [] Tích hợp sẵn các thư mục để biên dịch C++. Đây phải là các đường dẫn chính xác mà trình biên dịch sử dụng và thường tương ứng với gốc của thực thi. Đường dẫn mà trình biên dịch sử dụng có thể được xác định bằng "gcc -E -xc++ - -v". Chúng tôi hiện cũng sử dụng đường dẫn C++ để biên dịch C. Điều này an toàn miễn là không có trường hợp xung đột tên giữa các tệp tiêu đề C++ và C. Đường dẫn tương đối được phân giải tương ứng với thư mục tệp cấu hình. Nếu trình biên dịch có hỗ trợ --sysroot thì các đường dẫn này sẽ sử dụng %sysroot% thay vì đường dẫn include và chỉ định thuộc tính sysroot để cung cấp thông tin cần thiết nhằm thực hiện thay thế chính xác. |
toolchain_identifier
|
string;
bắt buộc Giá trị nhận dạng duy nhất của chuỗi công cụ trong bản phát hành crosstool. Bạn phải có thể sử dụng tên này làm tên thư mục trong đường dẫn. Mã này phải khớp với biểu thức chính quy sau: [a-zA-Z_][\.\- \w]* |
host_system_name
|
string; hoặc None ;
giá trị mặc định là None Đã bỏ qua. |
target_system_name
|
string; hoặc None ;
giá trị mặc định là None Không được dùng nữa. Tên Hệ thống GNU. Chuỗi này hiển thị với CcToolchainInfo.target_gnu_system_name. |
target_cpu
|
string; hoặc None ;
giá trị mặc định là None Không dùng nữa: Thay vào đó, hãy sử dụng các điều kiện ràng buộc dựa trên CPU. Nếu chuỗi là "k8", thì "target_cpu" sẽ bị loại khỏi tên tệp của dữ liệu cấu hình FDO thô. |
target_libc
|
string; hoặc None ;
giá trị mặc định là None Không dùng nữa: Thay vào đó, hãy sử dụng các quy tắc ràng buộc dựa trên hệ điều hành. Chuỗi phiên bản libc (ví dụ: "glibc-2.2.2"). Nếu chuỗi là "macosx", thì nền tảng được giả định là MacOS. Nếu không thì chọn Linux. Chuỗi này hiển thị với CcToolchainInfo.libc. |
compiler
|
string;
bắt buộc Chuỗi trình biên dịch (ví dụ: "gcc"). Trình biên dịch của chuỗi công cụ hiện tại được hiển thị với `@bazel_tools//tools/cpp:compiler (compiler_flag)` dưới dạng một giá trị cờ. Các mục tiêu yêu cầu cờ dành riêng cho trình biên dịch có thể sử dụng config_settings trong https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD trong câu lệnh Select() hoặc tạo config_setting tuỳ chỉnh nếu chế độ cài đặt hiện có không đủ. |
abi_version
|
string; hoặc None ;
giá trị mặc định là None abi đang được sử dụng, là một phiên bản gcc. Ví dụ: "gcc-3.4". Chuỗi này được đặt thành chuỗi công cụ C++ có biến ABI. |
abi_libc_version
|
string; hoặc None ;
giá trị mặc định là None Phiên bản glibc mà abi mà chúng tôi đang dùng. Chuỗi này được đặt thành biến chuỗi công cụ C++ ABI_LIBC_VERSION. |
tool_paths
|
trình tự;
giá trị mặc định là [] Vị trí công cụ. Đối số:
|
make_variables
|
trình tự;
giá trị mặc định là [] Một biến tạo có thể truy cập vào các quy tắc. |
builtin_sysroot
|
string; hoặc None ;
giá trị mặc định là None sysroot tích hợp sẵn. Nếu không có thuộc tính này, Bazel không cho phép sử dụng sysroot khác, tức là thông qua tuỳ chọ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)Tạo
CompilationContext
.
Tham số
Thông số | Mô tả |
---|---|
headers
|
giá trị mặc định là unbound Tập hợp tiêu đề cần thiết để biên dịch mục tiêu này |
system_includes
|
giá trị mặc định là unbound Tập hợp các đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bởi dấu ngoặc nhọn, ví dụ: #include <foo/bar/header.h>. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -isystem |
includes
|
giá trị mặc định là unbound Tập hợp đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu bằng cả dấu ngoặc góc và dấu ngoặc kép.Thường được truyền kèm theo -I |
quote_includes
|
giá trị mặc định là unbound Tập hợp các đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu trong dấu ngoặc kép, ví dụ: #include "foo/bar/header.h". Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường có dấu ngoặc kép/dấu ngoặc đơn |
framework_includes
|
giá trị mặc định là unbound Tập hợp các đường dẫn tìm kiếm khung cho các tệp tiêu đề (chỉ nền tảng của Apple) |
defines
|
giá trị mặc định là unbound Tập hợp các định nghĩa cần thiết để biên dịch mục tiêu này. Mỗi định nghĩa là một chuỗi. Được truyền theo cách bắc cầu đến những người phụ thuộc. |
local_defines
|
giá trị mặc định là unbound Tập hợp các định nghĩa cần thiết để biên dịch mục tiêu này. Mỗi định nghĩa là một chuỗi. Không được truyền theo cách bắc cầu đến các phần phụ thuộc. |
create_compilation_outputs
CcCompilationOutputs cc_common.create_compilation_outputs(objects=None, pic_objects=None)Tạo đối tượng đầu ra của quá trình biên dịch.
Tham số
Thông số | Mô tả |
---|---|
objects
|
depset; hoặc None ;
giá trị mặc định là None Danh sách các tệp đối tượng. |
pic_objects
|
depset; hoặc None ;
giá trị mặc định là None Danh sách các tệp đối tượng 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)Trả về các biến dùng cho thao tác biên dịch.
Tham số
Thông số | Mô tả |
---|---|
cc_toolchain
|
Thông tin;
bắt buộc cc_toolchain mà chúng tôi đang tạo các biến bản dựng. |
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
source_file
|
giá trị mặc định là None Tệp nguồn không bắt buộc để biên dịch. Vui lòng ưu tiên truyền source_file ở đây thay vì thêm tệp này vào cuối dòng lệnh được tạo từ cc_common.get_memory_inefficient_command_line, vì khi đó, tác giả chuỗi công cụ sẽ có quyền chỉ định và định vị đúng cách cờ của trình biên dịch. |
output_file
|
giá trị mặc định là None Tệp đầu ra không bắt buộc của quá trình biên dịch. Vui lòng ưu tiên truyền output_file đến đây thay vì thêm tệp này vào cuối dòng lệnh được tạo từ cc_common.get_memory_inefficient_command_line, vì sau đó tác giả chuỗi công cụ có thể chỉ định và định vị đúng cách cờ của trình biên dịch. |
user_compile_flags
|
trình tự của chuỗi; hoặc None ;
mặc định là None Danh sách cờ biên dịch bổ sung (copt). |
include_directories
|
depset; hoặc None ;
giá trị mặc định là None Không bao gồm các thư mục đính kèm. |
quote_include_directories
|
depset; hoặc None ;
giá trị mặc định là None Phần trích dẫn có các thư mục. |
system_include_directories
|
depset; hoặc None ;
giá trị mặc định là None Không hoạt động hệ thống bao gồm các thư mục. |
framework_include_directories
|
depset; hoặc None ;
giá trị mặc định là None Ngừng sử dụng khung bao gồm các thư mục. |
preprocessor_defines
|
depset; hoặc None ;
giá trị mặc định là None Ngừng sử dụng định nghĩa của bộ tiền xử lý. |
thinlto_index
|
string; hoặc None ;
giá trị mặc định là None Đường dẫn tệp chỉ mục LTO. |
thinlto_input_bitcode_file
|
string; hoặc None ;
giá trị mặc định là None Tệp mã bit được nhập vào phần phụ trợ LTO. |
thinlto_output_object_file
|
string; hoặc None ;
giá trị mặc định là None Tệp đối tượng do phần phụ trợ LTO xuất ra. |
use_pic
|
bool;
giá trị mặc định là False Khi giá trị true, việc biên dịch sẽ tạo ra mã độc lập với vị trí. |
add_legacy_cxx_options
|
bool;
giá trị mặc định là False Không sử dụng. |
variables_extension
|
dict;
giá trị mặc định là unbound Từ điển gồm các biến bổ sung được sử dụng bởi các thao tác biên dịch. |
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='')Tạo
LibraryToLink
Tham số
Thông số | Mô tả |
---|---|
actions
|
bắt buộc Đối tượng actions .
|
feature_configuration
|
giá trị mặc định là None feature_configuration cần được truy vấn.
|
cc_toolchain
|
giá trị mặc định là None CcToolchainInfo sẽ được sử dụng.
|
static_library
|
Tệp; hoặc None ;
giá trị mặc định là None File trong số thư viện tĩnh cần liên kết.
|
pic_static_library
|
Tệp; hoặc None ;
giá trị mặc định là None File trong số thư viện ảnh tĩnh cần liên kết.
|
dynamic_library
|
Tệp; hoặc None ;
giá trị mặc định là None File trong số thư viện động cần liên kết. Luôn dùng cho thời gian chạy và dùng để liên kết nếu không truyền interface_library .
|
interface_library
|
Tệp; hoặc None ;
giá trị mặc định là None File của thư viện giao diện cần liên kết.
|
pic_objects
|
trình tự của Tệp;
mặc định là unbound Thử nghiệm, không sử dụng |
objects
|
trình tự của Tệp;
mặc định là unbound Thử nghiệm, không sử dụng |
alwayslink
|
bool;
giá trị mặc định là False Liệu có liên kết thư viện/đối tượng tĩnh trong khối --w New_lưu trữ hay không. |
dynamic_library_symlink_path
|
string;
giá trị mặc định là '' Ghi đè đường dẫn mặc định của đường liên kết đến thư viện động trong thư mục solib. Chuỗi trống để sử dụng giá trị mặc định. |
interface_library_symlink_path
|
string;
giá trị mặc định là '' Ghi đè đường dẫn mặc định của đường liên kết thư viện giao diện trong thư mục solib. Chuỗi trống để sử dụng giá trị mặc định. |
create_link_variables
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)Trả về các biến liên kết dùng cho thao tác liên kết.
Tham số
Thông số | Mô tả |
---|---|
cc_toolchain
|
Thông tin;
bắt buộc cc_toolchain mà chúng tôi đang tạo các biến bản dựng. |
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
library_search_directories
|
depset;
giá trị mặc định là [] Không có các thư mục mà trình liên kết sẽ tìm thư viện tại thời điểm liên kết. |
runtime_library_search_directories
|
depset;
giá trị mặc định là [] Không còn các thư mục mà trình tải sẽ tìm thư viện trong thời gian chạy. |
user_link_flags
|
trình tự;
giá trị mặc định là [] Danh sách các cờ liên kết bổ sung (linkopts). |
output_file
|
giá trị mặc định là None Đường dẫn tệp đầu ra không bắt buộc. |
param_file
|
giá trị mặc định là None Đường dẫn tệp thông số không bắt buộc. |
is_using_linker
|
bool;
giá trị mặc định là True "True" khi sử dụng trình liên kết, False khi sử dụng trình lưu trữ. Phương thức gọi chịu trách nhiệm đồng bộ hoá với tên thao tác được sử dụng (is_using_linker = True để liên kết thư viện động hoặc tệp thực thi, is_using_linker = False để lưu trữ thư viện tĩnh). |
is_linking_dynamic_library
|
bool;
giá trị mặc định là False True khi tạo thư viện động, False khi tạo thư viện tĩnh hoặc có thể thực thi. Phương thức gọi chịu trách nhiệm đảm bảo việc này luôn đồng bộ với tên hành động được sử dụng. Trường này sẽ bị xoá sau khi b/65151735 được khắc phục. |
must_keep_debug
|
bool;
giá trị mặc định là True Khi bạn đặt chính sách này thành False, bazel sẽ hiển thị 'strip_debug_symbols' biến này thường dùng để sử dụng trình liên kết để xoá các biểu tượng gỡ lỗi khỏi tệp đầu ra. |
use_test_only_flags
|
bool;
giá trị mặc định là False Khi bạn đặt chính sách này thành true, thì "is_cc_test" biến sẽ được đặt. |
is_static_linking_mode
|
bool;
giá trị mặc định là True Không sử dụng. |
create_linker_input
LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)Tạo
LinkerInput
.
Tham số
Thông số | Mô tả |
---|---|
owner
|
Nhãn;
bắt buộc Nhãn của mục tiêu đã tạo ra tất cả các tệp được dùng trong dữ liệu đầu vào này. |
libraries
|
None ; hoặc Depset;
giá trị mặc định là None Danh sách LibraryToLink .
|
user_link_flags
|
None ; hoặc phần phụ thuộc của chuỗi; hoặc trình tự của chuỗi;
mặc định là None Cờ liên kết người dùng được truyền dưới dạng chuỗi. Chấp nhận [String], [[String]] hoặc depset(String). Bạn không nên sử dụng phần sau vì nó chỉ được giữ lại cho mục đích tương thích, phần phụ thuộc sẽ được làm phẳng. Nếu bạn muốn phổ biến user_link_flags thông qua depsets() chưa làm phẳng, hãy gói chúng trong LinkerInput để chúng không bị làm phẳng cho đến cuối. |
additional_inputs
|
None ; hoặc Depset;
giá trị mặc định là None Đối với dữ liệu đầu vào bổ sung cho hành động liên kết, ví dụ: tập lệnh liên kết. |
create_linking_context
LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)Tạo
LinkingContext
.
Tham số
Thông số | Mô tả |
---|---|
linker_inputs
|
None ; hoặc Depset;
giá trị mặc định là None Không còn LinkerInput .
|
libraries_to_link
|
None ; hoặc trình tự;
giá trị mặc định là None Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --incompatible_require_linker_input_cc_api . Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá. Danh sách LibraryToLink .
|
user_link_flags
|
None ; hoặc trình tự;
giá trị mặc định là None Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --incompatible_require_linker_input_cc_api . Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá. Danh sách các cờ liên kết người dùng được truyền dưới dạng chuỗi. |
additional_inputs
|
None ; hoặc trình tự;
giá trị mặc định là None Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --incompatible_require_linker_input_cc_api . Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá. Để có thêm thông tin đầu vào cho hành động liên kết, ví dụ: tập lệnh liên kết. |
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)Nên dùng để tạo các quy tắc thư viện có thể truyền thông tin xuống dưới để được liên kết sau bằng quy tắc cấp cao nhất có chức năng liên kết bắc cầu để tạo tệp thực thi hoặc thư viện động. Trả về bộ dữ liệu của (
CcLinkingContext
, CcLinkingOutputs
).
Tham số
Thông số | Mô tả |
---|---|
actions
|
action (hành động);
bắt buộc Đối tượng actions .
|
name
|
string;
bắt buộc Thông tin này dùng để đặt tên cho cấu phần phần mềm đầu ra của các thao tác do phương thức này tạo ra. |
feature_configuration
|
FeatureConfiguration;
bắt buộcfeature_configuration cần truy vấn.
|
cc_toolchain
|
Thông tin;
bắt buộcCcToolchainInfo sẽ được sử dụng.
|
language
|
string;
giá trị mặc định là 'c++' Hiện chỉ hỗ trợ C++. Không sử dụng tham số này. |
disallow_static_libraries
|
bool;
giá trị mặc định là False Liệu có nên tạo thư viện tĩnh hay không. |
disallow_dynamic_library
|
bool;
giá trị mặc định là False Liệu có nên tạo thư viện động hay không. |
compilation_outputs
|
CcCompilationOutputs;
bắt buộc Kết quả biên dịch chứa các tệp đối tượng cần liên kết. |
linking_contexts
|
trình tự;
giá trị mặc định là [] Thư viện từ phần phụ thuộc. Các thư viện này sẽ được liên kết với cấu phần phần mềm đầu ra của lệnh gọi link(), có thể là tệp nhị phân hoặc thư viện. |
user_link_flags
|
trình tự;
giá trị mặc định là [] Danh sách bổ sung về các lựa chọn liên kết. |
alwayslink
|
bool;
giá trị mặc định là False Liệu có luôn liên kết thư viện này hay không. |
additional_inputs
|
trình tự;
giá trị mặc định là [] Đối với dữ liệu đầu vào bổ sung cho hành động liên kết, ví dụ: tập lệnh liên kết. |
variables_extension
|
dict;
giá trị mặc định là unbound Các biến bổ sung để chuyển sang cấu hình chuỗi công cụ khi tạo dòng lệnh liên kết. |
create_lto_compilation_context
LtoCompilationContext cc_common.create_lto_compilation_context(objects={})Tạo ngữ cảnh biên dịch LTO
Tham số
Thông số | Mô tả |
---|---|
objects
|
dict;
giá trị mặc định là {} ánh xạ của toàn bộ đối tượng đến đối tượng lập chỉ mục |
do_not_use_tools_cpp_compiler_present
None
cc_common.do_not_use_tools_cpp_compiler_present
Đừng sử dụng trường này, mục đích duy nhất của trường này là giúp di chuyển từ config_setting.values{'compiler') sang config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}
get_environment_variables
dict cc_common.get_environment_variables(feature_configuration, action_name, variables)Trả về các biến môi trường cần thiết lập cho hành động cụ thể.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
action_name
|
string;
bắt buộc Tên của hành động. Phải là một trong những tên trong @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl) |
variables
|
Biến;
bắt buộc Tạo các biến sẽ được dùng để mở rộng mẫu. |
get_execution_requirements
sequence cc_common.get_execution_requirements(feature_configuration, action_name)Trả về các yêu cầu thực thi cho hành động cụ thể.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
action_name
|
string;
bắt buộc Tên của hành động. Phải là một trong những tên trong @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)Trả về các cờ dòng lệnh đã được làm phẳng cho hành động cụ thể, sử dụng các biến đã cho để mở rộng. Làm phẳng các tập hợp lồng nhau và tốt nhất là không nên sử dụng, hoặc ít nhất không nên tồn tại lâu hơn quá trình phân tích. Đang xử lý hàm trả về trình bổ trợ hiệu quả cho bộ nhớ.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
action_name
|
string;
bắt buộc Tên của hành động. Phải là một trong những tên trong @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl) |
variables
|
Biến;
bắt buộc Tạo biến sẽ được dùng cho mở rộng mẫu. |
get_tool_for_action
string cc_common.get_tool_for_action(feature_configuration, action_name)Trả về đường dẫn công cụ cho thao tác cụ thể.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
action_name
|
string;
bắt buộc Tên của hành động. Phải là một trong những tên trong @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)Trả về True nếu tính năng cụ thể được bật trong cấu hình tính năng.
Tham số
Thông số | Mô tả |
---|---|
feature_configuration
|
FeatureConfiguration;
bắt buộc Cấu hình tính năng cần truy vấn. |
feature_name
|
string;
bắt buộc Tên tính năng. |
liên kết
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={})Phải được sử dụng cho liên kết bắc cầu C++.
Tham số
Thông số | Mô tả |
---|---|
actions
|
action (hành động);
bắt buộc Đối tượng actions .
|
name
|
string;
bắt buộc Thông tin này dùng để đặt tên cho cấu phần phần mềm đầu ra của các thao tác do phương thức này tạo ra. |
feature_configuration
|
FeatureConfiguration;
bắt buộcfeature_configuration cần truy vấn.
|
cc_toolchain
|
Thông tin;
bắt buộcCcToolchainInfo sẽ được sử dụng.
|
language
|
string;
giá trị mặc định là 'c++' Hiện chỉ hỗ trợ C++. Không sử dụng tham số này. |
output_type
|
string;
giá trị mặc định là 'executable' Có thể là "thực thi" hoặc "dynamic_library". |
link_deps_statically
|
bool;
giá trị mặc định là True "True" cho các phần phụ thuộc liên kết theo cách tĩnh, False linh động. |
compilation_outputs
|
CcCompilationOutputs; hoặc None ;
giá trị mặc định là None Kết quả biên dịch chứa các tệp đối tượng cần liên kết. |
linking_contexts
|
trình tự;
giá trị mặc định là [] Liên kết ngữ cảnh từ các phần phụ thuộc được liên kết với ngữ cảnh liên kết do quy tắc này tạo ra. |
user_link_flags
|
trình tự;
giá trị mặc định là [] Danh sách bổ sung các tuỳ chọn trình liên kết. |
stamp
|
int;
giá trị mặc định là 0 Liệu có đưa thông tin bản dựng vào tệp thực thi được liên kết hay không, nếu output_type là "thực thi". Nếu là 1, thông tin bản dựng sẽ luôn được đưa vào. Nếu là 0 (thông tin bản dựng mặc định sẽ luôn bị loại trừ. Nếu -1, sử dụng hành vi mặc định có thể bị cờ tem --[no]ghi đè. Bạn không nên đặt chính sách này (hoặc đặt thành 0) khi tạo đầu ra thực thi cho các quy tắc kiểm thử. |
additional_inputs
|
trình tự; hoặc phần phụ thuộc;
mặc định là [] Đối với dữ liệu đầu vào bổ sung cho hành động liên kết, ví dụ: tập lệnh liên kết. |
additional_outputs
|
trình tự;
giá trị mặc định là [] Đối với các kết quả đầu ra bổ sung cho hành động liên kết, ví dụ: tệp ánh xạ. |
variables_extension
|
dict;
giá trị mặc định là {} Các biến bổ sung cần chuyển sang cấu hình chuỗi công cụ khi tạo dòng lệnh liên kết. |
merge_compilation_contexts
CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])Hợp nhất nhiều
CompilationContexts
thành một.
Tham số
Thông số | Mô tả |
---|---|
compilation_contexts
|
trình tự;
giá trị mặc định là [] Danh sách CompilationContexts sẽ được hợp nhất. Tiêu đề của mỗi ngữ cảnh sẽ được các trường trực tiếp trong trình cung cấp được trả về xuất ra.
|
merge_compilation_outputs
CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])Hợp nhất đầu ra biên dịch.
Tham số
Thông số | Mô tả |
---|---|
compilation_outputs
|
trình tự;
giá trị mặc định là [] |