cc_Common

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

bool cc_common.action_is_enabled(feature_configuration, action_name)

Trả về True nếu action_config được bật trong cấu hình tính năng.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
action_name bắt buộc
Tên của action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

Khoá dùng để truy xuất trình cung cấp chứa thông tin về chuỗi công cụ C++ đang được sử dụng

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=[], grep_includes=None)

Phải được sử dụng để biên dịch C++. Trả về bộ dữ liệu của (CompilationContext, CcCompilationOutputs).

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để truy vấn.
cc_toolchain bắt buộc
CcToolchainInfo.
srcs mặc định = []
Danh sách các tệp nguồn sẽ được biên dịch.
public_hdrs default = []
Danh sách tiêu đề cần thiết để biên dịch srcs và có thể được các quy tắc phụ thuộc đưa vào theo cách bắc cầu.
private_hdrs mặc định = []
Danh sách tiêu đề cần thiết để biên dịch src và KHÔNG đưa vào các quy tắc phụ thuộc.
includes default = []
Đường dẫn tìm kiếm tệp tiêu đề được tham chiếu theo cả dấu ngoặc góc và dấu ngoặc kép. Thường được truyền bằng -I. Truyền cho người phụ thuộc một cách bắc cầu.
quote_includes default = []
Đường dẫn tìm kiếm đến 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 căn bậc thực thi hoặc tuyệt đối. Thường được chuyển kèm với -i ngôn ngữ. Truyền cho người phụ thuộc một cách bắc cầu.
system_includes default = []
Đường dẫn tìm kiếm cho các 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 đường dẫn này có thể tương ứng với gốc executor hoặc tuyệt đối. Thường được truyền bằng -isystem. Truyền cho người phụ thuộc một cách bắc cầu.
framework_includes default = []
Đường dẫn tìm kiếm cho tệp tiêu đề trong khung của Apple. Các giá trị này có thể tương đối với căn bậc thực thi hoặc tuyệt đối. Thường được truyền với -F. Truyền cho người phụ thuộc một cách bắc cầu.
defines mặc định = []
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. Truyền cho người phụ thuộc một cách bắc cầu.
local_defines mặc định = []
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 một cách bắc cầu.
include_prefix mặc định = ''
Tiền tố cần thêm vào đường dẫn của tiêu đề của quy tắc này. Khi được đặt, tiêu đề trong thuộc tính hdrs của quy tắc này có thể truy cập được tại là giá trị của thuộc tính này được thêm vào trước đường dẫn tương đối về kho lưu trữ. Tiền tố trong thuộc tínhtrip_include_prefix sẽ bị xoá trước khi thêm tiền tố này.
strip_include_prefix default = ''
Tiền tố cần xoá khỏi đường dẫn của tiêu đề của quy tắc này. Khi được đặt, tiêu đề trong thuộc tính hdrs của quy tắc này có thể truy cập được tại đường dẫn của chúng với tiền tố này bị cắt bỏ. Nếu đó là đường dẫn tương đối, thì tiêu đề đó được coi là đường dẫn tương đối cho gói. Nếu đó là giá trị tuyệt đối, thì URL đó được hiểu là đường dẫn tương đối với kho lưu trữ. Tiền tố trong thuộc tính include_prefix được thêm vào sau khi đã xoá tiền tố này.
user_compile_flags mặc định = []
Danh sách tuỳ chọn biên dịch bổ sung.
compilation_contexts mặc định = []
Tiêu đề từ các phần phụ thuộc dùng để biên dịch.
name bắt buộc
Giá trị này dùng để đặt tên cấu phần phần mềm đầu ra của các thao tác được tạo bằng phương thức này. Hãy xem thêm đối số `main_output`.
disallow_pic_outputs mặc định = Sai
Có nên tạo đầu ra PIC hay không.
disallow_nopic_outputs default = False
Có nên tạo đầu ra NOPIC hay không.
additional_inputs mặc định = []
Danh sách tệp bổ sung cần thiết để biên dịch srcs
grep_includes File; or None; mặc định = Không có

configure_features

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

