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

Tham số

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name chuỗi; 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

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=[], conly_flags=[], cxx_flags=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], module_interfaces=unbound)

Nên được dùng để biên dịch C++. Trả về bộ giá trị (CompilationContext, CcCompilationOutputs).

Tham số

Tham số Mô tả
actions actions; required
actions object.
feature_configuration FeatureConfiguration; bắt buộc phải truy vấn
feature_configuration.
cc_toolchain Thông tin bắt buộc
nhà cung cấp CcToolchainInfo sẽ được sử dụng.
srcs trình tự; mặc định là []
Danh sách các tệp nguồn cần được biên dịch.
public_hdrs trình tự; mặc định là []
Danh sách các tiêu đề cần thiết để biên dịch srcs và có thể được đưa vào theo quy tắc phụ thuộc một cách bắc cầu.
private_hdrs trình tự; mặc định là []
Danh sách các tiêu đề cần thiết để biên dịch srcs và KHÔNG được đưa vào theo các quy tắc phụ thuộc.
includes trình tự; 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. Được truyền đến các phần phụ thuộc một cách bắc cầu.
quote_includes trình tự; 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". Đường dẫn này có thể tương đối so với thư mục gốc của tệp thực thi hoặc tuyệt đối. Thường được truyền bằng -iquote. Được truyền đến các phần phụ thuộc một cách bắc cầu.
system_includes sequence; giá trị 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 nhọn, ví dụ: #include <foo/bar/header.h>. Các đường dẫn này có thể tương ứng với thư mục gốc thực thi hoặc tuyệt đối. Thường được truyền bằng -isystem. Được truyền đến các phần phụ thuộc một cách bắc cầu.
framework_includes trình tự; mặc định là []
Đường dẫn tìm kiếm cho các tệp tiêu đề từ các khung của Apple. Đường dẫn này có thể tương đối so với thư mục gốc của tệp thực thi hoặc tuyệt đối. Thường được truyền bằng -F. Được truyền đến các phần phụ thuộc một cách bắc cầu.
defines trình tự; 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 đến các phần phụ thuộc một cách bắc cầu.
local_defines trình tự; 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 chuỗi; mặc định là ''
Tiền tố cần thêm vào đường dẫn của tiêu đề trong 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 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 strip_include_prefix sẽ bị xoá trước khi tiền tố này được thêm vào.
strip_include_prefix chuỗi; mặc định là ''
Tiền tố cần loại bỏ khỏi đường dẫn của tiêu đề trong 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 tại đường dẫn của chúng với tiền tố này bị cắt. Nếu là đường dẫn tương đối, thì đường dẫn này được coi là đường dẫn tương đối của gói. Nếu là đường dẫn tuyệt đối, thì đường dẫn đó được hiểu là đườ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 vào sau khi tiền tố này bị xoá.
user_compile_flags trình tự; mặc định là []
Danh sách các lựa chọn biên dịch bổ sung.
conly_flags trình tự; mặc định là []
Danh sách các lựa chọn biên dịch bổ sung cho quá trình biên dịch C.
cxx_flags trình tự; mặc định là []
Danh sách các lựa chọn biên dịch bổ sung cho quá trình biên dịch C++.
compilation_contexts sequence; mặc định là []
Tiêu đề từ các phần phụ thuộc dùng để biên dịch.
name chuỗi; bắt buộc
Tham số này dùng để đặt tên cho các cấu phần phần mềm đầu ra của những thao tác do phương thức này tạo. Xem thêm đối số "main_output".
disallow_pic_outputs bool; mặc định là False
. Có nên tạo đầu ra PIC hay không.
disallow_nopic_outputs bool; mặc định là False
Có nên tạo đầu ra NOPIC hay không.
additional_inputs sequence; mặc định là []
Danh sách các tệp bổ sung cần thiết để biên dịch srcs
module_interfaces trình tự; mặc định là unbound
Danh sách các tệp nguồn giao diện mô-đun cần được biên dịch. Lưu ý: đây là một tính năng thử nghiệm, chỉ được bật bằng --experimental_cpp_modules

configure_features

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

Tạo một thực thể feature_configuration. Yêu cầu đoạn cấu hình cpp.

Tham số

Tham số Mô tả
ctx ctx; bắt buộc
Ngữ cảnh quy tắc.
cc_toolchain Thông tin; 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; 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 trình tự; mặc định là []
Danh sách các tính năng cần bật.
unsupported_features trình tự; mặc định là []
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

None 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ố

Tham số Mô tả
ctx ctx; bắt buộc
Ngữ cảnh quy tắc.
features trình tự; mặc định là []
Chứa tất cả các quy cách về cờ cho một tính năng.

