สําเนาทั่วไป

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ยูทิลิตีสำหรับการคอมไพล์ การลิงก์ และการสร้างบรรทัดคำสั่ง C++

สมาชิก

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

แสดงค่า "จริง" หากเปิดใช้ action_config ในการกำหนดค่าฟีเจอร์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration จำเป็น
การกำหนดค่าฟีเจอร์ที่จะค้นหา
action_name ต้องระบุ
ชื่อของ action_config

CcToolchainInfo

Provider cc_common.CcToolchainInfo

คีย์ที่ใช้ในการเรียกข้อมูลผู้ให้บริการที่มีข้อมูลเกี่ยวกับเครื่องมือเชน C++ ที่ใช้อยู่

configure_features

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

สร้างอินสแตนซ์ feature_configuration ต้องมีส่วนย่อยการกำหนดค่า CPA

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
ctx ctx หรือ None ค่าเริ่มต้นคือ None
บริบทของกฎ
cc_toolchain required
cc_toolchain สำหรับกำหนดค่าฟีเจอร์
language string หรือ None ค่าเริ่มต้นคือ None
ภาษาที่จะกำหนดค่าสำหรับ: c++ หรือ objc (ค่าเริ่มต้น c++)
requested_features ค่าเริ่มต้นคือ []
ซึ่งจะเป็นรายการฟีเจอร์ที่จะเปิดใช้
unsupported_features ค่าเริ่มต้นคือ []
ซึ่งแสดงรายการฟีเจอร์ที่กฎปัจจุบันไม่รองรับ

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)

สร้างผู้ให้บริการ CcToolchainConfigInfo

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
ctx ต้องระบุ
บริบทของกฎ
features ค่าเริ่มต้นคือ []
มีข้อกำหนดการแจ้งว่าไม่เหมาะสมทั้งหมดสำหรับฟีเจอร์เดียว

อาร์กิวเมนต์

name: ชื่อของฟีเจอร์ คุณสามารถเปิดตัวฟีเจอร์ได้โดยไม่ต้องเปลี่ยนแปลง Bazel โดยเพิ่มส่วน "feature" ลงในชุดเครื่องมือและเพิ่มสตริงที่เกี่ยวข้องเป็นฟีเจอร์ในไฟล์ BUILD

enabled: หากเป็น "จริง" ระบบจะเปิดใช้ฟีเจอร์นี้ เว้นแต่ว่าประเภทกฎจะระบุว่าไม่รองรับฟีเจอร์นี้อย่างชัดเจน

flag_sets: รายการ FlagSet หากเปิดใช้ฟีเจอร์หนึ่งๆ ระบบจะใช้ชุด Flag กับการดำเนินการที่ระบุ

env_sets: รายการ EnvSet หากเปิดใช้ฟีเจอร์หนึ่งๆ ระบบจะใช้ชุด env กับการดำเนินการที่ระบุไว้

requires: รายการชุดฟีเจอร์ที่ระบุเวลาที่เครื่องมือทางเทคนิครองรับฟีเจอร์นี้ ระบบจะรองรับฟีเจอร์นี้หากชุดฟีเจอร์ใดชุดหนึ่งมีผลอย่างเต็มรูปแบบ กล่าวคือ เมื่อเปิดใช้ฟีเจอร์ทั้งหมดของชุดฟีเจอร์นั้น หากไม่ใส่ requires ระบบจะรองรับฟีเจอร์นี้แยกจากฟีเจอร์อื่นๆ ที่เปิดใช้ ใช้ตัวอย่างนี้เพื่อกรอง Flag โดยขึ้นอยู่กับโหมดการสร้างที่เปิดใช้ (opt / fastbuild / dbg)

implies: รายการสตริงของฟีเจอร์หรือการกำหนดค่าการดำเนินการที่เปิดใช้โดยอัตโนมัติเมื่อเปิดใช้ฟีเจอร์นี้ หากเปิดใช้ฟีเจอร์หรือการกำหนดค่าการดำเนินการโดยนัยไม่ได้ ระบบจะไม่เปิดใช้ฟีเจอร์นี้ด้วย (โดยไม่มีการแจ้งเตือน)

