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

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

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

Tham số

Thông số Mô tả
actions bắt buộc
Đối tượng actions.
feature_configuration bắt buộc
feature_configuration cần truy vấn.
cc_toolchain bắt buộc
CcToolchainInfo sẽ được sử dụng.
srcs mặc định = []
Danh sách các tệp nguồn sẽ được biên dịch.
public_hdrs mặc định = []
Danh sách các tiêu đề cần thiết để biên dịch src và có thể được đưa vào theo các quy tắc phụ thuộc bắc cầu.
private_hdrs mặc định = []
Danh sách các tiêu đề cần thiết để biên dịch src và KHÔNG được đưa vào các quy tắc phụ thuộc.
includes mặc định = []
Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bằng cả dấu ngoặc góc và dấu ngoặc kép. Thường được truyền bằng -I. Được truyền cho các phần phụ thuộc theo cách bắc cầu.
quote_includes mặc định = []
Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu trong dấu ngoặc kép, ví dụ: #include "foo/bar/header.h". Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường có dấu -dấu ngoặc kép. Được truyền cho các phần phụ thuộc theo cách bắc cầu.
system_includes mặc định = []
Đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bằng dấu ngoặc nhọn, ví dụ: #include <foo/bar/header.h>. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -isystem. Được truyền cho các phần phụ thuộc theo cách bắc cầu.
framework_includes mặc định = []
Đường dẫn tìm kiếm tệp tiêu đề từ khung Apple. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -F. Được truyền cho các phần phụ thuộc theo cách bắc cầu.
defines 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. Được truyền cho các phần phụ thuộc theo 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 theo cách bắc cầu.
include_prefix mặc định = ''
Tiền tố để thêm vào đường dẫn của các tiêu đề của quy tắc này. Khi đặt, tiêu đề trong thuộc tính hdrs của quy tắc này có thể truy cập được tại giá trị của thuộc tính này được thêm vào trước đường dẫn tương đối của kho lưu trữ. Tiền tố trong thuộc tính string_include_prefix sẽ bị xoá trước khi thêm tiền tố này.
strip_include_prefix mặc định = ''
Tiền tố để tách khỏi đường dẫn của các tiêu đề của quy tắc này. Khi đặt giá trị này, bạn có thể truy cập vào các tiêu đề trong thuộc tính hdrs của quy tắc này tại đường dẫn của chúng và tiền tố này bị cắt bỏ. Nếu đó là đường dẫn tương đối, thì đường dẫn đó được coi là đường dẫn tương đối theo gói. Nếu giá trị là một giá trị tuyệt đối, thì giá trị này được hiểu là một đường dẫn tương đối của kho lưu trữ. Tiền tố trong thuộc tính include_prefix sẽ được thêm sau khi bạn loại bỏ tiền tố này.
user_compile_flags mặc định = []
Danh sách bổ sung các tuỳ chọn biên dịch.
compilation_contexts mặc định = []
Tiêu đề của các phần phụ thuộc dùng để biên dịch.
name bắt buộc
Thông tin này dùng để đặt tên cho cấu phần phần mềm đầu ra của các thao tác do phương thức này tạo ra. Hãy xem thêm tham số "main_output".
disallow_pic_outputs mặc định = Sai
Liệu có cần tạo đầu ra PIC hay không.
disallow_nopic_outputs mặc định = Sai
Liệu có nên tạo đầu ra NOPIC hay không.
additional_inputs mặc định = []
Danh sách các tệp bổ sung cần thiết để biên dịch src
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 bản sao Feature_configuration. Yêu cầu mảnh cấu hình cpp.

Tham số

Thông số Mô tả
ctx ctx; or None; mặc định = Không có
Ngữ cảnh quy tắc.
cc_toolchain bắt buộc
cc_toolchain mà chúng tôi đị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 sẽ được bật.
unsupported_features mặc định = []
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 một trình cung cấp CcToolchainConfigInfo

Tham số

Thông số Mô tả
ctx bắt buộc
Ngữ cảnh quy tắc.
features mặc định = []
Danh sách tính năng.
action_configs mặc định = []
Danh sách các action_configs.
artifact_name_patterns mặc định = []
Danh sách artifact_name_patterns.
cxx_builtin_include_directories mặc định = []

Tích hợp sẵn các thư mục để biên dịch C++. Đây phải là các đường dẫn chính xác mà trình biên dịch sử dụng và thường tương ứng với gốc của thực thi.

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

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

Đường dẫn tương đối được phân giải tương ứng với thư mục tệp cấu hình.

