ยูทิลิตีสำหรับการคอมไพล์ การลิงก์ และการสร้างบรรทัดคำสั่งของ C++
สมาชิก
- action_is_enabled
- CcToolchainInfo
- รวบรวม
- configure_features
- create_cc_toolchain_config_info
- create_compilation_context
- create_compilation_outputs
- create_compile_variables
- create_library_to_link
- create_link_variables
- create_linker_input
- create_linking_context
- create_linking_context_from_compilation_outputs
- create_lto_compilation_context
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- link
- merge_compilation_contexts
- merge_compilation_outputs
action_is_enabled
bool cc_common.action_is_enabled(feature_configuration, action_name)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
feature_configuration
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
action_name
|
สตริง
ต้องระบุ ชื่อของ action_config |
CcToolchainInfo
Provider cc_common.CcToolchainInfo
คอมไพล์
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)
CompilationContext
, CcCompilationOutputs
)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
actions
|
actions;
requiredactions object.
|
feature_configuration
|
FeatureConfiguration;
requiredfeature_configuration to be queried.
|
cc_toolchain
|
Info;
requiredCcToolchainInfo provider to be used.
|
srcs
|
sequence;
ค่าเริ่มต้นคือ [] รายการไฟล์ต้นฉบับที่จะคอมไพล์ |
public_hdrs
|
sequence;
ค่าเริ่มต้นคือ [] รายการส่วนหัวที่จำเป็นสำหรับการคอมไพล์ srcs และอาจรวมอยู่ในกฎที่ขึ้นต่อกันโดยอ้อม |
private_hdrs
|
ลำดับ
ค่าเริ่มต้นคือ [] รายการส่วนหัวที่จำเป็นสำหรับการรวบรวมแหล่งที่มาและกฎที่ขึ้นต่อกันไม่ควรมี |
includes
|
sequence หรือ depset
ค่าเริ่มต้นคือ [] เส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงทั้งด้วยเครื่องหมายวงเล็บมุมและเครื่องหมายคำพูด โดยปกติจะส่งด้วย -I ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
quote_includes
|
sequence;
ค่าเริ่มต้นคือ [] เส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงโดยเครื่องหมายคำพูด เช่น #include "foo/bar/header.h" โดยอาจเป็นแบบสัมพัทธ์กับรูทของ Exec หรือแบบสัมบูรณ์ก็ได้ โดยปกติจะส่งผ่านด้วย -iquote ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
system_includes
|
sequence;
ค่าเริ่มต้นคือ [] เส้นทางการค้นหาสำหรับไฟล์ส่วนหัวที่อ้างอิงโดยวงเล็บเหลี่ยม เช่น #include <foo/bar/header.h> โดยอาจเป็นเส้นทางที่สัมพันธ์กับรูทการดำเนินการหรือเส้นทางแบบสัมบูรณ์ โดยปกติจะส่งผ่านด้วย -isystem ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
framework_includes
|
sequence;
ค่าเริ่มต้นคือ [] เส้นทางการค้นหาไฟล์ส่วนหัวจากเฟรมเวิร์กของ Apple โดยอาจเป็นแบบสัมพัทธ์กับรูทของ Exec หรือแบบสัมบูรณ์ก็ได้ โดยปกติจะส่งด้วย -F ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
defines
|
sequence;
ค่าเริ่มต้นคือ [] ชุดของคำจำกัดความที่จำเป็นในการคอมไพล์เป้าหมายนี้ โดยแต่ละคำจำกัดความจะเป็นสตริง ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
local_defines
|
sequence;
ค่าเริ่มต้นคือ [] ชุดของคำจำกัดความที่จำเป็นในการคอมไพล์เป้าหมายนี้ โดยแต่ละคำจำกัดความจะเป็นสตริง ไม่ได้ส่งต่อแบบทรานซิทีฟไปยังทรัพยากรที่ขึ้นต่อกัน |
include_prefix
|
string;
ค่าเริ่มต้นคือ '' คำนำหน้าที่จะเพิ่มลงในเส้นทางของส่วนหัวของกฎนี้ เมื่อตั้งค่าแล้ว ระบบจะเข้าถึงส่วนหัวในแอตทริบิวต์ hdrs ของกฎนี้ได้ที่ค่าของแอตทริบิวต์นี้ซึ่งนำหน้าเส้นทางที่สัมพันธ์กับที่เก็บ ระบบจะนำคำนำหน้าในแอตทริบิวต์ strip_include_prefix ออกก่อนที่จะเพิ่มคำนำหน้านี้ |
strip_include_prefix
|
string;
ค่าเริ่มต้นคือ '' คำนำหน้าที่จะนำออกจากเส้นทางของส่วนหัวของกฎนี้ เมื่อตั้งค่าแล้ว ระบบจะเข้าถึงส่วนหัวในแอตทริบิวต์ hdrs ของกฎนี้ได้ที่เส้นทางของส่วนหัวโดยตัดคำนำหน้านี้ออก หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะถือว่าเป็นเส้นทางแบบสัมพัทธ์ของแพ็กเกจ หากเป็นเส้นทางสัมบูรณ์ ระบบจะถือว่าเป็นเส้นทางสัมพัทธ์ของที่เก็บ ระบบจะเพิ่มคำนำหน้าในแอตทริบิวต์ include_prefix หลังจากที่นำคำนำหน้านี้ออก |
user_compile_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการตัวเลือกการคอมไพล์เพิ่มเติม |
conly_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการตัวเลือกการคอมไพล์เพิ่มเติมสำหรับการคอมไพล์ C |
cxx_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการตัวเลือกการคอมไพล์เพิ่มเติมสำหรับการคอมไพล์ C++ |
compilation_contexts
|
sequence;
ค่าเริ่มต้นคือ [] ส่วนหัวจากการขึ้นต่อกันที่ใช้สำหรับการคอมไพล์ |
name
|
string;
required ใช้สำหรับตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างขึ้นด้วยเมธอดนี้ ดูอาร์กิวเมนต์ `main_output` ด้วย |
disallow_pic_outputs
|
bool;
ค่าเริ่มต้นคือ False ควรสร้างเอาต์พุต PIC หรือไม่ |
disallow_nopic_outputs
|
bool;
ค่าเริ่มต้นคือ False ควรสร้างเอาต์พุต NOPIC หรือไม่ |
additional_inputs
|
sequence;
ค่าเริ่มต้นคือ [] รายการไฟล์เพิ่มเติมที่จำเป็นสำหรับการคอมไพล์ srcs |
module_interfaces
|
sequence;
ค่าเริ่มต้นคือ unbound รายการไฟล์ต้นฉบับของอินเทอร์เฟซโมดูลที่จะคอมไพล์ หมายเหตุ: ฟีเจอร์นี้ยังอยู่ในช่วงทดลองและจะเปิดใช้ได้ด้วย --experimental_cpp_modules เท่านั้น |
configure_features
FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
ctx
|
ctx หรือ None ;
ค่าเริ่มต้นคือ None บริบทของกฎ |
cc_toolchain
|
Info;
required cc_toolchain for which we configure features. |
language
|
string หรือ None ;
ค่าเริ่มต้นคือ None ภาษาที่จะกำหนดค่า: c++ หรือ objc (ค่าเริ่มต้นคือ c++) |
requested_features
|
sequence;
ค่าเริ่มต้นคือ [] รายการฟีเจอร์ที่จะเปิดใช้ |
unsupported_features
|
sequence;
ค่าเริ่มต้นคือ [] รายการฟีเจอร์ที่กฎปัจจุบันไม่รองรับ |
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)
CcToolchainConfigInfo
ผู้ให้บริการ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
ctx
|
ctx;
required บริบทของกฎ |
features
|
sequence;
ค่าเริ่มต้นคือ [] มีข้อกำหนดของฟีเจอร์ทั้งหมด อาร์กิวเมนต์
- provides มีชื่อของฟีเจอร์หรือการกำหนดค่าการดำเนินการอื่นที่เราต้องการเปิดใช้- provides มีค่าเดียวกับ "provides" ในฟีเจอร์หรือการกำหนดค่าการดำเนินการอื่นที่เราต้องการเปิดใช้ ใช้เพื่อตรวจสอบว่าฟีเจอร์ที่เข้ากันไม่ได้จะไม่เปิดใช้งานพร้อมกันโดยไม่ได้ตั้งใจ ซึ่งจะทำให้เกิดข้อผิดพลาดของคอมไพเลอร์ที่วินิจฉัยได้ยาก
|
action_configs
|
sequence;
ค่าเริ่มต้นคือ [] การกำหนดค่าการดำเนินการจะสอดคล้องกับการดำเนินการของ Bazel และอนุญาตให้เลือกเครื่องมือตามฟีเจอร์ที่เปิดใช้งาน การเปิดใช้งานการกำหนดค่าการดำเนินการจะเกิดขึ้นตามความหมายเดียวกับฟีเจอร์ โดยฟีเจอร์สามารถ "กำหนด" หรือ "บอกเป็นนัย" ถึงการกำหนดค่าการดำเนินการในลักษณะเดียวกับที่ฟีเจอร์อื่นทำ อาร์กิวเมนต์
|
artifact_name_patterns
|
sequence;
ค่าเริ่มต้นคือ [] ชื่อของอาร์ติแฟกต์ของอาร์ติแฟกต์อินพุตหรือเอาต์พุตหมวดหมู่ที่กำหนดไปยังการดำเนินการ อาร์กิวเมนต์
|
cxx_builtin_include_directories
|
sequence;
ค่าเริ่มต้นคือ [] มีไดเรกทอรีรวมในตัวสำหรับการคอมไพล์ C++ เส้นทางเหล่านี้ควรเป็นเส้นทางที่คอมไพเลอร์ใช้และโดยทั่วไปจะสัมพันธ์กับรูทของ Exec คุณกำหนดเส้นทางที่คอมไพเลอร์ใช้ได้โดยใช้ "gcc -E -xc++ - -v" ปัจจุบันเราใช้เส้นทาง C++ สำหรับการคอมไพล์ C ด้วย ซึ่งปลอดภัยตราบใดที่ไม่มีการตั้งชื่อไฟล์ส่วนหัว C++ และ C ซ้ำกัน ระบบจะแก้ไขเส้นทางแบบสัมพัทธ์โดยอิงตามไดเรกทอรีของไฟล์การกำหนดค่า หากคอมไพเลอร์รองรับ --sysroot เส้นทางเหล่านี้ควรใช้ %sysroot% แทนเส้นทางรวม และระบุแอตทริบิวต์ sysroot เพื่อให้ข้อมูลที่จำเป็นแก่ Blaze ในการแทนที่ที่ถูกต้อง |
toolchain_identifier
|
string;
required ตัวระบุที่ไม่ซ้ำกันของ Toolchain ภายในรุ่น Crosstool ต้องใช้ชื่อนี้เป็นชื่อไดเรกทอรีในเส้นทางได้ โดยต้องตรงกับนิพจน์ทั่วไป [a-zA-Z_][\.\- \w]* |
host_system_name
|
string หรือ None ;
ค่าเริ่มต้นคือ None ไม่สนใจ |
target_system_name
|
string หรือ None ;
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว ชื่อระบบ GNU สตริงจะแสดงต่อ CcToolchainInfo.target_gnu_system_name |
target_cpu
|
string หรือ None ;
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว: ใช้ข้อจำกัดตาม CPU แทน หากสตริงเป็น "k8" ระบบจะไม่รวม `target_cpu` ไว้ในชื่อไฟล์ของข้อมูลโปรไฟล์ FDO ดิบ |
target_libc
|
string หรือ None
ค่าเริ่มต้นคือ None เลิกใช้งานแล้ว: ใช้ข้อจํากัดตามระบบปฏิบัติการแทน สตริงเวอร์ชัน libc (เช่น "glibc-2.2.2") หากสตริงเป็น "macosx" ระบบจะถือว่าแพลตฟอร์มคือ MacOS ไม่เช่นนั้นจะเป็น Linux สตริงจะแสดงต่อ CcToolchainInfo.libc |
compiler
|
สตริง
ต้องระบุ สตริงคอมไพเลอร์ (เช่น "gcc") คอมไพเลอร์ของเครื่องมือปัจจุบันจะแสดงต่อ `@bazel_tools//tools/cpp:compiler (compiler_flag)` เป็นค่าแฟล็ก เป้าหมายที่ต้องใช้แฟล็กเฉพาะคอมไพเลอร์สามารถใช้ config_settings ใน https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD ในคำสั่ง select() หรือสร้าง config_setting ที่กำหนดเองได้หากการตั้งค่าที่มีอยู่ไม่เพียงพอ |
abi_version
|
string หรือ None
ค่าเริ่มต้นคือ None ABI ที่ใช้งานอยู่ ซึ่งเป็นเวอร์ชัน gcc เช่น "gcc-3.4" สตริงจะตั้งค่าเป็นตัวแปร ABI ของชุดเครื่องมือ C++ |
abi_libc_version
|
string หรือ None
ค่าเริ่มต้นคือ None เวอร์ชัน glibc ที่ใช้โดย abi ที่เราใช้อยู่ สตริงจะตั้งค่าเป็นตัวแปร ABI_LIBC_VERSION ของชุดเครื่องมือ C++ |
tool_paths
|
sequence;
ค่าเริ่มต้นคือ [] ตำแหน่งเครื่องมือ อาร์กิวเมนต์
|
make_variables
|
sequence
ค่าเริ่มต้นคือ [] ตัวแปร Make ที่กฎเข้าถึงได้ |
builtin_sysroot
|
string หรือ None ;
ค่าเริ่มต้นคือ None Sysroot ในตัว หากไม่มีแอตทริบิวต์นี้ Bazel จะไม่อนุญาตให้ใช้ sysroot อื่น เช่น ผ่านตัวเลือก --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)
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 รายการไฟล์ออบเจ็กต์ 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)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
cc_toolchain
|
Info;
required cc_toolchain for which we are creating build variables. |
feature_configuration
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
source_file
|
ค่าเริ่มต้นคือ None ไฟล์ต้นฉบับที่ไม่บังคับสำหรับการคอมไพล์ โปรดส่ง source_file ที่นี่แทนการต่อท้ายไว้ที่ส่วนท้ายของบรรทัดคำสั่งที่สร้างจาก cc_common.get_memory_inefficient_command_line เนื่องจากจะช่วยให้ผู้เขียนเครื่องมือสามารถระบุและวางตำแหน่งแฟล็กคอมไพเลอร์ได้อย่างเหมาะสม |
output_file
|
ค่าเริ่มต้นคือ None ไฟล์เอาต์พุตของการคอมไพล์ (ไม่บังคับ) โปรดส่ง output_file ที่นี่แทนการต่อท้ายไว้ที่ท้ายบรรทัดคำสั่งที่สร้างจาก cc_common.get_memory_inefficient_command_line เนื่องจากจะช่วยให้ผู้เขียนเครื่องมือสามารถระบุและวางตำแหน่งแฟล็กคอมไพเลอร์ได้อย่างเหมาะสม |
user_compile_flags
|
ลำดับของสตริง หรือ None
ค่าเริ่มต้นคือ None รายการแฟล็กการคอมไพล์เพิ่มเติม (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
|
string หรือ None ;
ค่าเริ่มต้นคือ None ไฟล์ Bitcode ที่ป้อนไปยังแบ็กเอนด์ LTO |
thinlto_output_object_file
|
string หรือ None ;
ค่าเริ่มต้นคือ None ไฟล์ออบเจ็กต์ที่เอาต์พุตโดยแบ็กเอนด์ LTO |
use_pic
|
bool;
ค่าเริ่มต้นคือ False เมื่อเป็นจริง การคอมไพล์จะสร้างโค้ดที่ไม่ขึ้นอยู่กับตำแหน่ง |
add_legacy_cxx_options
|
bool;
ค่าเริ่มต้นคือ False ไม่ได้ใช้ |
variables_extension
|
dict;
ค่าเริ่มต้นคือ unbound พจนานุกรมของตัวแปรเพิ่มเติมที่ใช้โดยการดำเนินการคอมไพล์ |
create_library_to_link
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
|
ลำดับของไฟล์
ค่าเริ่มต้นคือ unbound ทดลองใช้ อย่าใช้ |
objects
|
ลำดับของไฟล์
ค่าเริ่มต้นคือ unbound ทดลองใช้ อย่าใช้ |
alwayslink
|
bool;
ค่าเริ่มต้นคือ False จะลิงก์ไลบรารี/ออบเจ็กต์แบบคงที่ในบล็อก --whole_archive หรือไม่ |
dynamic_library_symlink_path
|
string;
ค่าเริ่มต้นคือ '' ลบล้างเส้นทางเริ่มต้นของลิงก์ไลบรารีแบบไดนามิกในไดเรกทอรี solib สตริงว่างเพื่อใช้ค่าเริ่มต้น |
interface_library_symlink_path
|
string;
ค่าเริ่มต้นคือ '' ลบล้างเส้นทางเริ่มต้นของลิงก์ไลบรารีอินเทอร์เฟซในไดเรกทอรี solib สตริงว่างเพื่อใช้ค่าเริ่มต้น |
create_link_variables
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)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
cc_toolchain
|
Info;
required cc_toolchain for which we are creating build variables. |
feature_configuration
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
library_search_directories
|
depset;
ค่าเริ่มต้นคือ [] Depset ของไดเรกทอรีที่ Linker จะค้นหาไลบรารีในเวลาลิงก์ |
runtime_library_search_directories
|
depset;
ค่าเริ่มต้นคือ [] Depset ของไดเรกทอรีที่โปรแกรมโหลดจะค้นหาไลบรารีในขณะรันไทม์ |
user_link_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการแฟล็กลิงก์เพิ่มเติม (linkopts) |
output_file
|
ค่าเริ่มต้นคือ None เส้นทางไฟล์เอาต์พุตที่ไม่บังคับ |
param_file
|
ค่าเริ่มต้นคือ None เส้นทางไฟล์พารามิเตอร์ที่ไม่บังคับ |
is_using_linker
|
bool
ค่าเริ่มต้นคือ True เป็นจริงเมื่อใช้ Linker และเป็นเท็จเมื่อใช้ Archiver ผู้เรียกมีหน้าที่รับผิดชอบในการซิงค์ค่านี้กับชื่อการดำเนินการที่ใช้ (is_using_linker = True สำหรับการลิงก์ไฟล์ที่เรียกใช้งานได้หรือไลบรารีแบบไดนามิก, is_using_linker = False สำหรับการเก็บถาวรไลบรารีแบบคงที่) |
is_linking_dynamic_library
|
bool
ค่าเริ่มต้นคือ False True เมื่อสร้างไลบรารีแบบไดนามิก False เมื่อเป็นไลบรารีแบบคงที่หรือแบบเรียกใช้งาน ผู้เรียกใช้มีหน้าที่รับผิดชอบในการซิงค์ชื่อนี้กับชื่อการกระทำที่ใช้ ระบบจะนำช่องนี้ออกเมื่อแก้ไข b/65151735 แล้ว |
must_keep_debug
|
bool;
ค่าเริ่มต้นคือ True เมื่อตั้งค่าเป็น False Bazel จะแสดงตัวแปร "strip_debug_symbols" ซึ่งมักใช้เพื่อใช้ Linker เพื่อลบสัญลักษณ์การแก้ไขข้อบกพร่องออกจากไฟล์เอาต์พุต |
use_test_only_flags
|
bool;
ค่าเริ่มต้นคือ False เมื่อตั้งค่าเป็น "จริง" ระบบจะตั้งค่าตัวแปร "is_cc_test" |
is_static_linking_mode
|
bool;
ค่าเริ่มต้นคือ 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
|
user_link_flags
|
None หรือ depset ของ string หรือ sequence ของ string
ค่าเริ่มต้นคือ None แฟ็กลิงก์ผู้ใช้ที่ส่งเป็นสตริง ยอมรับ [String], [[String]] หรือ depset(String) เราไม่แนะนำให้ใช้แบบหลังเนื่องจากจะเก็บไว้เพื่อวัตถุประสงค์ด้านความเข้ากันได้เท่านั้น และจะทำให้ depset แบน หากต้องการเผยแพร่ user_link_flags ผ่าน depsets() ที่ไม่ได้ Flatten ให้ห่อด้วย LinkerInput เพื่อไม่ให้ Flatten จนกว่าจะสิ้นสุด |
additional_inputs
|
None หรือ depset
ค่าเริ่มต้นคือ None สำหรับอินพุตเพิ่มเติมในการดำเนินการลิงก์ เช่น สคริปต์การลิงก์ |
create_linking_context
LinkingContext cc_common.create_linking_context(linker_inputs)
LinkingContext
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
linker_inputs
|
depset
required Depset ของ 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)
CcLinkingContext
, CcLinkingOutputs
)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
actions
|
actions;
requiredactions object.
|
name
|
string;
required ใช้สำหรับตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างขึ้นด้วยเมธอดนี้ |
feature_configuration
|
FeatureConfiguration;
requiredfeature_configuration to be queried.
|
cc_toolchain
|
Info;
requiredCcToolchainInfo provider to be used.
|
language
|
สตริง;
ค่าเริ่มต้นคือ 'c++' ขณะนี้รองรับเฉพาะ C++ อย่าใช้พารามิเตอร์นี้ |
disallow_static_libraries
|
bool;
ค่าเริ่มต้นคือ False ควรกำหนดให้สร้างไลบรารีแบบคงที่หรือไม่ |
disallow_dynamic_library
|
bool;
ค่าเริ่มต้นคือ False ควรกำหนดให้สร้างไลบรารีแบบไดนามิกหรือไม่ |
compilation_outputs
|
CcCompilationOutputs;
required Compilation outputs containing object files to link. |
linking_contexts
|
ลำดับ
ค่าเริ่มต้นคือ [] ไลบรารีจากทรัพยากร Dependency ระบบจะลิงก์ไลบรารีเหล่านี้เข้ากับอาร์ติแฟกต์เอาต์พุตของการเรียก link() ไม่ว่าจะเป็นไบนารีหรือไลบรารี |
user_link_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการตัวเลือกการลิงก์เพิ่มเติม |
alwayslink
|
bool;
ค่าเริ่มต้นคือ False ควรกำหนดให้ลิงก์ไลบรารีนี้เสมอหรือไม่ |
additional_inputs
|
sequence;
ค่าเริ่มต้นคือ [] สำหรับอินพุตเพิ่มเติมในการดำเนินการลิงก์ เช่น สคริปต์การลิงก์ |
variables_extension
|
dict;
ค่าเริ่มต้นคือ unbound ตัวแปรเพิ่มเติมที่จะส่งไปยังการกำหนดค่า Toolchain เมื่อสร้างบรรทัดคำสั่งลิงก์ |
create_lto_compilation_context
LtoCompilationContext cc_common.create_lto_compilation_context(objects={})
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
objects
|
dict;
ค่าเริ่มต้นคือ {} แมปของออบเจ็กต์แบบเต็มไปยังออบเจ็กต์ดัชนี |
do_not_use_tools_cpp_compiler_present
None
cc_common.do_not_use_tools_cpp_compiler_present
get_environment_variables
dict cc_common.get_environment_variables(feature_configuration, action_name, variables)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
feature_configuration
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
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
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
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)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
feature_configuration
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
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
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
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
|
FeatureConfiguration;
required การกำหนดค่าฟีเจอร์ที่จะค้นหา |
feature_name
|
สตริง
ต้องระบุ ชื่อของฟีเจอร์ |
ลิงก์
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={})
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
actions
|
actions;
requiredactions object.
|
name
|
string;
required ใช้สำหรับตั้งชื่ออาร์ติแฟกต์เอาต์พุตของการดำเนินการที่สร้างขึ้นด้วยเมธอดนี้ |
feature_configuration
|
FeatureConfiguration;
requiredfeature_configuration to be queried.
|
cc_toolchain
|
Info;
requiredCcToolchainInfo provider to be used.
|
language
|
สตริง;
ค่าเริ่มต้นคือ 'c++' ขณะนี้รองรับเฉพาะ C++ อย่าใช้พารามิเตอร์นี้ |
output_type
|
string;
ค่าเริ่มต้นคือ 'executable' อาจเป็น "executable" หรือ "dynamic_library" |
link_deps_statically
|
bool;
ค่าเริ่มต้นคือ True True เพื่อลิงก์การอ้างอิงแบบคงที่, False เพื่อลิงก์แบบไดนามิก |
compilation_outputs
|
CcCompilationOutputs หรือ None
ค่าเริ่มต้นคือ None เอาต์พุตการคอมไพล์ที่มีไฟล์ออบเจ็กต์ที่จะลิงก์ |
linking_contexts
|
sequence;
ค่าเริ่มต้นคือ [] การลิงก์บริบทจากทรัพยากร Dependency ที่จะลิงก์ไปยังบริบทการลิงก์ที่สร้างขึ้นโดยกฎนี้ |
user_link_flags
|
sequence;
ค่าเริ่มต้นคือ [] รายการตัวเลือกของ Linker เพิ่มเติม |
stamp
|
int;
ค่าเริ่มต้นคือ 0 เลือกว่าจะรวมข้อมูลการสร้างไว้ในไฟล์ที่เรียกใช้งานที่ลิงก์หรือไม่ หาก output_type คือ "executable" หากเป็น 1 ระบบจะรวมข้อมูลบิลด์ไว้เสมอ หากเป็น 0 (ระบบจะยกเว้นข้อมูลการสร้างเริ่มต้นเสมอ หากเป็น -1 ระบบจะใช้ลักษณะการทำงานเริ่มต้น ซึ่งอาจถูกลบล้างโดยแฟล็ก --[no]stamp ควรยกเลิกการตั้งค่านี้ (หรือตั้งค่าเป็น 0) เมื่อสร้างเอาต์พุตที่เรียกใช้งานได้สำหรับกฎการทดสอบ |
additional_inputs
|
sequence หรือ depset
ค่าเริ่มต้นคือ [] สำหรับอินพุตเพิ่มเติมในการดำเนินการลิงก์ เช่น สคริปต์การลิงก์ |
additional_outputs
|
sequence
ค่าเริ่มต้นคือ [] สำหรับเอาต์พุตเพิ่มเติมในการดำเนินการลิงก์ เช่น ไฟล์แผนที่ |
variables_extension
|
dict;
ค่าเริ่มต้นคือ {} ตัวแปรเพิ่มเติมที่จะส่งไปยังการกำหนดค่า Toolchain เมื่อใช้บรรทัดคำสั่งสร้างลิงก์ |
merge_compilation_contexts
CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])
CompilationContexts
หลายรายการเป็นรายการเดียว
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
compilation_contexts
|
sequence
ค่าเริ่มต้นคือ [] รายการของ CompilationContexts ที่จะผสาน ระบบจะส่งออกส่วนหัวของแต่ละบริบทโดยใช้ฟิลด์โดยตรงในผู้ให้บริการที่ส่งคืน
|
merge_compilation_outputs
CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
compilation_outputs
|
sequence;
ค่าเริ่มต้นคือ [] |