provides: รายชื่อชื่อที่ขัดแย้งกันของฟีเจอร์นี้

คุณจะเปิดใช้ฟีเจอร์ไม่ได้ในกรณีต่อไปนี้
- provides มีชื่อของฟีเจอร์หรือการกำหนดค่าการดำเนินการอื่นที่เราต้องการเปิดใช้
- provides มีค่าเดียวกับ "provides" ในฟีเจอร์หรือการกำหนดค่าการดำเนินการอื่นที่เราต้องการเปิดใช้ ใช้เพื่อให้แน่ใจว่าระบบไม่อาจเปิดใช้งานฟีเจอร์ที่ใช้ร่วมกันไม่ได้โดยไม่ได้ตั้งใจพร้อมกันได้ ซึ่งทําให้วินิจฉัยข้อผิดพลาดของคอมไพเลอร์ได้ยาก
action_configs ค่าเริ่มต้นคือ []
การกําหนดค่าการดําเนินการจะสอดคล้องกับการดําเนินการของ Bazel และอนุญาตให้เลือกเครื่องมือตามฟีเจอร์ที่เปิดใช้งาน การเปิดใช้งานการกําหนดค่าการดําเนินการเกิดขึ้นตามความหมายเดียวกับฟีเจอร์ นั่นคือ ฟีเจอร์หนึ่งๆ อาจ "จําเป็น" หรือ "นัย" ถึงการกําหนดค่าการดําเนินการในลักษณะเดียวกับที่ฟีเจอร์อื่นต้องการ

อาร์กิวเมนต์

action_name: ชื่อของการดำเนินการของ Bazel ที่ใช้การกำหนดค่านี้ เช่น "c-compile" หรือ "c-module-compile"

enabled: หากเป็น "True" ระบบจะเปิดใช้การดำเนินการนี้ เว้นแต่ว่าประเภทกฎจะระบุว่าไม่รองรับการดำเนินการนี้อย่างชัดเจน

tools: เครื่องมือที่ใช้กับการดำเนินการจะเป็นเครื่องมือแรกที่มีชุดฟีเจอร์ที่ตรงกับการกำหนดค่าฟีเจอร์ เกิดข้อผิดพลาดหากไม่มีเครื่องมือใดตรงกับการกำหนดค่าฟีเจอร์ที่มีให้ ด้วยเหตุนี้ คุณจึงควรจัดเตรียมเครื่องมือเริ่มต้นพร้อมกับชุดฟีเจอร์ที่ว่างเปล่า

flag_sets: หากเปิดใช้การกำหนดค่าการดำเนินการที่กำหนด ระบบจะใช้ชุดแฟล็กกับการดำเนินการที่เกี่ยวข้อง

implies: รายการฟีเจอร์หรือการกําหนดค่าการดําเนินการที่เปิดใช้โดยอัตโนมัติเมื่อเปิดใช้การกําหนดค่าการดําเนินการนี้ หากเปิดใช้ฟีเจอร์โดยนัยหรือการกำหนดค่าการดำเนินการไม่ได้ ระบบจะไม่ได้เปิดใช้การกำหนดค่าการดำเนินการนี้ (โดยไม่ต้องแจ้งให้ทราบ)

artifact_name_patterns ค่าเริ่มต้นคือ []
ชื่อสำหรับอาร์ติแฟกต์ของหมวดหมู่อาร์ติแฟกต์อินพุตหรือเอาต์พุตหนึ่งๆ ของการดำเนินการ

อาร์กิวเมนต์

