cc_Common

Báo cáo sự cố Xem nguồn

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 đã cho được bật trong cấu hình tính năng.

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 có 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=[])

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

Tham số

Thông số Nội dung mô tả
actions bắt buộc
actions đối tượng.
feature_configuration bắt buộc
feature_configuration để truy vấn.
cc_toolchain bắt buộc phải dùng
CcToolchainInfo.
srcs mặc định là []
Danh sách tệp nguồn sẽ được biên dịch.
public_hdrs mặc định là []
Danh sách các tiêu đề cần thiết để biên dịch src 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 là []
Danh sách các 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 sequence; hoặc depset; mặc định là []
Đườ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 với -I. Được truyền cho người phụ thuộc theo cách chuyển tiếp.
quote_includes 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 kép, ví dụ: #include "foo/bar/header.h". Các giá trị này có thể tương đối so với căn thực thi hoặc căn bậc tuyệt đối. Thường được truyền với -i Hoành trích. Được truyền cho người phụ thuộc theo cách chuyển tiếp.
system_includes 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 góc, ví dụ: #include <foo/bar/header.h>. Các đường dẫn này có thể tương đối so với gốc exec hoặc tuyệt đối. Thường được truyền bằng -isystem. Được truyền cho người phụ thuộc theo cách chuyển tiếp.
framework_includes giá trị mặc định là []
Đường dẫn tìm kiếm cho các tệp tiêu đề trong các khung của Apple. Các giá trị này có thể tương đối so với căn thực thi hoặc căn bậc tuyệt đối. Thường được truyền với -F. Được truyền cho người phụ thuộc theo cách chuyển tiếp.
defines 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 người phụ thuộc theo cách chuyển tiếp.
local_defines 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 người phụ thuộc theo cách bắc cầu.
include_prefix mặc định là ''
Tiền tố cần thêm vào đường dẫn của tiêu đề của quy tắc này. Khi bạn đặt chính sách này, các 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 dải_include_prefix sẽ bị xoá trước khi thêm tiền tố này.
strip_include_prefix mặc định là ''
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, các 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ì đường dẫn này sẽ được chọn là đường dẫn tương đối cho gói. Nếu chỉ số đó là giá trị tuyệt đối, thì nó đượ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 sau khi loại bỏ tiền tố này.
user_compile_flags mặc định là []
Danh sách tuỳ chọn biên dịch bổ sung.
compilation_contexts mặc định là []
Tiêu đề của các phần phụ thuộc dùng để biên dịch.
name bắt buộc
Thuộc tính này dùng để đặt tên cho cấu phần phần mềm đầu ra của các hành động đượ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 là False
Có nên tạo đầu ra PIC hay không.
disallow_nopic_outputs mặc định là False
Liệu có nên tạo đầu ra NOPIC hay không.
additional_inputs mặc định là []
Danh sách các tệp bổ sung cần thiết để biên dịch srcs

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_Config. Yêu cầu phải có mảnh cấu hình cpp.

Tham số

Thông số Nội dung mô tả
ctx ctx; hoặc None; mặc định là None
Ngữ cảnh quy tắc.
cc_toolchain bắt buộc
cc_toolchain mà chúng ta đị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 mặc định là []
Danh sách tính năng cần bật.
unsupported_features mặc định là []
Danh sách 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, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None)

Tạo một nhà cung cấp CcToolchainConfigInfo

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 là []
Chứa tất cả thông số kỹ thuật về 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 thay đổi Bazel bằng cách thêm một phần "tính năng" vào chuỗi công cụ rồi thêm chuỗi tương ứng làm tính năng trong tệp BUILD.

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

flag_sets: Danh sách FlagSet. Nếu tính năng đã cho được bật, bộ cờ sẽ được áp dụng cho các hành động được chỉ định.

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

