cc_Common

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

Thông số

Thông số 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 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=[])

Nên dùng để biên dịch C++. Trả về một bộ dữ liệu gồm (CompilationContext, CcCompilationOutputs).

Thông số

Thông số Mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để được truy vấn.
cc_toolchain nhà cung cấp CcToolchainInfo
bắt buộc phải được sử dụng.
srcs mặc định là []
Danh sách các tệp nguồn cần biên dịch.
public_hdrs mặc định là []
Danh sách tiêu đề cần thiết để biên dịch src và có thể được đưa vào theo quy tắc phụ thuộc.
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 nhọn và dấu ngoặc kép. Thường được truyền bằng -I. Truyền đến các phần phụ thuộc một cách bắc cầu.
quote_includes mặc định là []
Đườ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, ví dụ: #include "foo/bar/header.h". Các đường dẫn này có thể tương đối so với thư mục gốc của exec hoặc tuyệt đối. Thường được truyền bằng -iquote. Truyền đến các phần phụ thuộc một cách bắc cầu.
system_includes mặc định là []
Đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu bằng dấu nhọn, ví dụ: #include <foo/bar/header.h>. Các đường dẫn này có thể tương đối so với thư mục gốc của exec hoặc tuyệt đối. Thường được truyền bằng -isystem. Truyền đến các phần phụ thuộc một cách bắc cầu.
framework_includes mặc định là []
Đường dẫn tìm kiếm cho các 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. Truyền đến các phần phụ thuộc một cách bắc cầu.
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. Truyền đến các phần phụ thuộc một cách bắc cầu.
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 đến các phần phụ thuộc một cách bắc cầu.
include_prefix mặc định là ''
Tiền tố để thêm vào đường dẫn của tiêu đề của quy tắc này. Khi được đặt, 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 là giá trị của thuộc tính này được thêm vào đầu đườ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 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, 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 các tiêu đề đó mà không cần tiền tố này. Nếu đó là đường dẫn tương đối, thì đường dẫn đó sẽ được coi là đường dẫn tương đối với gói. Nếu là đường dẫn tuyệt đối, thì đường dẫn này được hiểu là đường dẫn tương đối đến 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 là []
Danh sách bổ sung các tuỳ chọn biên dịch.
compilation_contexts mặc định là []
Các 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 cho cấu phần phần mềm đầu ra của các hành động do phương thức này tạo ra. Xem thêm đối số `main_output`.
disallow_pic_outputs mặc định là False
Liệu có tạo đầu ra PIC hay không.
disallow_nopic_outputs mặc định là False
Liệu có 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 bản sao Feature_Configuration. Yêu cầu mảnh cấu hình cpp.

Thông số

Thông số Mô tả
ctx ctx; hoặc None; mặc định là None
Ngữ cảnh quy tắc.
cc_toolchain required
cc_toolchain mà chúng ta định cấu hình các tính năng.
language string; hoặc None; mặc định là None
Ngôn ngữ cần định cấu hình: c++ hoặc objc (mặc định là c++)
requested_features mặc định là []
Danh sách các tính năng sẽ được bật.
unsupported_features 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, 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 trình cung cấp CcToolchainConfigInfo

Thông số

Thông số Mô tả
ctx bắt buộc
Bối cảnh của quy tắc.
features giá trị mặc định là []
Chứa tất cả thông số kỹ thuật gắn cờ cho một tính năng.

Đối số:

name: Tên đối tượng. Bạn có thể giới thiệu một tính năng mà không cần thay đổi Bazel bằng cách thêm phần "feature" (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.

enabled: Nếu có giá trị "True", tính năng này sẽ được bật trừ phi 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ợ.

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

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

requires: Danh sách các nhóm 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ỳ bộ tính năng nào áp dụng đầy đủ, tức là khi tất cả tính năng của một bộ 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 các tính năng khác đang bật. Ví dụ: sử dụng tính năng này để lọc cờ tuỳ thuộc vào chế độ bản dựng được bật (opt / fastbuild / dbg).

implies: Một 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.

provides: Danh sách tên mà tính nă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 chứa cùng một giá trị với "cung cấp" trong 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. Sử dụng tính năng này để đảm bảo rằng các tính năng không tương thích không thể vô tình được kích hoạt cùng một lúc, dẫn đến việc khó chẩn đoán lỗi trình biên dịch.
action_configs mặc định là []
Cấu hình hành động tương ứng với một hành động 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 diễn ra theo cùng một ngữ nghĩa như các tính năng: một tính năng có thể "yêu cầu" hoặc "ngụ ý" một cấu hình hành động giống như cách một tính năng khác sẽ làm.

Đối số:

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

enabled: Nếu 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 thao tác này là không được hỗ trợ.

tools: 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 khớp với cấu hình tính năng. Lỗi sẽ xảy ra nếu không có công cụ nào khớp với cấu hình tính năng được cung cấp. Do đó, bạn nên cung cấp công cụ mặc định với một bộ tính năng trống.

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

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

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 nhất định của cấu phần phần mềm đầu vào hoặc đầu ra 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. Ví dụ về danh mục 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 phần mở rộng, tên này đượ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.

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ố, hậu tố này đượ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à []

Thư mục bao gồm 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 exec.

Các đườ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 các đường dẫn C++ để biên dịch C. Việc này là 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 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 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.

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

host_system_name chuỗi; 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").
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; hoặc None; mặc định là None
ABI đang sử dụng, là phiên bản gcc. Ví dụ: "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 tôi đang sử dụng.
tool_paths mặc định là []
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 kín) hoặc đường dẫn tương đối so với gói của cc_toolchain.

make_variables mặc định là []
Một biến tạo được cung cấp quyền truy cập cho các quy tắc.
builtin_sysroot string; hoặc None; 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.
cc_target_os string; hoặc None; mặc định là None
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 CompilationContext.

Thông số

Thông số 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
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 dấu nhọn, tức là #include <foo/bar/header.h>. Các đường dẫn này có thể tương ứng với thư mục gốc của exec hoặc tuyệt đối. Thường được truyền bằng -isystem
includes 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 bằng cả dấu ngoặc nhọn và dấu ngoặc kép.Thường được truyền bằng -I
quote_includes 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 bằng dấu ngoặc kép, tức là #include "foo/bar/header.h". Các đường dẫn này có thể tương đối so với thư mục gốc của exec hoặc tuyệt đối. Thường được truyền bằng -iquote
framework_includes mặc định là unbound
Tập hợp các đường dẫn tìm kiếm khung cho tệp tiêu đề (chỉ dành cho 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 theo cách bắc cầu đến những 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 tải cho 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.

Thông số

Thông số Mô tả
objects depset; hoặc None; mặc định là None
Danh sách các tệp đối tượng.
pic_objects depset; hoặc None; mặc định là None
Danh sách 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 các thao tác biên dịch.

Thông số

Thông số Mô tả
cc_toolchain bắt buộc
cc_toolchain mà chúng tôi đ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 truyền source_file tại đây thay vì thêm 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ị cờ trình biên dịch đúng cá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 truyền output_file tại đâ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ị chính xác cờ trình biên dịch.
user_compile_flags trình tự của chuỗi; hoặc None; giá trị mặc định là None
Danh sách các cờ biên dịch bổ sung (copts).
include_directories depset; hoặc None; mặc định là None
Depset của các thư mục bao gồm.
quote_include_directories depset; hoặc None; mặc định là None
Depset của trích dẫn bao gồm các thư mục.
system_include_directories depset; hoặc None; mặc định là None
Ngừng bao gồm các thư mục chứa trong hệ thống.
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
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 Bitcode được nhập vào phần phụ trợ LTO.
thinlto_output_object_file chuỗi; 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 mặc định là False
Khi đúng, 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 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 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

Thông số

Thông số Mô tả
actions bắt buộc
đối tượng actions.
feature_configuration mặc định là None
feature_configuration cần 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 ảnh tĩnh được liên kết.
dynamic_library File; hoặc None; mặc định là None
File của thư viện động sẽ liên kết. Luôn được 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 File; hoặc None; mặc định là None
File của thư viện giao diện sẽ được 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 thư viện/đối tượng tĩnh trong khối --whole_archive 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, 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 dùng để liên kết các hành động.

Thông số

Thông số Mô tả
bắt buộc
cc_toolchain mà chúng tôi đang tạo biến bản dựng.
bắt buộc
Cấu hình của tính năng cần truy vấn.
None; hoặc depset; giá trị mặc định là None
Depset của 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; mặc định là None
Số lượng thư mục mà trình tải sẽ tìm kiế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 tham số không bắt buộc.
mặc định là None
Đường dẫn tệp .def không bắt buộc.
giá trị mặc định là True
"True" khi sử dụng trình liên kết, False khi 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).
mặc định là False
Đúng khi tạo thư viện động, Sai khi tạo thư viện thực thi hoặc thư viện tĩnh. 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 lỗi 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 biến "strip_debug_symbols". Biến này thường dùng để 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.