category_name: หมวดหมู่ของอาร์ติแฟกต์ที่ใช้กับตัวเลือกนี้ ระบบจะเปรียบเทียบช่องนี้กับรายการหมวดหมู่ที่กําหนดไว้ใน Bazel ตัวอย่างหมวดหมู่ประกอบด้วย "linked_output" หรืออาร์ติแฟกต์สำหรับการเลือกนี้ ซึ่งจะใช้ร่วมกับส่วนขยายเพื่อสร้างชื่ออาร์ติแฟกต์ตามชื่อเป้าหมาย

extension: ส่วนขยายสำหรับสร้างอาร์ติแฟกต์สําหรับการเลือกนี้ ซึ่งจะใช้ร่วมกับคำนำหน้าเพื่อสร้างชื่ออาร์ติแฟกต์ตามชื่อเป้าหมาย

cxx_builtin_include_directories ค่าเริ่มต้นคือ []

ในตัวรวมไดเรกทอรีสำหรับการคอมไพล์ C++ ซึ่งควรเป็นเส้นทางจริงที่คอมไพเลอร์ใช้ และโดยทั่วไปจะสัมพันธ์กับรูทที่ดำเนินการ

เส้นทางที่ใช้โดยคอมไพเลอร์จะกำหนดได้โดย "gcc -E -xc++ - -v"

ขณะนี้เราใช้เส้นทาง C++ สำหรับการคอมไพล์ C ซึ่งจะปลอดภัยตราบใดที่ไม่มีการปะทะชื่อระหว่างไฟล์ส่วนหัว C++ และ C

ระบบจะแก้ไขเส้นทางแบบสัมพัทธ์ตามไดเรกทอรีไฟล์การกําหนดค่า

หากคอมไพเลอร์รองรับ --sysroot เส้นทางเหล่านี้ควรใช้ %sysroot% แทนเส้นทางรวม และระบุแอตทริบิวต์ sysroot เพื่อให้ Blaze มีข้อมูลที่จำเป็นในการแทนที่ได้อย่างถูกต้อง

toolchain_identifier ต้องระบุ

ตัวระบุที่ไม่ซ้ำกันของชุดเครื่องมือภายในรุ่นของ Crosstool โดยใช้ชื่อนี้ในชื่อไดเรกทอรีในเส้นทางได้

โดยต้องตรงกับนิพจน์ทั่วไป [a-zA-Z_][\.\- \w]*

host_system_name string หรือ None ค่าเริ่มต้นคือ None
ละเว้น
target_system_name ต้องระบุ
ชื่อระบบ GNU
target_cpu ต้องระบุ
สตริงสถาปัตยกรรมเป้าหมาย
target_libc ต้องระบุ
string เวอร์ชัน libc (เช่น "glibc-2.2.2")
compiler ต้องระบุ
สตริงเวอร์ชันคอมไพเลอร์ (เช่น "gcc-4.1.1")
abi_version string หรือ None ค่าเริ่มต้นคือ None
Abi ที่ใช้งานอยู่ ซึ่งเป็นเวอร์ชัน gcc เช่น "gcc-3.4"
abi_libc_version สตริง หรือ None ค่าเริ่มต้นคือ None
ซึ่งเป็นเวอร์ชัน glibc ที่ abi ที่เราใช้อยู่ใช้
tool_paths ค่าเริ่มต้นคือ []
ตำแหน่งเครื่องมือ

อาร์กิวเมนต์

name: ชื่อเครื่องมือ

path: ตำแหน่งของเครื่องมือ ซึ่งอาจเป็นเส้นทางแบบสัมบูรณ์ (ในกรณีที่เป็นเครื่องมือทางเทคนิคแบบไม่ปิดผนึก) หรือเส้นทางแบบสัมพัทธ์กับแพ็กเกจของ cc_toolchain

make_variables ค่าเริ่มต้นคือ []
ตัวแปร make ที่อนุญาตให้กฎเข้าถึงได้
builtin_sysroot สตริง หรือ None ค่าเริ่มต้นคือ None
sysroot ในตัว ถ้าไม่มีแอตทริบิวต์นี้ Bazel ไม่อนุญาตให้ใช้ sysroot อื่น เช่น ผ่านตัวเลือก --grte_top
cc_target_os string หรือ None ค่าเริ่มต้นคือ None
จุดประสงค์ภายในเท่านั้น อย่าใช้

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)