Nếu trình biên dịch có hỗ trợ --sysroot thì các đường dẫn này sẽ sử dụng %sysroot% thay vì đường dẫn include và chỉ định thuộc tính sysroot để cung cấp thông tin cần thiết nhằm thực hiện thay thế chính xác.

toolchain_identifier bắt buộc

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

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

host_system_name string; or None; mặc định = Không có
Đã 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. Ví dụ: "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 tôi đang dùng.
tool_paths mặc định = []
Danh sách tool_paths.
make_variables mặc định = []
Danh sách make_variables.
builtin_sysroot string; or None; mặc định = Không có
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; or None; mặc định = Không có
Chỉ sử dụng cho mục đích 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.

Tham số

Thông số Mô tả
headers mặc định = không liên kết
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 = không liên kết
Tập hợp các đường dẫn tìm kiếm cho tệp tiêu đề được tham chiếu bởi dấu ngoặc nhọn, ví dụ: #include <foo/bar/header.h>. Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường được truyền bằng -isystem
includes mặc định = không liên kết
Tập hợp đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu bằng cả dấu ngoặc góc và dấu ngoặc kép.Thường được truyền kèm theo -I
quote_includes mặc định = không liên kết
Tập hợp các đường dẫn tìm kiếm cho các tệp tiêu đề được tham chiếu trong dấu ngoặc kép, ví dụ: #include "foo/bar/header.h". Các giá trị này có thể tương đối với giá trị gốc của exec hoặc giá trị tuyệt đối. Thường có dấu ngoặc kép/dấu ngoặc đơn
framework_includes mặc định = không liên kết
Tập hợp các đường dẫn tìm kiếm khung cho các tệp tiêu đề (chỉ nền tảng của Apple)
defines mặc định = không liên kết
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 = không liên kết
Tập hợp các định nghĩa cần thiết để biên dịch mục tiêu này. Mỗi định nghĩa là một chuỗi. Không được truyền theo cách bắc cầu đến các phần phụ thuộc.

create_compilation_outputs

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

Tạo đối tượng đầu ra của quá trình biên dịch.

Tham số

Thông số Mô tả
objects depset; 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 có
Danh sách các tệp đối tượng pic.

create_compile_variables

Variables cc_common.create_compile_variables(cc_toolchain, feature_configuration, source_file=None, output_file=None, user_compile_flags=None, include_directories=None, quote_include_directories=None, system_include_directories=None, framework_include_directories=None, preprocessor_defines=None, thinlto_index=None, thinlto_input_bitcode_file=None, thinlto_output_object_file=None, use_pic=False, add_legacy_cxx_options=False, variables_extension=unbound)

Trả về các biến dùng cho thao tác biên dịch.

Tham số

Thông số Mô tả
cc_toolchain bắt buộc
cc_toolchain mà chúng tôi đang tạo các 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 = Không có
Tệp nguồn không bắt buộc để biên dịch. Vui lòng ưu tiên truyền source_file ở đây thay vì thêm tệp này vào cuối dòng lệnh được tạo từ cc_common.get_memory_inefficient_command_line, vì khi đó, tác giả chuỗi công cụ sẽ có quyền chỉ định và định vị đúng cách cờ của trình biên dịch.
output_file 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 ưu tiên truyền output_file đến đây thay vì thêm tệp này vào cuối dòng lệnh được tạo từ cc_common.get_memory_inefficient_command_line, vì sau đó tác giả chuỗi công cụ có thể chỉ định và định vị đúng cách cờ của trình biên dịch.
user_compile_flags sequence of strings; or None; mặc định = Không có
Danh sách cờ biên dịch bổ sung (copt).
include_directories depset; or None; mặc định = Không có
Không bao gồm các thư mục đính kèm.
quote_include_directories depset; or None; mặc định = Không có
Phần trích dẫn có các thư mục.
system_include_directories depset; or None; mặc định = Không có
Không hoạt động hệ thống bao gồm các thư mục.
framework_include_directories depset; or None; mặc định = Không có
Ngừng sử dụng khung bao gồm các thư mục.
preprocessor_defines depset; or None; mặc định = Không có
Ngừng sử dụng định nghĩa của bộ tiền xử lý.
thinlto_index string; or None; mặc định = Không có
Đường dẫn tệp chỉ mục LTO.
thinlto_input_bitcode_file string; or None; mặc định = Không có
Tệp mã bit được nhập vào phần phụ trợ LTO.
thinlto_output_object_file string; or None; mặc định = Không có
Tệp đối tượng do phần phụ trợ LTO xuất ra.
use_pic mặc định = Sai
Khi giá trị true, việc biên dịch sẽ tạo ra mã độc lập với vị trí.
add_legacy_cxx_options 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 đượ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ố Mô tả
actions bắt buộc
Đối tượng actions.
feature_configuration mặc định = Không có
feature_configuration cần truy vấn.
cc_toolchain mặc định = Không có
CcToolchainInfo sẽ được sử dụng.
static_library File; or None; mặc định = Không có
File thư viện tĩnh cần liên kết.
pic_static_library File; or None; mặc định = Không có
File thư viện ảnh tĩnh cần liên kết.
dynamic_library File; or None; mặc định = Không có
File thư viện động sẽ được 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 File; or None; mặc định = Không có
File thư viện giao diện sẽ được 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 --w New_lưu trữ hay không.
string; mặc định = ''
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.
mặc định = ''
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 cho thao tác liên kết.