Đối số:

name: Tên của tính nă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 một 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 là "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 là không được hỗ trợ.

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

env_sets: danh sách EnvSet. Nếu tính năng đã cho được bật, các bộ env 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ỳ tập tính chất nào áp dụng đầy đủ, tức là khi tất cả các tính năng của một tập tính chất được bật. Nếu bạn bỏ qua requires, tính năng này sẽ được hỗ trợ mà không phụ thuộc vào những tính năng khác được bật. Ví dụ: sử dụng cờ này để lọc các cờ tuỳ thuộc vào chế độ bản dựng đã bật (opt / fastbuild / dbg).

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

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 cấu hình tính năng hoặc thao tác khác mà chúng ta muốn bật.
- provides chứa cùng một giá trị với "provides" trong một cấu hình tính năng hoặc thao tác khác mà chúng ta muốn bật. Hãy sử dụng tính năng này để đảm bảo rằng bạn không 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 trình biên dịch khó chẩn đoán.
action_configs sequence; default is []
Cấu hình thao tác tương ứng với một thao tác 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 theo cách tương tự như 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 là "True", thao tác này sẽ được bật trừ phi một loại quy tắc đánh dấu rõ ràng 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ó một tập tính chất 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 tính năng được cung cấp. Vì lý do đó, bạn nên cung cấp một công cụ mặc định có một bộ tính năng trống.

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

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

artifact_name_patterns sequence; 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ố:

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 tiện ích này, bạn có thể 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ố, 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.

cxx_builtin_include_directories trình tự; mặc định là []

Các thư mục bao gồm tích hợp để biên dịch C++. Đây phải là đường dẫn chính xác mà trình biên dịch sử dụng và thường là đường dẫn 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".

Hiện tại, chúng tôi cũng sử dụng các đường dẫn C++ để biên dịch C. Điều này sẽ 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 cho blaze thông tin cần thiết để thực hiện các thay thế chính xác.

toolchain_identifier string; required

Giá trị nhận dạng riêng biệt của chuỗi công cụ trong bản phát hành crosstool. Bạn phải có thể dùng tên này làm tên thư mục trong một đường dẫn.

Tên này 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 chuỗi; hoặc None; mặc định là None
. Không được dùng nữa. Tên hệ thống GNU. Chuỗi này được hiển thị cho CcToolchainInfo.target_gnu_system_name.
target_cpu chuỗi; hoặc None; mặc định là None
. Không dùng nữa: Thay vào đó, hãy sử dụng các ràng buộc dựa trên CPU. Nếu chuỗi là "k8", `target_cpu` sẽ bị bỏ qua trong tên tệp của dữ liệu hồ sơ FDO thô.
target_libc chuỗi; hoặc None; mặc định là None
. Không dùng nữa: Thay vào đó, hãy sử dụng cá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, hệ điều hành sẽ là Linux. Chuỗi này được hiển thị cho CcToolchainInfo.libc.
compiler chuỗi; 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ị cho `@bazel_tools//tools/cpp:compiler (compiler_flag)` dưới dạng 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 các chế độ cài đặt hiện có không đủ.
abi_version chuỗi; hoặc None; 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 được đặt thành ABI biến chuỗi công cụ C++.
abi_libc_version chuỗi; hoặc None; mặc định là None
. Phiên bản glibc mà abi chúng ta đang sử 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ự; mặc định là []
Vị trí của 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 khép kín) hoặc đường dẫn tương đối so với gói cc_toolchain.

make_variables sequence; default is []
Một biến make được cung cấp cho các quy tắc.
builtin_sysroot chuỗi; hoặc None; mặc định là None
sysroot tích hợp. Nếu không có thuộc tính này, Bazel sẽ 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ố

Tham số Mô tả
headers mặc định là unbound
Tập hợp các 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 ngoặc nhọn, 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 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 trích dẫn, tức là #include "foo/bar/header.h". Đường dẫn này có thể tương đối so với thư mục gốc của tệp thực thi 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 bắc cầu đến các phần 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 một cách bắc cầu 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.

Tham số

Tham 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 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 được dùng cho các thao tác biên dịch.

Tham số