Tạo một thực thể Feature_ configuration (Cấu hình tính năng). Yêu cầu mảnh cấu hình cpp.

Các tham số

Thông số Nội dung mô tả
ctx ctx; or None; mặc định = Không có
Ngữ cảnh của quy tắc.
cc_toolchain bắt buộc
cc_toolchain để chúng ta định cấu hình các tính năng.
language string; or None; mặc định = Không có
Ngôn ngữ cần định cấu hình: c++ hoặc objc (c++ mặc định)
requested_features mặc định = []
Danh sách các tính năng được bật.
unsupported_features mặc định = []
Danh sách các tính năng mà quy tắc hiện tại không 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, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)

Tạo nhà cung cấp CcToolchainConfigInfo

Các tham số

Thông số Nội dung mô tả
ctx bắt buộc
Ngữ cảnh quy tắc.
features mặc định = []

Chứa tất cả thông số kỹ thuật của cờ cho một tính năng.

Đối số:

name: Tên của đối tượng. Bạn có thể ra mắt một tính năng mà không làm thay đổi Bazel bằng cách thêm mục "tính năng" vào chuỗi công cụ và thêm chuỗi tương ứng làm tính năng trong tệp BUILD.

bật: Nếu giá trị là "True", tính năng này sẽ được bật trừ khi một loại quy tắc đánh dấu rõ ràng tính năng này là không được hỗ trợ.

CANNOT TRANSLATE

env_sets: danh sách EnvSet – Nếu tính năng đã cho được bật, nhóm env sẽ được áp dụng cho các hành động mà chúng được chỉ định.

yêu cầu: Danh sách bộ tính năng xác định thời điểm chuỗi công cụ hỗ trợ tính năng này. Tính năng được hỗ trợ nếu bất kỳ bộ tính năng nào áp dụng đầy đủ, tức là khi tất cả các tính năng của một bộ tính năng được bật. Nếu bỏ qua 'requires', tính năng này được hỗ trợ độc lập và không có các tính năng khác được bật. Dùng ví dụ này để lọc cờ tuỳ thuộc vào chế độ bản dựng đang bật (opt / fastbuild / dbg).

ngụ ý: Danh sách chuỗi các tính năng hoặc cấu hình hành động được bật tự động khi tính năng này được bật. Nếu không thể bật bất kỳ tính năng ngầm ẩn hoặc cấu hình hành động nào, tính năng này cũng sẽ không được bật (âm thanh).

cung cấp: Danh sách các tên mà tính năng này xung đột với.

Bạn không thể bật một tính năng nếu:
- "provide" chứa tên của một cấu hình tính năng hoặc cấu hình hành động khác mà chúng ta muốn bật.
- "provide" chứa cùng giá trị với "provide" trong một cấu hình tính năng hoặc hành động khác mà chúng ta muốn bật. Hãy dùng tính năng này để đảm bảo rằng bạn không thể vô tình kích hoạt các tính năng không tương thích cùng một lúc, dẫn đến các lỗi khó chẩn đoán về trình biên dịch.
action_configs mặc định = []

Cấu hình hành động tương ứng với một hành động 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 ngữ nghĩa giống như các tính năng: một tính năng có thể "yêu cầu" hoặc "ám chỉ" một cấu hình hành động giống như với một tính năng khác.

Đối số:

action_name: Tên của thao tác Bazel áp dụng cấu hình này, ví dụ: "c-compile" hoặc "c-module-compile".

bật: Nếu giá trị là "True", thì thao tác này sẽ được bật trừ phi một loại quy tắc đánh dấu rõ ràng hành động này là không được hỗ trợ.

công cụ: Công cụ được áp dụng cho hành động sẽ là Công cụ đầu tiên có bộ tính năng phù hợp với cấu hình tính năng. Lỗi sẽ được tạo ra nếu không có công cụ nào khớp với cấu hình tính năng đã cho. Vì lý do này, bạn nên cung cấp công cụ mặc định có bộ tính năng trống.

cờ_sets: Nếu cấu hình hành động đã cho được bật, các nhóm cờ sẽ được áp dụng cho hành động tương ứng.