สร้าง CompilationContext

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
headers ค่าเริ่มต้นคือ unbound
ชุดส่วนหัวที่จําเป็นสําหรับคอมไพล์เป้าหมายนี้
system_includes ค่าเริ่มต้นคือ unbound
ชุดของเส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงด้วยวงเล็บสามเหลี่ยม เช่น #include <foo/bar/header.h> โดยอาจสัมพันธ์กับรูทของผู้บริหารหรือสัมบูรณ์ก็ได้ โดยปกติจะส่งผ่านกับ -isystem
includes ค่าเริ่มต้นคือ unbound
ชุดเส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงทั้งโดยเครื่องหมายวงเล็บปีกกาและเครื่องหมายคำพูด โดยปกติจะส่งผ่านด้วย -I
quote_includes ค่าเริ่มต้นคือ unbound
ชุดของเส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงด้วยเครื่องหมายคำพูด เช่น #include "foo/bar/header.h" โดยอาจเป็นค่าสัมพัทธ์กับรูท exec หรือค่าสัมบูรณ์ก็ได้ มักจะส่งมาพร้อมกับ -iquote
framework_includes ค่าเริ่มต้นคือ unbound
ชุดเส้นทางการค้นหาเฟรมเวิร์กสำหรับไฟล์ส่วนหัว (แพลตฟอร์ม Apple เท่านั้น)
defines ค่าเริ่มต้นคือ unbound
ชุดการกําหนดที่จําเป็นสําหรับการคอมไพล์เป้าหมายนี้ โดยแต่ละการกําหนดจะเป็นสตริง เผยแพร่แบบสกรรมกริยาให้กับผู้ที่พึ่งพาอาศัย
local_defines ค่าเริ่มต้นคือ unbound
ชุดกำหนดที่จำเป็นต่อการคอมไพล์เป้าหมายนี้ แต่ละนิยามคือสตริง ไม่ได้นำไปใช้กับรายการที่เกี่ยวข้อง

create_compilation_outputs

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

สร้างออบเจ็กต์เอาต์พุตการคอมไพล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
objects depset หรือ None ค่าเริ่มต้นคือ None
รายการไฟล์ออบเจ็กต์
pic_objects depset หรือ None ค่าเริ่มต้นคือ None
รายการไฟล์ออบเจ็กต์รูปภาพ

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)