Tham số Mô tả
cc_toolchain Thông tin; bắt buộc
cc_toolchain mà chúng ta đang tạo các biến bản dựng.
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
source_file Tệp; hoặc chuỗi; hoặc None; mặc định là None
. Đường dẫn 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ì nối source_file 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ó quyền chỉ định và định vị cờ trình biên dịch một cách thích hợp.
output_file Tệp; hoặc chuỗi; hoặc None; mặc định là None
. Đường dẫn 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ì nối output_file 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ó quyền chỉ định và định vị cờ trình biên dịch một cách thích hợp.
user_compile_flags sequence của string; hoặc None; 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 các thư mục trích dẫn bao gồm.
system_include_directories depset; hoặc None; mặc định là None
Depset của các thư mục bao gồm hệ thống.
framework_include_directories depset; hoặc None; mặc định là None
Depset của các thư mục bao gồm khung.
preprocessor_defines depset; hoặc None; mặc định là None
. Depset của bộ tiền xử lý xác định.
thinlto_index chuỗi; hoặc None; mặc định là None
Đường dẫn tệp chỉ mục LTO.
thinlto_input_bitcode_file chuỗi; hoặc None; mặc định là None
. Tệp mã bit được nhập vào phần phụ trợ LTO.
thinlto_output_object_file chuỗi; hoặc None; mặc định là None
. Tệp đối tượng do phần phụ trợ LTO xuất ra.
use_pic bool; 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 bool; mặc định là False
Không dùng.
variables_extension dict; default is unbound
Từ điển gồm các biến bổ sung được 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ố

Tham số Mô tả
actions required
Đối tượng actions.
feature_configuration mặc định là None
feature_configuration sẽ được truy vấn.
cc_toolchain mặc định là None
nhà cung cấp CcToolchainInfo sẽ được sử dụng.
static_library Tệp; hoặc None; mặc định là None
File của thư viện tĩnh cần được 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 pic cần được 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 được 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 interface_library không được truyền.
interface_library Tệp; hoặc None; mặc định là None
File của thư viện giao diện cần được liên kết.
pic_objects trình tự của các Tệp; mặc định là unbound
Thử nghiệm, không sử dụng
objects trình tự của các Tệp; mặc định là unbound
Thử nghiệm, không sử dụng
bool; default is False
Whether to link the static library/objects in the --whole_archive block.
string; 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.
chuỗi; 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=[], 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 để liên kết các thao tác.

Tham số

Tham số Mô tả
Thông tin; bắt buộc
cc_toolchain mà chúng ta đang tạo các biến bản dựng.
FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
depset; mặc định là []
Depset của các thư mục mà trình liên kết sẽ tìm kiếm thư viện tại thời điểm liên kết.
depset; mặc định là []
Depset của các thư mục mà trình tải sẽ tìm kiếm thư viện trong thời gian chạy.
trình tự; mặc định là []
Danh sách các cờ trình liên kết bổ sung (linkopts).
mặc định là None
Đường dẫn đế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.
bool; 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ữ. Trình gọi chịu trách nhiệm đồng bộ hoá tham số này với tên hành động được dùng (is_using_linker = True để liên kết tệp thực thi hoặc thư viện động, is_using_linker = False để lưu trữ thư viện tĩnh).
bool; mặc định là False
True khi tạo thư viện động, False khi tạo thư viện thực thi hoặc tĩnh. Phương thức gọi chịu trách nhiệm đồng bộ hoá dữ liệu này với tên hành động được dùng. Trường này sẽ bị xoá sau khi b/65151735 được khắc phục.
bool; mặc định là True
Khi được đặt thành False, bazel sẽ hiển thị biến "strip_debug_symbols". Biến này thường được 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.
bool; mặc định là False
Khi được đặt thành true, biến "is_cc_test" sẽ được đặt.
bool; mặc định là True
Không 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ố

Tham 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; mặc định là None
Danh sách LibraryToLink.
None; hoặc depset của string; hoặc sequence của string; 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). Không nên 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 truyền user_link_flags thông qua depsets() chưa được làm phẳng, hãy gói các cờ này trong LinkerInput để chúng không bị làm phẳng cho đến khi kết thúc.
additional_inputs None; hoặc depset; mặc định là None
Đối với các đầu vào bổ sung cho thao tác liên kết, ví dụ: liên kết tập lệnh.

create_linking_context

LinkingContext cc_common.create_linking_context(*, linker_inputs)

Tạo LinkingContext.

Tham số

Tham số Mô tả
linker_inputs depset; required
Depset của LinkerInput.

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 được dùng để tạo các quy tắc thư viện có thể truyền thông tin xuống dưới để 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 để tạo một tệp thực thi hoặc một thư viện động. Trả về bộ giá trị (CcLinkingContext, CcLinkingOutputs).

Tham số