ngụ ý: Danh sách các tính năng hoặc cấu hình hành động được bật tự động khi cấu hình hành động này được bật. Nếu không thể bật bất kỳ tính năng hoặc cấu hình hành động ngụ ý nào, thì cấu hình hành động này cũng sẽ không được bật.

artifact_name_patterns mặc định = []

Tên 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 hành động.

Đối số:

danh mục_tên: Danh mục cấu phần phần mềm mà lựa chọn này áp dụng. Trường này được so sánh với danh sách các danh mục được xác định bằng tiếng Bazel. Danh mục mẫu bao gồm "linked_output" hoặc cấu phần phần mềm cho lựa chọn này. Cùng với tiện ích, tiện ích đó được dùng để tạo tên cấu phần phần mềm dựa trên tên mục tiêu.

tiện ích: Tiện ích để tạo cấu phần phần mềm cho lựa chọn này. Cùng với tiền tố đó, mã đó được dùng để tạo tên cấu phần phần mềm dựa trên tên mục tiêu.

cxx_builtin_include_directories mặc định = []

Các thư mục include được tích hợp sẵn để 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 thư mục gốc của executor.

Bạn có thể xác định các đường dẫn mà trình biên dịch sử dụng bằng "gcc -E -xc++ - -v".

Hiện tại, chúng tôi cũng sử dụng đường dẫn C++ để biên dịch C, cách này an toàn miễn là không có sự xung đột về tên giữa các tệp tiêu đề C++ và C.

Đường dẫn tương đối được phân giải so 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 bao gồm 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 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 công cụ chéo. Bạn phải có thể dùng tên này làm tên thư mục trong đường dẫn.

Thuộc tính này phải khớp với biểu thức chính quy sau: [a-zA-Z_][\.\- \w]*

host_system_name string; or None; mặc định = Không
Bỏ qua.
target_system_name bắt buộc
Tên hệ thống GNU.
target_cpu bắt buộc
Chuỗi cấu trúc mục tiêu.
target_libc bắt buộc
Chuỗi phiên bản libc (ví dụ: "glibc-2.2.2").
compiler bắt buộc
Chuỗi phiên bản trình biên dịch (ví dụ: "gcc-4.1.1").
abi_version string; or None; mặc định = Không có
Abi đang được sử dụng, là một phiên bản gcc. E.g.: "gcc-3.4"
abi_libc_version string; or None; mặc định = Không có
Phiên bản glibc mà abi mà chúng ta đang sử dụng.
tool_paths mặc định = []

Vị trí công cụ.

Đối số:

name: Tên công cụ.

path: Vị trí của công cụ; Có thể là đường dẫn tuyệt đối (trong trường hợp chuỗi công cụ không phải ở trạng thái ẩn) hoặc đường dẫn tương ứng với gói của cc_toolchain.

make_variables mặc định = []
Biến make có thể truy cập vào các quy tắc.
builtin_sysroot string; or None; mặc định = Không có
sysroot tích hợp. Nếu không có thuộc tính này, Bazel không cho phép sử dụng một sysroot khác, tức là thông qua tuỳ chọn --grte_top.
cc_target_os string; or None; mặc định = Không
Chỉ sử dụng nội bộ, không sử dụng.

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 một CompilationContext.

Các tham số

Thông số Nội dung mô tả
headers mặc định = không bị ràng buộc
Tập hợp các tiêu đề cần thiết để biên dịch mục tiêu này
system_includes default = 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 dấu ngoặc nhọn, tức là #include <foo/bar/header.h>. Chúng có thể là tương đối với gốc executor hoặc tuyệt đối. Thường được truyền cùng với -isystem
includes mặc định = không giới hạn
Tập hợp các đườ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 bằng -I
quote_includes default = unbound
Tập hợp đườ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, tức là #include "foo/bar/header.h". Các giá trị này có thể tương đối với căn bậc thực thi hoặc tuyệt đối. Thường được bỏ qua kèm theo -i tiền
framework_includes mặc định = không liên kết
Tập hợp đường dẫn tìm kiếm khung cho các tệp tiêu đề (chỉ dành cho nền tảng Apple)
defines mặc định = không bị ràng buộc
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 bắc cầu cho người phụ thuộc.
local_defines mặc định = không bị ràng buộc
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 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 biên dịch.