requires: Danh sách các 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 này được hỗ trợ nếu bất kỳ nhóm 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 nhóm tính năng được bật. Nếu bạn bỏ qua requires, tính năng này sẽ được hỗ trợ độc lập với những tính năng khác được bật. Sử dụng ví dụ này để lọc cờ tuỳ thuộc vào chế độ xây dựng được bật (opt / fastbuild / dbg).

implies: Danh sách chuỗi gồm 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 hoặc cấu hình hành động ngụ ý nào, thì tính năng này cũng sẽ không được bật (ẩn).

provides: Danh sách các tên của đối tượng này xung đột.

Bạn không thể bật một tính năng nếu:
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 có cùng giá trị với “dịch vụ” trong 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. Sử dụng quy tắc 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 khó chẩn đoán lỗi trình biên dịch.
action_configs mặc định là []
Một cấu hình hành động tương ứng với một hành động trong Bazel và cho phép chọn một 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 có cùng ngữ nghĩa với 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 theo cách tương tự như với một tính năng khác.

Đối số:

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

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

tools: Công cụ được áp dụng cho thao tác 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. Hệ thống sẽ báo lỗi nếu không có công cụ nào khớp với cấu hình đã cung cấp. Do đó, bạn nên cung cấp công cụ mặc định có bộ tính năng trống.

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

implies: Danh sách tính năng hoặc cấu hình hành động được tự động bật 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 thao tác ngụ ý nào, thì cấu hình thao tác này cũng sẽ không được bật (ẩn).

artifact_name_patterns 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 hành động.

Đối số:

category_name: 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 trong Bazel. Các 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, cấu phần phần mềm dùng để tạo tên cấu phần phần mềm dựa trên tên mục tiêu.

extension: 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ố, cấu phần phần mề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 là []

Các thư mục tích hợp sẵn dùng để biên dịch C++. Các đường dẫn nà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 đối so với thư mục gốc thực thi.

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".

Chúng tôi hiện cũng sử dụng đường dẫn C++ cho quá trình biên dịch C, điều này an toàn miễn là không có 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 phải sử dụng %sysroot% thay vì đường dẫn bao gồm, đồng thời 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. Phải có thể dùng tên này làm tên thư mục trong đường dẫn.

Hà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; mặc định là None
Bị 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"). Nếu chuỗi là "macosx", nền tảng được giả định là MacOS. Nếu không, Linux
compiler 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 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ác câu lệnh Select() hoặc tạo config_setting tùy chỉnh nếu cài đặt hiện có không đủ.
abi_version string; hoặc None; mặc định là None
Abi đang được sử dụng, là một phiên bản gcc. E.g.: "gcc-3,4"
abi_libc_version string; hoặc None; mặc định là None
Phiên bản glibc mà abi mà chúng ta đang dùng.
tool_paths mặc định là []
Vị trí công cụ.

Đối số:

name: Tên của 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 ẩn) hoặc đường dẫn tương ứng với gói của cc_toolchain.

make_variables mặc định là []
Biến make 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. 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 lựa 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ố Nội dung mô tả
headers 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 mặc định là unbound
Nhóm đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bằng dấu ngoặc góc, tức là #include <foo/bar/header.h>. Các đường dẫn này có thể tương đối với thư mục gốc thực thi hoặc thư mục tuyệt đối. Thường được truyền với -isystem
includes 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 chuyển với -I
quote_includes mặc định là unbound
Nhóm đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu bằng 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 so với căn thực thi hoặc căn bậc tuyệt đối. Thường được truyền với -iTrích dẫn
framework_includes giá trị mặc định là unbound
Nhóm đường dẫn tìm kiếm khung cho các tệp tiêu đề (chỉ trên nền tảng Apple)
defines 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 bắc cầu cho người phụ thuộc.
local_defines 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 chuyển tiếp cho những phần phụ thuộc.

create_compilation_outputs

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

Tạo đối tượng kết quả biên dịch.

Tham số

