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

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++ ที่ใช้อยู่

คอมไพล์

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=[])

ควรใช้สำหรับการคอมไพล์ C++ แสดงผลทูเปิลของ (CompilationContext, CcCompilationOutputs)

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
actions ออบเจ็กต์
actionsที่ต้องระบุ
feature_configuration ต้องระบุ
feature_configuration เพื่อค้นหา
cc_toolchain ต้องใช้
CcToolchainInfoผู้ให้บริการ
srcs ค่าเริ่มต้นคือ []
ซึ่งก็คือรายการไฟล์ต้นทางที่จะคอมไพล์
public_hdrs ค่าเริ่มต้นคือ []
ซึ่งคือรายการส่วนหัวที่จําเป็นสําหรับการคอมไพล์ srcs และอาจรวมอยู่ในกฎที่เกี่ยวข้องแบบทรานซิทีฟ
private_hdrs ค่าเริ่มต้นคือ []
ส่วนหัวที่จำเป็นสำหรับการคอมไพล์ srcs และไม่ควรรวมอยู่ในกฎที่เกี่ยวข้อง
includes ลำดับ หรือ depset ค่าเริ่มต้นคือ []
เส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงทั้งวงเล็บมุมและเครื่องหมายคำพูด โดยปกติจะส่งผ่านด้วย -I นำไปใช้กับรายการที่เกี่ยวข้อง
quote_includes ค่าเริ่มต้นคือ []
เส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงด้วยเครื่องหมายคำพูด เช่น #include "foo/bar/header.h" โดยอาจเป็นค่าสัมพัทธ์กับรูท exec หรือค่าสัมบูรณ์ก็ได้ โดยปกติจะส่งผ่านด้วย -iquote นำไปใช้กับรายการที่เกี่ยวข้อง
system_includes ค่าเริ่มต้นจะเป็น []
เส้นทางการค้นหาไฟล์ส่วนหัวที่อ้างอิงด้วยวงเล็บสามเหลี่ยม เช่น #include <foo/bar/header.h> ซึ่งอาจสัมพันธ์กับรูทของผู้บริหารหรือสัมบูรณ์ก็ได้ มักจะส่งผ่านด้วย -isystem เผยแพร่ไปสู่ผู้ที่พึ่งพาอาศัยในทางอ้อม
framework_includes ค่าเริ่มต้นคือ []
เส้นทางการค้นหาไฟล์ส่วนหัวจากเฟรมเวิร์ก Apple โดยอาจเป็นค่าสัมพัทธ์กับรูท exec หรือค่าสัมบูรณ์ก็ได้ มักจะส่งผ่านด้วย -F นำไปใช้กับรายการที่เกี่ยวข้อง
defines ค่าเริ่มต้นคือ []
ชุดการกําหนดที่จําเป็นสําหรับการคอมไพล์เป้าหมายนี้ โดยแต่ละการกําหนดจะเป็นสตริง นำไปใช้กับรายการที่เกี่ยวข้อง
local_defines ค่าเริ่มต้นคือ []
ชุดการกําหนดที่จําเป็นสําหรับการคอมไพล์เป้าหมายนี้ โดยแต่ละการกําหนดจะเป็นสตริง ไม่นำไปใช้กับรายการที่เกี่ยวข้องแบบต่อเนื่อง
include_prefix ค่าเริ่มต้นคือ ''
ส่วนนำหน้าที่จะเพิ่มลงในเส้นทางของส่วนหัวของกฎนี้ เมื่อตั้งค่าแล้ว ส่วนหัวในแอตทริบิวต์ hdrs ของกฎนี้จะเข้าถึงได้ที่ค่าของแอตทริบิวต์นี้ซึ่งอยู่หน้าเส้นทางแบบสัมพัทธ์กับที่เก็บ ระบบจะนำคำนำหน้าในแอตทริบิวต์ Strip_include_prefix ออกก่อนที่จะเพิ่มคำนำหน้านี้
strip_include_prefix ค่าเริ่มต้นคือ ''
ส่วนหน้าที่จะตัดออกจากเส้นทางของส่วนหัวของกฎนี้ เมื่อตั้งค่าแล้ว ส่วนหัวในแอตทริบิวต์ hdrs ของกฎนี้จะเข้าถึงได้ที่เส้นทางโดยตัดคำนำหน้านี้ออก หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะถือว่าเส้นทางนั้นสัมพัทธ์กับแพ็กเกจ หากเป็นเส้นทางสัมบูรณ์ ระบบจะเข้าใจว่าเป็นเส้นทางสัมพัทธ์กับที่เก็บ ระบบจะเพิ่มคำนำหน้าในแอตทริบิวต์ include_prefix หลังจากที่ตัดคำนำหน้านี้ออก
user_compile_flags ค่าเริ่มต้นคือ []
รายการตัวเลือกการรวบรวมเพิ่มเติม
conly_flags ค่าเริ่มต้นคือ []
รายการตัวเลือกการคอมไพล์เพิ่มเติมสำหรับคอมไพล์ C
cxx_flags ค่าเริ่มต้นคือ []
รายการตัวเลือกการคอมไพล์เพิ่มเติมสำหรับการคอมไพล์ C++
compilation_contexts ค่าเริ่มต้นคือ []
ส่วนหัวจากไลบรารีที่ใช้สำหรับคอมไพล์
name ต้องระบุ
ใช้สำหรับตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างโดยเมธอดนี้ โปรดดูอาร์กิวเมนต์ `main_output` ด้วย
disallow_pic_outputs ค่าเริ่มต้นคือ False
ควรสร้างเอาต์พุต PIC หรือไม่
disallow_nopic_outputs ค่าเริ่มต้นคือ False
ควรสร้างเอาต์พุต NOPIC หรือไม่
additional_inputs ค่าเริ่มต้นคือ []
รายไฟล์เพิ่มเติมที่จําเป็นสําหรับการคอมไพล์ srcs