Các tham số

Thông số Nội dung mô tả
objects depset; or None; mặc định = Không có
Danh sách các tệp đối tượng.
pic_objects depset; or None; mặc định = Không
Danh sách các tệp đối tượng ảnh.

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.

Các tham số

Thông số Nội dung mô tả
cc_toolchain bắt buộc
cc_toolchain mà chúng tôi đang tạo biến xây dựng.
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
source_file mặc định = Không có
Tệp nguồn không bắt buộc để biên dịch. Vui lòng ưu tiên chuyển source_file ở đây thay vì thêm vào cuối dòng lệnh được tạo từ cc_common.get_memory_ineffective_command_line, vì sau đó, tuỳ chọn này thuộc quyền hạn của tác giả chuỗi công cụ để chỉ định và định vị các cờ trình biên dịch một cách chính xác.
output_file mặc định = Không có
Tệp đầu ra không bắt buộc của quá trình biên dịch. Vui lòng chuyển output_file tại đây thay vì thêm output_file vào cuối dòng lệnh được tạo từ cc_common.get_memory_ineffective_command_line, vì khi đó, hàm này có quyền hạn của tác giả chuỗi công cụ để chỉ định và định vị chính xác cờ trình biên dịch.
user_compile_flags sequence of strings; or None; mặc định = Không
Danh sách cờ biên dịch bổ sung (copts).
include_directories depset; or None; mặc định = Không
Tập hợp các thư mục include.
quote_include_directories depset; or None; mặc định = Không
Số tệp trích dẫn bao gồm các thư mục.
system_include_directories depset; or None; mặc định = Không
Tập hợp hệ thống bao gồm các thư mục.
framework_include_directories depset; or None; mặc định = Không có
Phần khởi động của khung bao gồm các thư mục.
preprocessor_defines depset; or None; mặc định = Không
Giá trị khởi động của bộ tiền xử lý xác định.
thinlto_index string; or None; mặc định = Không
Đường dẫn tệp chỉ mục LTO.
thinlto_input_bitcode_file string; or None; mặc định = Không
Tệp mã bit được đưa vào phần phụ trợ LTO.
thinlto_output_object_file string; or None; mặc định = Không
Tệp đối tượng do phần phụ trợ LTO xuất ra.
use_pic mặc định = Sai
Khi là true, quá trình biên dịch sẽ tạo mã độc lập với vị trí.
add_legacy_cxx_options mặc định = Sai
Không sử dụng.
variables_extension dict; mặc định = không liên kết
Từ điển gồm các biến bổ sung mà các thao tác biên dịch sử dụng.

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

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
đối tượng actions.
feature_configuration mặc định = Không có
feature_configuration nào được truy vấn.
cc_toolchain mặc định = Không có nhà cung cấp
CcToolchainInfo nào được sử dụng.
static_library File; or None; mặc định = Không có
File của thư viện tĩnh cần liên kết.
pic_static_library File; or None; mặc định = Không
File của thư viện tĩnh về ảnh cần liên kết.
dynamic_library File; or None; mặc định = Không có
File thư viện động cần liên kết. Luôn được dùng cho thời gian chạy và được dùng để liên kết nếu không truyền interface_library.
interface_library File; or None; mặc định = Không có
File thư viện giao diện cần liên kết.
pic_objects sequence of Files; mặc định = không liên kết
Thử nghiệm, không sử dụng
objects sequence of Files; mặc định = không liên kết
Thử nghiệm, không sử dụng
mặc định = Sai
Liệu có liên kết thư viện/đối tượng tĩnh trong khối --wiling_lưu hay không.
string; default = ''
Ghi đè đường dẫn mặc định của đường liên kết đến thư viện động trong thư mục solib. Hãy để trống chuỗi để sử dụng giá trị mặc định.
default = ''
Ghi đè đường dẫn mặc định của đường liên kết đến thư viện giao diện trong thư mục solib. Hãy để trống chuỗi để sử dụng giá trị mặc định.

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)