Thông số Nội dung mô tả
objects depset; hoặc None; mặc định là None
Danh sách tệp đối tượng.
pic_objects depset; hoặc None; 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ố Nội dung mô tả
cc_toolchain bắt buộc
cc_toolchain mà chúng ta đang tạo biến bản 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 là None
Tệp nguồn không bắt buộc để biên dịch. Vui lòng ưu tiên chuyển source_file vào đây và thêm tệp này vào cuối dòng lệnh được tạo từ cc_common.get_memory_ineffective_command_line, vì trình biên dịch có quyền hạn của tác giả chuỗi công cụ để chỉ định và định vị đúng cờ trình biên dịch.
output_file 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 chuyển output_file tại đây thêm vào cuối dòng lệnh được tạo từ cc_common.get_memory_ineffective_command_line, vì điều này có thể do tác giả của chuỗi công cụ chỉ định và định vị chính xác 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 (copts).
include_directories depset; hoặc None; mặc định là None
Trì hoãn các thư mục bao gồm.
quote_include_directories depset; hoặc None; giá trị mặc định là None
Tạm hoãn trích dẫn bao gồm các thư mục.
system_include_directories depset; hoặc None; mặc định là None
Sự trì hoãn của hệ thống bao gồm các thư mục.
framework_include_directories depset; hoặc None; mặc định là None
Depset của khung bao gồm các thư mục.
preprocessor_defines depset; hoặc None; mặc định là None
Depset của bộ tiền xử lý xác định.
thinlto_index string; hoặc None; mặc định là None
đường dẫn tệp chỉ mục LTO.
thinlto_input_bitcode_file string; hoặc None; mặc định là None
Tệp mã Bitcode dùng để nhập vào phần phụ trợ LTO.
thinlto_output_object_file string; hoặc None; mặc định là None
Tệp đối tượng do phần phụ trợ LTO xuất ra.
use_pic giá trị mặc định là False
Khi giá trị là true (đúng), thì quá trình biên dịch sẽ tạo mã độc lập về vị trí.
add_legacy_cxx_options mặc định là False
Không sử dụng.
variables_extension dict; 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.

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ố Nội dung mô tả
actions bắt buộc
actions đối tượng.
feature_configuration mặc định là None
feature_configuration được truy vấn.
cc_toolchain mặc định là nhà cung cấp None
CcToolchainInfo sẽ được sử dụng.
static_library Tệp; hoặc None; giá trị mặc định là None
File của thư viện tĩnh cần liên kết.
pic_static_library Tệp; hoặc None; mặc định là None
File của thư viện tĩnh cần liên kết.
dynamic_library Tệp; hoặc None; mặc định là None
File của 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; 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
mặc định là False
Liệu có liên kết các thư viện/đối tượng tĩnh trong khối --wwide_Lưu trữ hay không.
string; mặc định là ''
Ghi đè đường dẫn mặc định của đường liên kết thư viện động trong thư mục solib. Chuỗi trống để sử dụng giá trị mặc định.
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.

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, 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ố Nội dung mô tả
bắt buộc
cc_toolchain mà chúng ta đang tạo biến bản dựng.
bắt buộc
Cấu hình tính năng cần truy vấn.
None; hoặc depset; giá trị mặc định là None
Tạm hoãn 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; hoặc depset; giá trị mặc định là None
Sự chậm trễ của các thư mục mà trình tải sẽ tìm thư viện trong thời gian chạy.
None; hoặc sequence; mặc định là None
Danh sách các cờ liên kết bổ sung (linkopts).
mặc định là None
Đường dẫn tệp đầu ra không bắt buộc.
mặc định là None
Đường dẫn tệp thông số không bắt buộc.
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á tên hành động này với tên hành động được sử dụng (is_using_linker = True để liên kết thư viện động hoặc thực thi, is_using_linker = False để lưu trữ thư viện tĩnh).
mặc định là False
True khi tạo thư viện động, False khi tạo thư viện động hoặc thư viện thực thi. Phương thức gọi chịu trách nhiệm đồng bộ hoá tên này 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.
giá trị mặc định là True
Khi bạn đặt thành False, bazel sẽ hiển thị biến "strip_debug_symbols" để sử dụng trình liên kết nhằm xoá các biểu tượng gỡ lỗi khỏi tệp đầu ra.
mặc định là False
Khi được đặt thành true, biến "is_cc_test" sẽ được đặt.
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ố 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 dùng trong dữ liệu nhập này.
libraries None; hoặc depset; giá trị mặc định là None
Danh sách LibraryToLink.
None; hoặc phần phụ thuộc của chuỗi; hoặc trình tự của chuỗis; giá trị 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 tử thứ hai vì chỉ được giữ lại cho mục đích tương thích, còn phần phụ thuộc sẽ được làm phẳng. Nếu bạn muốn truyền user_link_flags qua các depsets() không được làm phẳng, hãy gói chúng trong một LinkingInput để chúng không được 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ố Nội dung mô tả
linker_inputs None; hoặc depset; mặc định là None
Độ trễ của LinkerInput.
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 không phụ thuộc vào nó. Tính năng này sẽ bị tắt bằng --+incompatible_require_linker_input_cc_api. Hãy sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc xoá mã sắp xảy ra.
Danh sách gồm LibraryToLink.
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 không phụ thuộc vào nó. Tính năng này sẽ bị tắt bằng --+incompatible_require_linker_input_cc_api. Hãy sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc xoá mã sắp xảy ra.
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 không phụ thuộc vào nó. Tính năng này sẽ bị tắt bằng --+incompatible_require_linker_input_cc_api. Hãy sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc xoá mã sắp xảy ra.
Đối với các 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_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)

