cc_Common

Báo cáo vấn đề Xem nguồn Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name string; required
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 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ộ (CompilationContext, CcCompilationOutputs).

Thông số

Thông số Mô tả
actions actions; đối tượng
actions bắt buộc.
feature_configuration FeatureConfiguration; bắt buộc
feature_configuration cần được truy vấn.
cc_toolchain Thông tin bắt buộc
CcToolchainInfo nhà cung cấp sẽ được sử dụng.
srcs sequence; mặc định là []
Danh sách các tệp nguồn sẽ được biên dịch.
public_hdrs sequence; 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 gián tiếp.
private_hdrs sequence; default is []
List of headers needed for compilation of srcs and NOT to be included by dependent rules.
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. Được truyền đến các phần phụ thuộc một cách bắc cầu.
quote_includes sequence; theo mặc định là []
Đường dẫn tìm kiếm cho các tệp tiêu đề được trích dẫn, ví dụ: #include "foo/bar/header.h". Chúng 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 -iquote. Được truyền đến các phần phụ thuộc một cách bắc cầu.
system_includes sequence; 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 sequence; default is []
Đường dẫn tìm kiếm cho các tệp tiêu đề từ các khung của Apple. Chúng 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 -F. Được truyền đến các phần phụ thuộc một cách bắc cầu.
defines sequence; 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 sequence; 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 string; 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 string; default is ''
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 mà không có tiền tố này. Nếu là đường dẫn tương đối, thì đường dẫn này sẽ đượ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 sequence; mặc định là []
Danh sách các lựa chọn biên dịch bổ sung.
conly_flags sequence; mặc định là []
Danh sách các lựa chọn biên dịch bổ sung cho các bản biên dịch C.
cxx_flags sequence; default is []
Danh sách các lựa chọn biên dịch bổ sung cho các bản 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 string; required
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 sequence; mặc định là unbound
Danh sách các tệp nguồn giao diện mô-đun sẽ đượ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=None, 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.

Thông số

Thông số Mô tả
ctx ctx; hoặc None; mặc định là None
Bối cảnh của quy tắc.
cc_toolchain Thông tin; bắt buộc
cc_toolchain mà chúng tôi đị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 sequence; mặc định là []
Danh sách các tính năng sẽ được bật.
unsupported_features sequence; 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=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

Thông số

Thông số Mô tả
ctx ctx; required
Ngữ cảnh quy tắc.
features sequence; mặc định là []
Chứa tất cả các quy cách 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" 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ỳ bộ tính năng nào được áp dụng đầy đủ, tức là khi tất cả các tính năng của một bộ tính năng đều đượ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ụ: hãy dùng cách này để lọc các cờ tuỳ thuộc vào chế độ xây 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; 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 thao tác 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 thao tác 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 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 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 ngầm định hoặc cấu hình thao tác 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ố, nó đượ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 sequence; 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 nên 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 string; hoặc None; mặc định là None
Bị bỏ qua.
target_system_name string; 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 string; hoặc None; mặc định là None
Không được 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 string; hoặc None; mặc định là None
Không được 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 string; required
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 string; hoặc None; mặc định là None
Abi đang dùng, là một phiên bản gcc. Ví dụ: "gcc-3.4". Chuỗi được đặt thành ABI biến của chuỗi công cụ C++.
abi_libc_version string; hoặc None; mặc định là None
Phiên bản glibc mà abi chúng tôi đ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 sequence; 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; mặc định là []
Một biến make được cung cấp cho các quy tắc.
builtin_sysroot string; 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.

Thông số

Thông 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". Chúng 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 -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 đến các phần phụ thuộc.

create_compilation_outputs

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

Tạo đối tượng đầu ra biên dịch.

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

Thông số

Thông 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 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ì 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ó thể chỉ định và định vị cờ trình biên dịch một cách thích hợp.
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ì 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 strings; 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 các định nghĩa về bộ tiền xử lý.
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 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 bool; default is 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

Thông số

Thông 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 liên kết.
pic_static_library File; hoặc None; mặc định là None
File của thư viện tĩnh pic cần liên kết.
dynamic_library File; hoặc None; mặc định là None
File của thư viện động cần liên kết. Luôn được dùng cho thời gian chạy và được dùng để liên kết nếu interface_library không được truyền.
interface_library File; 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 sequence của Files; giá trị mặc định là unbound
Thử nghiệm, không sử dụng
objects sequence của Files; giá trị mặc định là unbound
Thử nghiệm, không sử dụng
bool; mặc định là False
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.
string; 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.

Thông số

Thông 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.
sequence; mặc định là []
Danh sách các cờ 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 đế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á việc 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. Lệnh gọi chịu trách nhiệm giữ cho tên này đồng bộ 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.

Thông số

Thông 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; 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). 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 một 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.

Thông số

Thông 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ộ (CcLinkingContext, CcLinkingOutputs).

Thông số

Thông số Mô tả
actions actions; đối tượng
actions bắt buộc.
name string; required
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
feature_configuration cần được truy vấn.
cc_toolchain Thông tin bắt buộc
CcToolchainInfo nhà cung cấp 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; required
Compilation outputs containing object files to link.
linking_contexts sequence; 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 hay thư viện.
sequence; mặc định là []
Danh sách bổ sung về các lựa chọn liên kết.
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
Các biến bổ sung để truyền đến cấu hình chuỗi công cụ khi tạo dòng lệnh liên kết.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

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

Thông số

Thông 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.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name string; required
Tên của thao tác. 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 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)

Trả về các yêu cầu thực hiện cho một hành động nhất định.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name string; required
Tên của thao tác. 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)

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 một thao tác nhất định, sử dụng các biến nhất định để 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 sử dụng quá lâu trong quá trình phân tích. Chúng tôi đang tiếp tục phát triển hàm trả về Args có hiệu quả về bộ nhớ.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name string; required
Tên của thao tác. 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 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.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
action_name string; required
Tên của thao tác. 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)

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.

Thông số

Thông số Mô tả
feature_configuration FeatureConfiguration; required
Cấu hình tính năng cần được truy vấn.
feature_name string; required
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 cho hoạt động liên kết bắc cầu C++.

Thông số

Thông số Mô tả
actions actions; đối tượng
actions bắt buộc.
name string; required
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
feature_configuration cần được truy vấn.
cc_toolchain Thông tin bắt buộc
CcToolchainInfo nhà cung cấp 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 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.
sequence; 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_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 sequence; mặc định là []
Danh sách các CompilationContexts cần hợp nhất. Tiêu đề của mỗi ngữ 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.

Thông số

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