Trả về các biến liên kết được dùng cho các hành động liên kết.

Các tham số

Thông số Nội dung mô tả
bắt buộc
cc_toolchain mà chúng tôi đang tạo biến xây dựng.
bắt buộc
Cấu hình tính năng cần truy vấn.
None; or depset; mặc định = Không
Tập hợp 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.
None; or depset; mặc định = Không
Tập hợp các thư mục mà trình tải sẽ tìm thư viện trong thời gian chạy.
None; or sequence; mặc định = Không có
Danh sách cờ liên kết bổ sung (linkopts).
mặc định = Không có
Đường dẫn tệp đầu ra không bắt buộc.
mặc định = Không có
Đường dẫn tệp tham số không bắt buộc.
mặc định = Không có
Đường dẫn tệp .def không bắt buộc.
default = True
True khi sử dụng trình liên kết, False khi dùng trình lưu trữ. Phương thức gọi có trách nhiệm đồng bộ hoá tên này với tên hành động được sử dụng (is_using_linker = True để liên kết thư viện thực thi hoặc thư viện động, is_using_linker = False để lưu trữ thư viện tĩnh).
default = False
True khi tạo thư viện động, False khi thực thi hoặc thư viện tĩnh. Phương thức gọi có trách nhiệm đồng bộ hoá tên này với tên thao tác được sử dụng. Trường này sẽ bị xoá sau khi b/65151735 được sửa.
default = True
Khi đặt thành True, bazel sẽ hiển thị biến 'strip_debug_symbols', biến này thường dùng để sử dụng trình liên kết nhằm loại bỏ các biểu tượng gỡ lỗi khỏi tệp đầu ra.
mặc định = Sai
Khi được đặt thành true, biến "is_cc_test" sẽ được đặt.
mặc định = Đúng
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 một LinkerInput.

Các tham số

Thông số Nội dung mô tả
owner bắt buộc
Nhãn của mục tiêu đã tạo ra tất cả các tệp được sử dụng trong dữ liệu nhập này.
libraries None; or depset; mặc định = Không
Danh sách LibraryToLink.
None; or depset of strings; or sequence of strings; mặc định = Không
Cờ liên kết người dùng được chuyể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 tuỳ chọn thứ hai 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 truyền user_link_flags thông qua depsets() không bị phẳng, hãy gói chúng trong LinksInput để chúng không được làm phẳng cho đến cuối.
additional_inputs None; or depset; mặc định = Không có
Đố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 một LinkingContext.

Các tham số

Thông số Nội dung mô tả
linker_inputs None; or depset; mặc định = Không
Giá trị đặt trước của LinkerInput.
None; or sequence; mặc định = Không
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 không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng --+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 việc mã sắp bị xoá.
Danh sách LibraryToLink.
None; or sequence; mặc định = Không
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 không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng --+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 việc mã sắp bị xoá.
Danh sách cờ liên kết của người dùng được truyền dưới dạng chuỗi.
additional_inputs None; or sequence; mặc định = Không
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 không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng --+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 việc mã sắp bị xoá.
Đối với các dữ liệu đầu vào bổ sung cho hành động liên kết, ví dụ: liên kết tập lệnh.

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, grep_includes=None)

Nên dùng để tạo các quy tắc của thư viện có thể truyền thông tin xuống dưới để được liên kết sau này bằng một quy tắc cấp cao nhất có chức năng liên kết bắc cầu để tạo một thư viện động hoặc thực thi. Trả về bộ dữ liệu của (CcLinkingContext, CcLinkingOutputs).

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để truy vấn.
cc_toolchain bắt buộc
CcToolchainInfo.
compilation_outputs 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.
mặc định = []
Danh sách các lựa chọn liên kết bổ sung.
linking_contexts mặc định = []
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(), cho dù đó là tệp nhị phân hoặc thư viện.
name bắt buộc
Giá trị này dùng để đặt tên cấu phần phần mềm đầu ra của các thao tác được tạo bằng phương thức này.
language default = 'c++'
Hiện chỉ hỗ trợ C++. Đừng sử dụng tham số này.
mặc định = Sai
Có phải luôn liên kết thư viện này hay không.
additional_inputs mặc định = []
Đố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.
disallow_static_libraries mặc định = Sai
Có nên tạo thư viện tĩnh hay không.
disallow_dynamic_library mặc định = Sai
Có nên tạo thư viện động hay không.
grep_includes File; or None; mặc định = Không có

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