แสดงผลตัวแปรที่ใช้สำหรับการดำเนินการคอมไพล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
cc_toolchain required
cc_toolchain ที่เรากําลังสร้างตัวแปรการสร้าง
feature_configuration ต้องระบุ
การค้นหาการกําหนดค่าฟีเจอร์
source_file ค่าเริ่มต้นคือ None
ไฟล์ต้นฉบับที่ไม่บังคับสำหรับการคอมไพล์ โปรดส่ง source_file ที่นี่แทนการต่อท้ายที่ส่วนท้ายของบรรทัดคำสั่งที่สร้างขึ้นจาก cc_common.get_memory_inefficient_command_line เนื่องจากผู้เขียนเครื่องมือทางเทคนิคจะระบุและวางตำแหน่ง Flag คอมไพเลอร์ได้อย่างเหมาะสม
output_file ค่าเริ่มต้นคือ None
ไฟล์เอาต์พุตที่ไม่บังคับของการคอมไพล์ โปรดส่ง exit_file ที่นี่ แล้วต่อท้ายบรรทัดคำสั่งที่สร้างจาก cc_common.get_memory_inefficiency_command_line เพราะจะทำให้ผู้เขียน Toolchain ระบุและจัดตำแหน่งแฟล็กคอมไพเลอร์ได้อย่างเหมาะสม
user_compile_flags ลำดับของสตริง หรือ None ค่าเริ่มต้นคือ None
รายการ Flag การคอมไพล์เพิ่มเติม (copt)
include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีรวม
quote_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset of เครื่องหมายคำพูดรวมไดเรกทอรี
system_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีรวมของระบบ
framework_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของเฟรมเวิร์กจะรวมไดเรกทอรี
preprocessor_defines depset หรือ None ค่าเริ่มต้นคือ None
Depset ของการกำหนดตัวประมวลผลล่วงหน้า
thinlto_index สตริง หรือ None ค่าเริ่มต้นคือ None
เส้นทางไฟล์ดัชนี LTO
thinlto_input_bitcode_file string หรือ None ค่าเริ่มต้นคือ None
ไฟล์บิตโค้ดที่เป็นอินพุตไปยังแบ็กเอนด์ LTO
thinlto_output_object_file สตริง หรือ None ค่าเริ่มต้นคือ None
ออบเจ็กต์ไฟล์ที่แสดงผลโดยแบ็กเอนด์ LTO
use_pic ค่าเริ่มต้นคือ False
เมื่อเป็นจริง การคอมไพล์จะสร้างโค้ดที่ไม่ขึ้นกับตำแหน่ง
add_legacy_cxx_options ค่าเริ่มต้นคือ Unused False
variables_extension dict; ค่าเริ่มต้นคือ unbound
พจนานุกรมของตัวแปรเพิ่มเติมที่การคอมไพล์ใช้

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='')

สร้าง LibraryToLink

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions ต้องระบุออบเจ็กต์
actions
feature_configuration ค่าเริ่มต้นคือ None
feature_configuration ที่จะค้นหา
cc_toolchain ค่าเริ่มต้นคือผู้ให้บริการ None
CcToolchainInfo ที่จะใช้
static_library ไฟล์ หรือ None ค่าเริ่มต้นคือ None
File ของไลบรารีแบบคงที่ที่จะลิงก์
pic_static_library ไฟล์ หรือ None ค่าเริ่มต้นคือ None
File ของไลบรารีรูปภาพแบบคงที่จะลิงก์
dynamic_library ไฟล์ หรือ None ค่าเริ่มต้นคือ None
File ของไลบรารีแบบไดนามิกที่จะลิงก์ ใช้สำหรับรันไทม์เสมอและใช้สำหรับการลิงก์หากไม่มีการส่งผ่าน interface_library
interface_library ไฟล์ หรือ None ค่าเริ่มต้นคือ None
File ของไลบรารีอินเทอร์เฟซที่จะลิงก์
pic_objects ลําดับของ Files; ค่าเริ่มต้นคือ unbound
เป็นเวอร์ชันทดลอง อย่าใช้
objects ลำดับ ของไฟล์ ค่าเริ่มต้นคือ unbound
ทดลอง, อย่าใช้
ค่าเริ่มต้นคือ False
หากต้องการลิงก์ไลบรารี/ออบเจ็กต์แบบคงที่ในบล็อก --whole_archive
สตริง; ค่าเริ่มต้นคือ ''
ลบล้างเส้นทางเริ่มต้นของลิงก์ไลบรารีแบบไดนามิกในไดเรกทอรี solib สตริงว่างเพื่อใช้ค่าเริ่มต้น
ค่าเริ่มต้นคือ ''
ลบล้างเส้นทางเริ่มต้นของลิงก์ไลบรารีอินเทอร์เฟซในไดเรกทอรี solib สตริงว่างเพื่อใช้ค่าเริ่มต้น

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)