Thông số

Thông số Mô tả
owner bắt buộc
Nhãn của mục tiêu đã tạo tất cả tệp được sử dụng trong dữ liệu đầu vào này.
libraries None; hoặc depset; 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ỗi; mặc định là None
Cờ liên kết của 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 cách thứ hai vì cách này chỉ được giữ lại cho mục đích tương thích, depset sẽ được làm phẳng. Nếu bạn muốn phổ biến user_link_flags 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; mặc định là None
Đố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 các tập lệnh.

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.

Thông số

Thông số Mô tả
linker_inputs None; hoặc depset; mặc định là None
Depset của LinkerInput.
None; hoặc trình tự; giá trị mặc định là None
Không dùng nữa. Thông số này không còn được dùng nữa và sẽ sớm bị loại bỏ. Vui lòng khô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 việc sắp bị xoá.
Danh sách LibraryToLink.
None; hoặc trình tự; giá trị mặc định là None
Không dùng nữa. Thông số này không còn được dùng nữa và sẽ sớm bị loại bỏ. Vui lòng không phụ thuộc vào tính năng 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 sắp bị xoá.
Danh sách 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 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 yêu cầu sắp xoá.
Để thêm dữ liệu đầu vào cho thao tác 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)

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

Thông số

Thông số Mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để được truy vấn.
cc_toolchain bắt buộc
phải dùng nhà cung cấp 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 bổ sung các tuỳ chọn liên kết.
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ào 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 hay thư viện.
name bắt buộc
Giá trị 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 do phương thức này tạo ra.
language mặc định là 'c++'
Hiện chỉ hỗ trợ C++. Không sử dụng thông số này.
mặc định là False
Liệu thư viện này có phải luôn được liên kết hay không.
additional_inputs mặc định là []
Để nhập thêm thông tin vào hành động liên kết, ví dụ: liên kết tập lệnh.
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

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 đã cho.

Thông số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình của 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 các 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
Tạo các biến đượ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 đã cho.

Thông số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình của tính năng cần truy vấn.
action_name bắt buộc
Tên thao tác. 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. Chúng tôi đang tiếp tục nghiên cứu về hàm tiết kiệm bộ nhớ trả về Args.

Thông số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình của 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 các 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
Tạo các biến được dùng cho tính nă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.

Thông số

Thông số Mô tả
feature_configuration bắt buộc
Cấu hình của tính năng cần truy vấn.
action_name bắt buộc
Tên thao tác. 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 trước được bật trong cấu hình tính năng.

Thông số

Thông số 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 của 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=[], additional_outputs=unbound)

Nên dùng để liên kết bắc cầu C++.

Thông số

Thông số Mô tả
actions bắt buộc
đối tượng actions.
feature_configuration bắt buộc
feature_configuration để được truy vấn.
cc_toolchain nhà cung cấp CcToolchainInfo
bắt buộc phải được sử dụng.
compilation_outputs CcCompilationOutputs; hoặc None; giá trị mặc định là None
Đầ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 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ào ngữ cảnh liên kết do quy tắc này tạo.
name bắt buộc
Giá trị 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 do phương thức này tạo ra.
language mặc định là 'c++'
Hiện 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".
giá trị mặc định là True
True để liên kết các phần phụ thuộc theo cách tĩnh, False linh độ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 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, hãy sử dụng hành vi mặc định. Hành vi này có thể bị ghi đè bằng cờ --[no]stamp. Bạn không nên đặt giá trị này (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 bổ sung cho thao tác liên kết, ví dụ: liên kết tập lệnh.
additional_outputs sequence; mặc định là unbound
Đối với các kết quả đầu ra khác cho thao tác liên kết, ví dụ: tệp ánh xạ.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

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

Thông số

Thông số 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 xuất bằng các trường trực tiếp 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.

Thông số

Thông số Mô tả
compilation_outputs mặc định là []