Khô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 đặt cho hành động cụ thể.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
action_name bắt buộc
Tên 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 bắt buộc
Biến bản dựng dùng để mở rộng mẫu.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Trả về yêu cầu thực thi của một hành động cụ thể.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
action_name bắt buộc
Tên 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ờ hiệu dòng lệnh đã 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 ghép và tốt nhất là không nên sử dụng hoặc ít nhất là không nên phân tích lâu hơn. Đang xử lý hàm hiệu quả về bộ nhớ trả về Args.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
action_name bắt buộc
Tên 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 bắt buộc
Biến bản dựng dùng để 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ể.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
action_name bắt buộc
Tên 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 đã cho được bật trong cấu hình tính năng.

Các tham số

Thông số Nội dung mô tả
feature_configuration bắt buộc
Cấu hình tính năng cần truy vấn.
feature_name bắt buộc
Tên tính năng.

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=[], grep_includes=None, additional_outputs=unbound)

Phải được sử dụng cho liên kết bắc cầu C++.

Các tham số

Thông số Nội dung mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để truy vấn.
cc_toolchain bắt buộc
CcToolchainInfo.
compilation_outputs CcCompilationOutputs; or None; mặc định = Không
Kết quả biên dịch chứa các tệp đối tượng cần liên kết.
default = []
Danh sách bổ sung về trình liên kết.
linking_contexts mặc định = []
Liên kết ngữ cảnh từ các phần phụ thuộc cần liên kết với ngữ cảnh liên kết do quy tắc này tạo ra.
name bắt buộc
Giá trị này dùng để đặt tên cấu phần phần mềm đầu ra của các thao tác được tạo bằng phương thức này.
language default = 'c++'
Hiện chỉ hỗ trợ C++. Đừng sử dụng tham số này.
output_type default = 'executable'
Có thể là "executable" hoặc "dynamic_library".
default = True
True để liên kết các phần phụ thuộc theo cách tĩnh, False một cách linh động.
stamp default = 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, trong trường hợp output_type là "executable" (có thể 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 luôn bị loại trừ. Nếu là -1, sẽ sử dụng hành vi mặc định và có thể bị cờ --[no]tem ghi đè. Bạn không nên đặt (hoặc đặt thành 0) khi tạo đầu ra có thể thực thi cho các quy tắc kiểm thử.
additional_inputs sequence; or depset; mặc định = []
Đối với dữ liệu đầu vào bổ sung cho hành động liên kết, ví dụ: liên kết tập lệnh.
grep_includes File; or None; mặc định = Không có
additional_outputs sequence; default = unbound
Đối với đầu ra bổ sung cho hành động liên kết, ví dụ: tệp bản đồ.

merge_cc_infos

CcInfo cc_common.merge_cc_infos(direct_cc_infos=[], cc_infos=[])

Hợp nhất nhiều CcInfo thành một.

Các tham số

Thông số Nội dung mô tả
direct_cc_infos default = []
Danh sách CcInfo cần hợp nhất, trong đó tiêu đề sẽ được xuất bằng các trường trực tiếp trong nhà cung cấp được trả về.
cc_infos default = []
Danh sách CcInfo cần hợp nhất, trong đó tiêu đề sẽ không được xuất bởi các trường trực tiếp trong nhà cung cấp được trả về.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Hợp nhất nhiều CompilationContexts thành một.

Các tham số

Thông số Nội dung mô tả
compilation_contexts mặc định = []
Danh sách CompilationContexts cần hợp nhất. Tiêu đề của mỗi ngữ cảnh sẽ được các trường trực tiếp xuất trong trình cung cấp được trả về.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Hợp nhất các kết quả biên dịch.

Các tham số

Thông số Nội dung mô tả
compilation_outputs mặc định = []