แสดงผลตัวแปรลิงก์ที่ใช้สำหรับการลิงก์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
required
cc_toolchain ที่เรากําลังสร้างตัวแปรการสร้าง
จำเป็น
การกำหนดค่าฟีเจอร์ที่จะค้นหา
None หรือ depset ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีที่ตัวลิงก์จะค้นหาไลบรารีในเวลาลิงก์
None หรือ depset ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีที่ตัวโหลดจะค้นหาไลบรารีขณะรันไทม์
None หรือ sequence ค่าเริ่มต้นคือ None
ลิสต์ Flag ลิงก์เพิ่มเติม (linkopts)
ค่าเริ่มต้นคือ None
เส้นทางไฟล์เอาต์พุตที่ไม่บังคับ
ค่าเริ่มต้นคือ None
โดยพาธไฟล์พารามิเตอร์เป็นตัวเลือก
ค่าเริ่มต้นคือ None
เส้นทางไฟล์ .def (ไม่บังคับ)
ค่าเริ่มต้นคือ True
เป็นจริงเมื่อใช้ Linker, เท็จเมื่อเก็บถาวร ผู้โทรมีหน้าที่ซิงค์ข้อมูลนี้ให้ตรงกับชื่อการดำเนินการที่ใช้ (is_using_linker = True สำหรับการลิงก์ไลบรารีที่ดำเนินการได้หรือไลบรารีแบบไดนามิก, is_using_linker = False สำหรับเก็บถาวรไลบรารีแบบคงที่)
ค่าเริ่มต้นคือ False
True เมื่อสร้างไลบรารีแบบไดนามิก, False เมื่อสร้างไฟล์ปฏิบัติการหรือไลบรารีแบบคงที่ ผู้โทรมีหน้าที่ซิงค์ข้อมูลนี้กับชื่อการทำงานที่ใช้ ระบบจะนำช่องนี้ออกเมื่อ b/65151735 ได้รับการแก้ไขแล้ว
ค่าเริ่มต้นคือ True
เมื่อตั้งค่าเป็น False นั้น bazel จะแสดงตัวแปร "strip_debug_symbols" ซึ่งปกติจะใช้เพื่อใช้ตัวลิงก์เพื่อลบสัญลักษณ์การแก้ไขข้อบกพร่องออกจากไฟล์เอาต์พุต
ค่าเริ่มต้นคือ False
เมื่อตั้งค่าเป็น "จริง" ระบบจะตั้งค่าตัวแปร "is_cc_test"
ค่าเริ่มต้นคือ Unused True

create_linker_input

LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)

สร้าง LinkerInput

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
owner ต้องระบุ
ป้ายกำกับของเป้าหมายที่สร้างไฟล์ทั้งหมดที่ใช้ในอินพุตนี้
libraries None หรือ depset ค่าเริ่มต้นคือ None
รายการLibraryToLink
None หรือ depset ของ สตริง หรือ sequence ของ สตริง ค่าเริ่มต้นคือ None
Flag ลิงก์ผู้ใช้ที่ส่งเป็นสตริง ยอมรับ [String], [[String]] หรือ depset(String) เราไม่แนะนำวิธีนี้เนื่องจากจะเก็บไว้เพื่อจุดประสงค์ด้านความเข้ากันได้เท่านั้น เดปเซ็ตจะถูกปรับให้แบน หากต้องการเผยแพร่ user_link_flags ผ่าน depset() ที่ไม่ได้ผสาน ให้รวมไว้ใน LinkerInput เพื่อไม่ให้ผสานจนจบ
additional_inputs None หรือ depset ค่าเริ่มต้นคือ None
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการดำเนินการลิงก์ เช่น การลิงก์สคริปต์

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)

สร้าง LinkingContext

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
linker_inputs None หรือ depset ค่าเริ่มต้นคือ None
Depset คือ LinkerInput
None หรือ sequence ค่าเริ่มต้นคือ None
เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ปิดใช้กับ --+incompatible_require_linker_input_cc_api ใช้ธงนี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนำโค้ดที่กำลังจะเกิดขึ้นในเร็วๆ นี้
รายการ LibraryToLink
None หรือ sequence ค่าเริ่มต้นคือ None
เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ถูกปิดใช้ด้วย --+incompatible_require_linker_input_cc_api ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น
รายการ Flag ของลิงก์ผู้ใช้ที่ส่งเป็นสตริง
additional_inputs None หรือ sequence ค่าเริ่มต้นคือ None
เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ถูกปิดใช้ด้วย --+incompatible_require_linker_input_cc_api ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการดำเนินการลิงก์ เช่น การลิงก์สคริปต์

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)