Tham số Mô tả
actions actions; required
actions object.
name chuỗi; bắt buộc
Tham số này dùng để đặt tên cho các cấu phần phần mềm đầu ra của những thao tác do phương thức này tạo.
feature_configuration FeatureConfiguration; bắt buộc phải truy vấn
feature_configuration.
cc_toolchain Thông tin bắt buộc
nhà cung cấp CcToolchainInfo sẽ được sử dụng.
language string; mặc định là 'c++'
Hiện tại, chỉ hỗ trợ C++. Không sử dụng tham số này.
disallow_static_libraries bool; mặc định là False
. Có nên tạo thư viện tĩnh hay không.
disallow_dynamic_library bool; mặc định là False
Có nên tạo thư viện động hay không.
compilation_outputs CcCompilationOutputs; bắt buộc
Đầu ra biên dịch chứa các tệp đối tượng cần liên kết.
linking_contexts trình tự; 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.
trình tự; mặc định là []
Danh sách các lựa chọn liên kết bổ sung.
bool; mặc định là False
Có nên luôn liên kết thư viện này hay không.
additional_inputs sequence; 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ụ: tập lệnh liên kết.
variables_extension dict; default is unbound
Additional variables to pass to the toolchain configuration when creating link command line.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(*, objects={})

Tạo ngữ cảnh biên dịch LTO

Tham số

Tham số Mô tả
objects dict; mặc định là {}
ánh xạ đối tượng đầy đủ đến đối tượng chỉ mụ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à hỗ trợ việc 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 một hành động nhất định.

Tham số

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name chuỗi; bắt buộc
Tên của 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)
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)

Các yêu cầu thực hiện việc trả lại hàng đối với một hành động nhất định.

Tham số

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name chuỗi; bắt buộc
Tên của 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ờ hiệu dòng lệnh được đơn giản hoá cho hành động đã cho, 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 vượt quá thời gian phân tích. Chúng tôi đang tiếp tục phát triển hàm tiết kiệm bộ nhớ trả về Args.

Tham số

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name chuỗi; bắt buộc
Tên của 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)
variables Biến; bắt buộc
Tạo các biến sẽ được 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ố

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name chuỗi; bắt buộc
Tên của 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 được bật trong cấu hình tính năng.

Tham số

Tham số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
feature_name chuỗi; bắt buộc
Tên của tính năng.

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={})

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

Tham số

Tham số Mô tả
actions actions; required
actions object.
name chuỗi; bắt buộc
Tham số này dùng để đặt tên cho các cấu phần phần mềm đầu ra của những thao tác do phương thức này tạo.
feature_configuration FeatureConfiguration; bắt buộc phải truy vấn
feature_configuration.
cc_toolchain Thông tin bắt buộc
nhà cung cấp CcToolchainInfo sẽ được sử dụng.
language string; mặc định là 'c++'
Hiện tại, chỉ hỗ trợ C++. Không sử dụng tham số này.
output_type string; mặc định là 'executable'
Có thể là "executable" hoặc "dynamic_library".
bool; mặc định là True
True để liên kết các phần phụ thuộc theo cách tĩnh, False để liên kết theo cách động.
compilation_outputs CcCompilationOutputs; hoặc None; mặc định là None
Đầu ra biên dịch chứa các tệp đối tượng cần liên kết.
linking_contexts sequence; mặc định là []
Liên kết các bối cảnh từ các phần phụ thuộc cần liên kết vào bối cảnh liên kết do quy tắc này tạo.
trình tự; mặc định là []
Danh sách bổ sung các lựa chọn của trình liên kết.
stamp int; mặc định là 0
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, hãy sử dụng hành vi mặc định. Bạn có thể ghi đè hành vi này bằng cờ --[no]stamp. Bạn nên huỷ đặt (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 sequence; hoặc depset; giá trị mặc định là []
Đối với các đầu vào bổ sung cho thao tác liên kết, ví dụ: tập lệnh liên kết.
additional_outputs sequence; default is []
For additional outputs to the linking action, e.g.: map files.
variables_extension dict; default is {}
Additional variables to pass to the toolchain configuration when create link command line.

merge_cc_infos

unknown cc_common.merge_cc_infos(*, direct_cc_infos=[], cc_infos=[])

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

Tham số

Tham số Mô tả
direct_cc_infos trình tự; mặc định là []
Danh sách các CcInfo cần hợp nhất, tiêu đề của các CcInfo này sẽ được xuất bằng các trường trực tiếp trong trình cung cấp được trả về.
cc_infos trình tự; mặc định là []
Danh sách các CcInfo cần hợp nhất, tiêu đề của các CcInfo này sẽ không được xuất theo các trường trực tiếp trong trì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.

Tham số

Tham số Mô tả
compilation_contexts trình tự; mặc định là []
Danh sách các CompilationContexts cần hợp nhất. Tiêu đề của mỗi bối cảnh sẽ được xuất theo 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.

Tham số

Tham số Mô tả
compilation_outputs trình tự; mặc định là []