configure_features

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

สร้างอินสแตนซ์ feature_configuration ต้องใช้ข้อมูลโค้ดการกำหนดค่า cpp

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
ctx ctx หรือ None ค่าเริ่มต้นคือ None
บริบทของกฎ
cc_toolchain ต้องระบุ
cc_toolchain ที่เรากำหนดค่าฟีเจอร์
language สตริง หรือ 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" ลงใน Toolchain และเพิ่มสตริงที่เกี่ยวข้องเป็น "Feature" ในไฟล์ BUILD

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

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

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: หากเปิดใช้การกําหนดค่าการดําเนินการหนึ่งๆ ระบบจะใช้ชุด Flag กับการดำเนินการที่เกี่ยวข้อง

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

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

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

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

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

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

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

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

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

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

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

toolchain_identifier ต้องระบุ

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

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

host_system_name สตริง หรือ 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 ค่าเริ่มต้นคือ []
ตัวแปร "ทำให้" เป็นตัวแปรที่กฎเข้าถึงได้
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 การคอมไพล์เพิ่มเติม (copts)
include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีรวม
quote_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีรวมคำพูด
system_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของไดเรกทอรีรวมของระบบ
framework_include_directories depset หรือ None ค่าเริ่มต้นคือ None
Depset ของเฟรมเวิร์กรวมไดเรกทอรี
preprocessor_defines depset หรือ None ค่าเริ่มต้นคือ None
Depset ของการกำหนดตัวประมวลผลล่วงหน้า
thinlto_index string หรือ None ค่าเริ่มต้นคือ None
เส้นทางไฟล์ดัชนี LTO
thinlto_input_bitcode_file สตริง หรือ None ค่าเริ่มต้นคือ None
ไฟล์บิตโค้ดที่ส่งไปยังแบ็กเอนด์ LTO
thinlto_output_object_file สตริง หรือ None ค่าเริ่มต้นคือ None
ออบเจ็กต์ไฟล์ที่แสดงผลโดยแบ็กเอนด์ LTO
use_pic ค่าเริ่มต้นคือ False
เมื่อเป็น "จริง" การคอมไพล์จะสร้างโค้ดที่ไม่ขึ้นอยู่กับตำแหน่ง
add_legacy_cxx_options ค่าเริ่มต้นคือ 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
string; ค่าเริ่มต้นคือ ''
ลบล้างเส้นทางเริ่มต้นของลิงก์ไลบรารีแบบไดนามิกในไดเรกทอรี 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
True เมื่อใช้ linker, False เมื่อใช้ archiver ผู้โทรมีหน้าที่ซิงค์ข้อมูลนี้ให้ตรงกับชื่อการดำเนินการที่ใช้ (is_using_linker = True สำหรับการลิงก์ไลบรารีที่ดำเนินการได้หรือไลบรารีแบบไดนามิก, is_using_linker = False สำหรับเก็บถาวรไลบรารีแบบคงที่)
ค่าเริ่มต้นคือ False
True เมื่อสร้างไลบรารีแบบไดนามิก, False เมื่อสร้างไฟล์ปฏิบัติการหรือไลบรารีแบบคงที่ ผู้โทรมีหน้าที่ซิงค์ข้อมูลนี้กับชื่อการทำงานที่ใช้ ระบบจะนำช่องนี้ออกเมื่อ b/65151735 ได้รับการแก้ไขแล้ว
ค่าเริ่มต้นคือ True
เมื่อตั้งค่าเป็น "เท็จ" bazel จะแสดงตัวแปร "strip_debug_symbols" ซึ่งปกติจะใช้ในการใช้ Linker เพื่อตัดสัญลักษณ์การแก้ไขข้อบกพร่องออกจากไฟล์เอาต์พุต
ค่าเริ่มต้นคือ False
เมื่อตั้งค่าเป็น "จริง" ระบบจะตั้งค่าตัวแปร "is_cc_test"
ค่าเริ่มต้นคือ 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 หรือช่วงของสตริง หรือลำดับของสตริง ค่าเริ่มต้นคือ None
การแจ้งลิงก์ของผู้ใช้ที่ส่งผ่านเป็นสตริง ยอมรับ [String], [[String]] หรือ depset(String) ไม่แนะนำให้ใช้รูปแบบหลังเนื่องจากมีไว้เพื่อวัตถุประสงค์ด้านความเข้ากันได้เท่านั้น ระบบจะยุบชุดข้อมูลดังกล่าว หากคุณต้องการเผยแพร่ user_link_flags ผ่าน depsets() ที่ไม่แยกเป็นหลายรายการ ให้ใส่ LinkerInput ไว้ใน 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 ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น
รายการ 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 required
ชื่อของฟีเจอร์

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 เพื่อลิงก์ข้อกําหนดแบบคงที่ และ False เพื่อลิงก์แบบไดนามิก
stamp ค่าเริ่มต้นคือ 0
หากต้องการรวมข้อมูลบิลด์ไว้ในไฟล์ปฏิบัติการที่ลิงก์ไว้หรือไม่ หาก output_type เป็น "executable" หากเป็น 1 ระบบจะรวมข้อมูลบิลด์ไว้เสมอ หากเป็น 0 (ระบบจะยกเว้นข้อมูลบิลด์เริ่มต้นเสมอ หากเป็น -1 ระบบจะใช้ลักษณะการทำงานเริ่มต้น ซึ่งอาจลบล้างด้วย Flag --[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 ค่าเริ่มต้นคือ []