ควรใช้ในการสร้างกฎไลบรารีที่สามารถเผยแพร่ข้อมูลไปยังดาวน์สตรีมเพื่อให้กฎระดับบนสุดทำการลิงก์แบบทรานซิทีฟเพื่อสร้างไลบรารีแบบไดนามิกหรือแบบปฏิบัติการในภายหลัง แสดงผลทูเปิลของ (CcLinkingContext, CcLinkingOutputs)

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions ต้องระบุออบเจ็กต์
actions
feature_configuration ต้องระบุ
feature_configurationเพื่อทำการค้นหา
cc_toolchain ต้องใช้
CcToolchainInfoผู้ให้บริการ
compilation_outputs ต้องระบุ
เอาต์พุตการคอมไพล์ที่มีไฟล์ออบเจ็กต์เพื่อลิงก์
ค่าเริ่มต้นคือ []
รายการตัวเลือกการลิงก์เพิ่มเติม
linking_contexts ค่าเริ่มต้นคือ []
ไลบรารีจากทรัพยากร Dependency ไลบรารีเหล่านี้จะลิงก์กับอาร์ติแฟกต์เอาต์พุตของการเรียกใช้ link() ไม่ว่าจะเป็นไบนารีหรือไลบรารี
name ต้องระบุ
ใช้เพื่อตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างโดยเมธอดนี้
language ค่าเริ่มต้นคือ 'c++'
ขณะนี้รองรับเฉพาะ C++ เท่านั้น อย่าใช้พารามิเตอร์นี้
ค่าเริ่มต้นคือ False
ควรลิงก์คลังนี้เสมอหรือไม่
additional_inputs ค่าเริ่มต้นคือ []
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการดําเนินการลิงก์ เช่น การลิงก์สคริปต์
disallow_static_libraries ค่าเริ่มต้นคือ False
ควรสร้างไลบรารีแบบคงที่หรือไม่
disallow_dynamic_library ค่าเริ่มต้นคือ False
ควรสร้างไลบรารีแบบไดนามิกหรือไม่

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

อย่าใช้ช่องนี้ เนื่องจากช่องนี้มีวัตถุประสงค์เพื่อช่วยในการย้ายข้อมูลจาก config_setting.values{'compiler') ไปยัง config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

แสดงผลตัวแปรสภาพแวดล้อมที่จะตั้งค่าสําหรับการดําเนินการหนึ่งๆ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration ต้องระบุ
การค้นหาการกําหนดค่าฟีเจอร์
action_name ต้องระบุ
ชื่อของการดําเนินการ ต้องเป็นหนึ่งในชื่อใน @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables ต้องระบุ
สร้างตัวแปรที่จะใช้สำหรับการขยายเทมเพลต

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

แสดงข้อกําหนดในการดําเนินการสําหรับการดําเนินการหนึ่งๆ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration ต้องระบุ
การค้นหาการกําหนดค่าฟีเจอร์
action_name ต้องระบุ
ชื่อการดำเนินการ ต้องเป็นหนึ่งในชื่อใน @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)

แสดงผลแฟล็กบรรทัดคำสั่งที่แยกเป็นหลายรายการสำหรับการดำเนินการที่กำหนด โดยใช้ตัวแปรที่กำหนดสำหรับการขยาย ยุบชุดที่ฝังอยู่ และไม่ควรใช้ หรืออย่างน้อยก็ไม่ควรอยู่เกินระยะเวลาการวิเคราะห์ ทำงานกับฟังก์ชันประสิทธิภาพหน่วยความจำที่แสดงผล Args อย่างต่อเนื่อง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration ต้องระบุ
การค้นหาการกําหนดค่าฟีเจอร์
action_name ต้องระบุ
ชื่อการดำเนินการ ต้องเป็นหนึ่งในชื่อใน @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables ต้องระบุ
สร้างตัวแปรที่จะใช้สําหรับการขยายเทมเพลต

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