Bạn nên dùng các quy tắc này để tạo các quy tắc của thư viện có thể truyền thông tin xuống dưới để 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).

Tham số

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

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 vì 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 sẽ được đặt cho hành động cụ thể.

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 có 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
Tạo các biến cần 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 đối với hành động đã cho.

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 có 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 đã làm phẳng cho thao tác 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 là không nên phân tích kéo dài hơn. Đang tiến hành xử lý hàm hiệu quả về bộ nhớ, trả về Args.

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 có 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
Tạo các biến sẽ 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 đã cho.

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 có 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.

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 đối tượ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=[], additional_outputs=unbound)

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

Tham số

Thông số Nội dung mô tả
actions bắt buộc
actions đối tượng.
feature_configuration bắt buộc
feature_configuration để truy vấn.
cc_toolchain bắt buộc phải dùng
CcToolchainInfo.
compilation_outputs CcCompilationOutputs; hoặc None; mặc định là None
Kết quả biên dịch đầu ra chứa các tệp đối tượng cần liên kết.
mặc định là []
Danh sách bổ sung các tuỳ chọn trình liên kết.
linking_contexts mặc định là []
Liên kết ngữ cảnh từ các phần phụ thuộc sẽ được liên kết với ngữ cảnh liên kết được tạo bởi quy tắc này.
name bắt buộc
Thuộc tính này dùng để đặt tên cho cấu phần phần mềm đầu ra của các hành động được tạo bằng phương thức này.
language mặc định là 'c++'
Hiện tại, chỉ hỗ trợ C++. Không sử dụng thông số này.
output_type mặc định là 'executable'
Có thể là "executable" hoặc "dynamic_library".
mặc định là True
Đúng để liên kết các phần phụ thuộc theo cách tĩnh, Sai động.
stamp 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à "executable". 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 có thể bị cờ --[no]đóng dấu 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; hoặc depset; mặc định là []
Đối với các dữ liệu đầu vào khác cho hành động liên kết, ví dụ: liên kết tập lệnh.
additional_outputs sequence; giá trị mặc định là unbound
Đối với kết quả bổ sung cho hành động liên kết, ví dụ: tệp bản đồ.

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ố Nội dung mô tả
compilation_contexts mặc định là []
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 trong trình cung cấp được trả về xuất.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

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

Tham số

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