Tham số

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

Tham số

Thông số 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 đầu vào này.
libraries None; or depset; mặc định = Không có
Danh sách LibraryToLink.
None; or depset of strings; or sequence of strings; mặc định = Không có
Cờ liên kết người dùng được truyền dưới dạng chuỗi. Chấp nhận [String], [[String]] hoặc depset(String). Bạn không nên sử dụng phần sau vì nó chỉ được giữ lại cho mục đích tương thích, phần phụ thuộc sẽ được làm phẳng. Nếu bạn muốn phổ biến user_link_flags thông qua depsets() chưa làm phẳng, hãy gói chúng trong LinkerInput để chúng không bị làm phẳng cho đến cuối.
additional_inputs None; 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 LinkingContext.

Tham số

Thông số Mô tả
linker_inputs None; or depset; mặc định = Không có
Ngừng cung cấp LinkerInput.
None; or sequence; mặc định = Không có
Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --+incompatible_require_linker_input_cc_api. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá.
Danh sách LibraryToLink.
None; or sequence; mặc định = Không có
Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --+incompatible_require_linker_input_cc_api. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá.
Danh sách các cờ liên kết người dùng được truyền dưới dạng chuỗi.
additional_inputs None; or sequence; mặc định = Không có
Không dùng nữa. Tham số này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với --+incompatible_require_linker_input_cc_api. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá.
Để có thêm thông tin đầu vào cho hành động liên kết, ví dụ: tập lệnh liên kết.

create_linking_context_from_compilation_outputs

tuple cc_common.create_linking_context_from_compilation_outputs(actions, 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 thư viện có thể truyền thông tin xuống dưới để được liên kết sau bằng quy tắc cấp cao nhất có chức năng liên kết bắc cầu để tạo thư viện động hoặc có thể thực thi. Trả về bộ dữ liệu của (CcLinkingContext, CcLinkingOutputs).

Tham số

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

Đừng sử dụng trường này, mục đích duy nhất của trường này là giúp di chuyển từ config_setting.values{'compiler') sang config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

Trả về các biến môi trường cần thiết lập cho hành động cụ thể.

Tham số

Thông số Mô tả
feature_configuration 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 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
Tạo các biến sẽ được dùng để mở rộng mẫu.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Trả về các yêu cầu thực thi cho hành động cụ thể.

Tham số

Thông số Mô tả
feature_configuration 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 hành động. Phải là một trong những tên trong @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(feature_configuration, action_name, variables)

Trả về các cờ dòng lệnh đã được làm phẳng cho hành động cụ thể, sử dụng các biến đã cho để mở rộng. Làm phẳng các tập hợp lồng nhau và tốt nhất là không nên sử dụng, hoặc ít nhất không nên tồn tại lâu hơn quá trình phân tích. Đang xử lý hàm trả về trình bổ trợ hiệu quả cho bộ nhớ.

Tham số

Thông số Mô tả
feature_configuration 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 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
Tạo biến sẽ được dùng cho mở rộng mẫu.

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

Trả về đường dẫn công cụ cho thao tác cụ thể.

Tham số

Thông số Mô tả
feature_configuration 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 hành động. Phải là một trong những tên trong @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)

is_enabled

bool cc_common.is_enabled(feature_configuration, feature_name)

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

Tham số

Thông số Mô tả
feature_configuration 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++.

Tham số

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

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.

Tham số

Thông số Mô tả
direct_cc_infos mặc định = []
Danh sách CcInfo cần hợp nhất, trong đó các tiêu đề sẽ được các trường trực tiếp trong trình cung cấp trả về xuất tiêu đề.
cc_infos mặc định = []
Danh sách CcInfo cần hợp nhất, trong đó các trường trực tiếp trong trình cung cấp được trả về sẽ không xuất tiêu đề.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

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

Tham số

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

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Hợp nhất đầu ra biên dịch.

Tham số

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