แสดงเส้นทางเครื่องมือสำหรับการทำงานที่กำหนด

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration ต้องระบุ
การค้นหาการกําหนดค่าฟีเจอร์
action_name ต้องระบุ
ชื่อของการดําเนินการ ต้องเป็นชื่อหนึ่งใน @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)

แสดงค่า "จริง" หากเปิดใช้ฟีเจอร์ที่ระบุในการกําหนดค่าฟีเจอร์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
feature_configuration จำเป็น
การกำหนดค่าฟีเจอร์ที่จะค้นหา
feature_name ต้องระบุ
ชื่อฟีเจอร์

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)

ควรใช้สำหรับการลิงก์ทางอ้อมของ C++

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions ต้องระบุออบเจ็กต์
actions
feature_configuration ต้องระบุ
feature_configurationเพื่อทำการค้นหา
cc_toolchain ต้องระบุ
CcToolchainInfo ผู้ให้บริการ
compilation_outputs CcCompilationOutputs หรือ None ค่าเริ่มต้นคือ None
เอาต์พุตการคอมไพล์ที่มีไฟล์ออบเจ็กต์ที่จะลิงก์
ค่าเริ่มต้นคือ []
รายการตัวเลือกตัวลิงก์เพิ่มเติม
linking_contexts ค่าเริ่มต้นคือ []
การลิงก์บริบทจากทรัพยากร Dependency เพื่อลิงก์กับบริบทการลิงก์ที่กฎนี้สร้างขึ้น
name ต้องระบุ
ใช้สำหรับตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างโดยเมธอดนี้
language ค่าเริ่มต้นคือ 'c++'
ขณะนี้รองรับเฉพาะ C++ เท่านั้น อย่าใช้พารามิเตอร์นี้
output_type ค่าเริ่มต้นคือ 'executable'
อาจเป็น "executable" หรือ "dynamic_library" ก็ได้
ค่าเริ่มต้นคือ True
True จะลิงก์ทรัพยากร Dependency แบบคงที่, "เท็จ" แบบไดนามิก
stamp ค่าเริ่มต้นคือ 0
หากต้องการรวมข้อมูลบิลด์ไว้ในไฟล์ปฏิบัติการที่ลิงก์ไว้หรือไม่ หาก output_type เป็น "executable" หากเป็น 1 ระบบจะรวมข้อมูลบิลด์ไว้เสมอ หาก 0 (ระบบจะยกเว้นข้อมูลบิลด์เริ่มต้นเสมอ หาก -1 จะใช้ลักษณะการทำงานเริ่มต้น ซึ่งอาจถูกลบล้างโดยแฟล็ก --[no]stamp คุณไม่ควรตั้งค่า (หรือตั้งค่าเป็น 0) เมื่อสร้างเอาต์พุตที่เรียกใช้งานได้สําหรับกฎทดสอบ
additional_inputs sequence หรือ depset ค่าเริ่มต้นคือ []
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการดำเนินการลิงก์ เช่น การลิงก์สคริปต์
additional_outputs sequence; ค่าเริ่มต้นคือ unbound
สำหรับเอาต์พุตเพิ่มเติมในการดำเนินการลิงก์ เช่น ไฟล์แผนที่

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

รวม CompilationContexts หลายรายการเป็นรายการเดียว

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
compilation_contexts ค่าเริ่มต้นคือ []
รายการ CompilationContexts ที่จะผสาน ส่วนหัวของบริบทแต่ละรายการจะส่งออกโดยช่องโดยตรงในผู้ให้บริการที่แสดงผล

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

ผสานเอาต์พุตการคอมไพล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
compilation_outputs ค่าเริ่มต้นคือ []