cc_common

Laporkan masalah Lihat sumber Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Utilitas untuk kompilasi, penautan, dan pembuatan command line C++.

Anggota

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Menampilkan True jika action_config tertentu diaktifkan dalam konfigurasi fitur.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
action_name string; required
Nama action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

Kunci yang digunakan untuk mengambil penyedia yang berisi informasi tentang toolchain C++ yang sedang digunakan

compile

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)

Harus digunakan untuk kompilasi C++. Menampilkan tuple (CompilationContext, CcCompilationOutputs).

Parameter

Parameter Deskripsi
actions actions; required
Objek actions.
feature_configuration FeatureConfiguration; required
feature_configuration untuk dikueri.
cc_toolchain Info; wajib diisi
penyedia CcToolchainInfo yang akan digunakan.
srcs sequence; default is []
Daftar file sumber yang akan dikompilasi.
public_hdrs sequence; default is []
Daftar header yang diperlukan untuk kompilasi src dan dapat disertakan secara transitif oleh aturan dependen.
private_hdrs sequence; default is []
Daftar header yang diperlukan untuk kompilasi src dan TIDAK boleh disertakan oleh aturan dependen.
includes sequence; atau depset; default adalah []
Jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut dan tanda petik. Biasanya diteruskan dengan -I. Ditransmisikan ke dependen secara transitif.
quote_includes sequence; default adalah []
Jalur penelusuran untuk file header yang dirujuk oleh tanda kutip, misalnya #include "foo/bar/header.h". Jalur ini dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -iquote. Ditransmisikan ke dependen secara transitif.
system_includes sequence; default is []
Jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut, misalnya #include <foo/bar/header.h>. Jalur ini dapat berupa jalur relatif terhadap root exec atau jalur absolut. Biasanya diteruskan dengan -isystem. Ditransmisikan ke dependen secara transitif.
framework_includes sequence; default is []
Jalur penelusuran untuk file header dari framework Apple. Jalur ini dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -F. Ditransmisikan ke dependen secara transitif.
defines sequence; default is []
Set defines yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Ditransmisikan ke dependen secara transitif.
local_defines sequence; default is []
Set defines yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Tidak disebarkan ke dependensi secara transitif.
include_prefix string; default is ''
Awalan yang akan ditambahkan ke jalur header aturan ini. Jika ditetapkan, header dalam atribut hdrs aturan ini dapat diakses di nilai atribut ini yang ditambahkan ke jalur relatif repositorinya. Awalan dalam atribut strip_include_prefix dihapus sebelum awalan ini ditambahkan.
strip_include_prefix string; default is ''
Awalan yang akan dihapus dari jalur header aturan ini. Jika disetel, header dalam atribut hdrs dari aturan ini dapat diakses di jalur dengan awalan ini yang dihentikan. Jika ini adalah jalur relatif, jalur ini dianggap sebagai jalur relatif paket. Jika absolut, jalur tersebut dipahami sebagai jalur relatif repositori. Awalan dalam atribut include_prefix ditambahkan setelah awalan ini dihapus.
user_compile_flags sequence; default adalah []
Daftar opsi kompilasi tambahan.
conly_flags sequence; default adalah []
Daftar tambahan opsi kompilasi untuk kompilasi C.
cxx_flags sequence; default adalah []
Daftar opsi kompilasi tambahan untuk kompilasi C++.
compilation_contexts sequence; default adalah []
Header dari dependensi yang digunakan untuk kompilasi.
name string; wajib diisi
Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini. Lihat juga argumen `main_output`.
disallow_pic_outputs bool; defaultnya adalah False
Apakah output PIC harus dibuat.
disallow_nopic_outputs bool; default adalah False
Apakah output NOPIC harus dibuat.
additional_inputs sequence; default is []
Daftar file tambahan yang diperlukan untuk kompilasi src
module_interfaces sequence; default is unbound
Daftar file sumber antarmuka modul yang akan dikompilasi. Catatan: ini adalah fitur eksperimental, hanya diaktifkan dengan --experimental_cpp_modules

configure_features

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

Membuat instance feature_configuration. Memerlukan fragmen konfigurasi cpp.

Parameter

Parameter Deskripsi
ctx ctx; atau None; defaultnya adalah None
Konteks aturan.
cc_toolchain Info; wajib
cc_toolchain yang digunakan untuk mengonfigurasi fitur.
language string; atau None; default adalah None
Bahasa yang akan dikonfigurasi: c++ atau objc (default c++)
requested_features sequence; default adalah []
Daftar fitur yang akan diaktifkan.
unsupported_features sequence; default is []
Daftar fitur yang tidak didukung oleh aturan saat ini.

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)

Membuat penyedia CcToolchainConfigInfo

Parameter

Parameter Deskripsi
ctx ctx; wajib ada
Konteks aturan.
features sequence; default adalah []
Berisi semua spesifikasi tanda untuk satu fitur.

Argumen:

name: Nama fitur. Anda dapat memperkenalkan fitur tanpa mengubah Bazel dengan menambahkan bagian 'feature' ke toolchain dan menambahkan string yang sesuai sebagai fitur dalam file BUILD.

enabled: Jika 'True', fitur ini diaktifkan kecuali jika jenis aturan secara eksplisit menandainya sebagai tidak didukung.

flag_sets: Daftar FlagSet. Jika fitur yang diberikan diaktifkan, set tanda akan diterapkan untuk tindakan yang ditentukan.

env_sets: daftar EnvSet. Jika fitur yang diberikan diaktifkan, setelan lingkungan akan diterapkan untuk tindakan yang ditentukan.

requires: Daftar set fitur yang menentukan kapan fitur ini didukung oleh toolchain. Fitur ini didukung jika salah satu set fitur diterapkan sepenuhnya, yaitu saat semua fitur dari set fitur diaktifkan. Jika requires tidak disertakan, fitur ini didukung secara independen dari fitur lain yang diaktifkan. Gunakan ini misalnya untuk memfilter tanda, bergantung pada mode build yang diaktifkan (opt / fastbuild / dbg).

implies: Daftar string fitur atau konfigurasi tindakan yang diaktifkan secara otomatis saat fitur ini diaktifkan. Jika salah satu fitur atau konfigurasi tindakan tersirat tidak dapat diaktifkan, fitur ini juga tidak akan diaktifkan (tanpa pemberitahuan).

provides: Daftar nama yang bertentangan dengan fitur ini.

Fitur tidak dapat diaktifkan jika:
- provides berisi nama konfigurasi fitur atau tindakan lain yang ingin kita aktifkan.
- provides berisi nilai yang sama dengan 'provides' dalam konfigurasi fitur atau tindakan lain yang ingin kita aktifkan. Gunakan ini untuk memastikan bahwa fitur yang tidak kompatibel tidak dapat diaktifkan secara tidak sengaja pada saat yang sama, sehingga menyebabkan error compiler yang sulit didiagnosis.
action_configs sequence; default adalah []
Konfigurasi tindakan sesuai dengan tindakan Bazel, dan memungkinkan pemilihan alat berdasarkan fitur yang diaktifkan. Pengaktifan konfigurasi tindakan terjadi dengan semantik yang sama seperti fitur: fitur dapat 'memerlukan' atau 'menyiratkan' konfigurasi tindakan dengan cara yang sama seperti fitur lainnya.

Argumen:

action_name: Nama tindakan Bazel yang diterapkan oleh konfigurasi ini, misalnya, 'c-compile' atau 'c-module-compile'.

enabled: Jika 'True', tindakan ini diaktifkan kecuali jika jenis aturan secara eksplisit menandainya sebagai tidak didukung.

tools: Alat yang diterapkan pada tindakan akan menjadi alat pertama dengan set fitur yang cocok dengan konfigurasi fitur. Error akan ditampilkan jika tidak ada alat yang cocok dengan konfigurasi fitur yang diberikan. Oleh karena itu, sebaiknya berikan alat default dengan set fitur kosong.

flag_sets: Jika konfigurasi tindakan yang diberikan diaktifkan, setelan tanda akan diterapkan ke tindakan yang sesuai.

implies: Daftar fitur atau konfigurasi tindakan yang otomatis diaktifkan saat konfigurasi tindakan ini diaktifkan. Jika salah satu fitur atau konfigurasi tindakan tersirat tidak dapat diaktifkan, konfigurasi tindakan ini juga tidak akan diaktifkan (tanpa pemberitahuan).

artifact_name_patterns sequence; default is []
Nama untuk artefak dari kategori tertentu dari artefak input atau output ke suatu tindakan.

Argumen:

category_name: Kategori artefak yang berlaku untuk pilihan ini. Kolom ini dibandingkan dengan daftar kategori yang ditentukan di Bazel. Contoh kategori mencakup "linked_output" atau artefak untuk pilihan ini. Bersama dengan ekstensi, nama ini digunakan untuk membuat nama artefak berdasarkan nama target.

extension: Ekstensi untuk membuat artefak untuk pilihan ini. Bersama dengan awalan, nama ini digunakan untuk membuat nama artefak berdasarkan nama target.

cxx_builtin_include_directories sequence; defaultnya adalah []

Direktori include bawaan untuk kompilasi C++. Ini harus berupa jalur persis yang digunakan oleh compiler, dan umumnya relatif terhadap root eksekusi.

Jalur yang digunakan oleh compiler dapat ditentukan oleh 'gcc -E -xc++ - -v'.

Saat ini kami menggunakan jalur C++ juga untuk kompilasi C, yang aman selama tidak ada konflik nama antara file header C++ dan C.

Jalur relatif diselesaikan relatif terhadap direktori file konfigurasi.

Jika compiler memiliki dukungan --sysroot, jalur ini harus menggunakan %sysroot% dan bukan jalur include, serta menentukan atribut sysroot untuk memberikan informasi yang diperlukan blaze agar dapat melakukan penggantian yang benar.

toolchain_identifier string; required

ID unik toolchain dalam rilis crosstool. Nama ini harus dapat digunakan sebagai nama direktori dalam jalur.

Harus cocok dengan regex berikut: [a-zA-Z_][\.\- \w]*

host_system_name string; atau None; defaultnya adalah None
Diabaikan.
target_system_name string; atau None; defaultnya adalah None
Tidak digunakan lagi. Nama Sistem GNU. String ini diekspos ke CcToolchainInfo.target_gnu_system_name.
target_cpu string; atau None; default adalah None
Tidak digunakan lagi: Gunakan batasan berbasis CPU sebagai gantinya. Jika stringnya adalah "k8", `target_cpu` akan dihilangkan dari nama file data profil FDO mentah.
target_libc string; atau None; default adalah None
Tidak digunakan lagi: Gunakan batasan berbasis OS sebagai gantinya. String versi libc (misalnya, "glibc-2.2.2"). Jika stringnya adalah "macosx", platform diasumsikan sebagai MacOS. Jika tidak, Linux. String diekspos ke CcToolchainInfo.libc.
compiler string; wajib
String compiler (misalnya, "gcc"). Compiler toolchain saat ini diekspos ke `@bazel_tools//tools/cpp:compiler (compiler_flag)` sebagai nilai flag. Target yang memerlukan flag khusus compiler dapat menggunakan config_settings di https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD dalam pernyataan select() atau membuat config_setting kustom jika setelan yang ada tidak cukup.
abi_version string; atau None; defaultnya adalah None
ABI yang digunakan, yang merupakan versi gcc. Mis.: "gcc-3.4". String disetel ke ABI variabel toolchain C++.
abi_libc_version string; atau None; default-nya adalah None
Versi glibc yang digunakan oleh ABI yang kita gunakan. String ditetapkan ke variabel toolchain C++ ABI_LIBC_VERSION.
tool_paths sequence; default adalah []
Lokasi alat.

Argumen:

name: Nama alat.

path: Lokasi alat; Dapat berupa jalur absolut (jika toolchain tidak hermetik), atau jalur relatif ke paket cc_toolchain.

make_variables sequence; default is []
Variabel make yang dapat diakses oleh aturan.
builtin_sysroot string; atau None; defaultnya adalah None
Sysroot bawaan. Jika atribut ini tidak ada, Bazel tidak mengizinkan penggunaan sysroot yang berbeda, yaitu melalui opsi --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)

Membuat CompilationContext.

Parameter

Parameter Deskripsi
headers default adalah unbound
Kumpulan header yang diperlukan untuk mengompilasi target ini
system_includes default adalah unbound
Kumpulan jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut, yaitu #include <foo/bar/header.h>. Jalur ini dapat berupa jalur relatif terhadap root exec atau jalur absolut. Biasanya diteruskan dengan -isystem
includes default adalah unbound
Kumpulan jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut dan tanda petik.Biasanya diteruskan dengan -I
quote_includes default adalah unbound
Kumpulan jalur penelusuran untuk file header yang dirujuk oleh tanda kutip, yaitu #include "foo/bar/header.h". Jalur ini dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -iquote
framework_includes default adalah unbound
Kumpulan jalur penelusuran framework untuk file header (khusus platform Apple)
defines default adalah unbound
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Ditransmisikan secara transitif ke dependen.
local_defines default adalah unbound
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Tidak disebarkan secara transitif ke dependen.

create_compilation_outputs

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

Buat objek output kompilasi.

Parameter

Parameter Deskripsi
objects depset; atau None; default adalah None
Daftar file objek.
pic_objects depset; atau None; default adalah None
Daftar file objek gambar.

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)

Menampilkan variabel yang digunakan untuk tindakan kompilasi.

Parameter

Parameter Deskripsi
cc_toolchain Info; required
cc_toolchain yang digunakan untuk membuat variabel build.
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
source_file default adalah None
File sumber opsional untuk kompilasi. Sebaiknya teruskan source_file di sini daripada menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena dengan begitu, penulis toolchain dapat menentukan dan memosisikan tanda compiler dengan benar.
output_file default adalah None
File output kompilasi opsional. Sebaiknya teruskan output_file di sini daripada menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena dengan begitu, penulis toolchain dapat menentukan dan memosisikan tanda compiler dengan benar.
user_compile_flags sequence dari string; atau None; default adalah None
Daftar flag kompilasi tambahan (copts).
include_directories depset; atau None; default adalah None
Depset direktori yang disertakan.
quote_include_directories depset; atau None; default adalah None
Depset direktori yang disertakan kutipan.
system_include_directories depset; atau None; default-nya adalah None
Depset direktori include sistem.
framework_include_directories depset; atau None; defaultnya adalah None
Depset direktori include framework.
preprocessor_defines depset; atau None; defaultnya adalah None
Depset definisi preprosesor.
thinlto_index string; atau None; defaultnya adalah None
Jalur file indeks LTO.
thinlto_input_bitcode_file string; atau None; default adalah None
File bitcode yang menjadi input ke backend LTO.
thinlto_output_object_file string; atau None; default adalah None
File objek yang dihasilkan oleh backend LTO.
use_pic bool; default adalah False
Jika benar, kompilasi akan menghasilkan kode independen posisi.
add_legacy_cxx_options bool; defaultnya adalah False
Tidak digunakan.
variables_extension dict; default adalah unbound
Kamus variabel tambahan yang digunakan oleh tindakan kompilasi.

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

Membuat LibraryToLink

Parameter

Parameter Deskripsi
actions wajib
Objek actions.
feature_configuration default adalah None
feature_configuration yang akan dikueri.
cc_toolchain default adalah penyedia None
CcToolchainInfo yang akan digunakan.
static_library File; atau None; default adalah None
File library statis yang akan ditautkan.
pic_static_library File; atau None; default adalah None
File library statis PIC yang akan ditautkan.
dynamic_library File; atau None; defaultnya adalah None
File library dinamis yang akan ditautkan. Selalu digunakan untuk runtime dan digunakan untuk penautan jika interface_library tidak diteruskan.
interface_library File; atau None; default adalah None
File library antarmuka yang akan ditautkan.
pic_objects sequence dari File; default adalah unbound
Eksperimental, jangan gunakan
objects sequence dari File; default adalah unbound
Eksperimental, jangan gunakan
bool; default adalah False
Apakah akan menautkan library/objek statis dalam blok --whole_archive.
string; default is ''
Ganti jalur default link library dinamis di direktori solib. String kosong untuk menggunakan nilai default.
string; defaultnya adalah ''
Ganti jalur default link library antarmuka di direktori solib. String kosong untuk menggunakan nilai default.

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)

Menampilkan variabel link yang digunakan untuk tindakan penautan.

Parameter

Parameter Deskripsi
Info; required
cc_toolchain yang digunakan untuk membuat variabel build.
FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
depset; default adalah []
Depset direktori tempat linker akan mencari library pada waktu penautan.
depset; default adalah []
Depset direktori tempat loader akan mencari library saat runtime.
sequence; default is []
Daftar flag link tambahan (linkopts).
default adalah None
Jalur file output opsional.
default-nya adalah None
Jalur file parameter opsional.
bool; default adalah True
Benar saat menggunakan linker, Salah saat menggunakan pengarsip. Pemanggil bertanggung jawab untuk menyinkronkan ini dengan nama tindakan yang digunakan (is_using_linker = True untuk menautkan library dinamis atau yang dapat dieksekusi, is_using_linker = False untuk mengarsipkan library statis).
bool; default adalah False
Benar saat membuat library dinamis, Salah saat membuat library statis atau yang dapat dieksekusi. Pemanggil bertanggung jawab untuk menyinkronkan ini dengan nama tindakan yang digunakan. Kolom ini akan dihapus setelah b/65151735 diperbaiki.
bool; default adalah True
Jika disetel ke False, bazel akan mengekspos variabel 'strip_debug_symbols', yang biasanya digunakan untuk menggunakan linker guna menghapus simbol debug dari file output.
bool; default is False
When set to true, 'is_cc_test' variable will be set.
bool; defaultnya adalah True
Tidak digunakan.

create_linker_input

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

Membuat LinkerInput.

Parameter

Parameter Deskripsi
owner Label; wajib
Label target yang menghasilkan semua file yang digunakan dalam input ini.
libraries None; atau depset; defaultnya adalah None
Daftar LibraryToLink.
None; atau depset string; atau sequence string; default adalah None
Flag link pengguna yang diteruskan sebagai string. Menerima [String], [[String]], atau depset(String). Cara terakhir tidak disarankan karena hanya disimpan untuk tujuan kompatibilitas, depset diratakan. Jika Anda ingin menyebarkan user_link_flags melalui depsets() yang tidak diratakan, bungkus dengan LinkerInput agar tidak diratakan hingga akhir.
additional_inputs None; atau depset; default adalah None
Untuk input tambahan pada tindakan penautan, misalnya: skrip penautan.

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs)

Membuat LinkingContext.

Parameter

Parameter Deskripsi
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)

Harus digunakan untuk membuat aturan library yang dapat menyebarkan informasi ke hilir agar dapat ditautkan nanti oleh aturan tingkat teratas yang melakukan penautan transitif untuk membuat library yang dapat dieksekusi atau dinamis. Menampilkan tuple (CcLinkingContext, CcLinkingOutputs).

Parameter

Parameter Deskripsi
actions actions; required
Objek actions.
name string; wajib diisi
Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini.
feature_configuration FeatureConfiguration; required
feature_configuration untuk dikueri.
cc_toolchain Info; wajib diisi
penyedia CcToolchainInfo yang akan digunakan.
language string; default adalah 'c++'
Saat ini hanya C++ yang didukung. Jangan gunakan parameter ini.
disallow_static_libraries bool; default is False
Apakah library statis harus dibuat.
disallow_dynamic_library bool; default adalah False
Apakah library dinamis harus dibuat.
compilation_outputs CcCompilationOutputs; required
Output kompilasi yang berisi file objek untuk ditautkan.
linking_contexts sequence; default adalah []
Library dari dependensi. Library ini akan ditautkan ke artefak output panggilan link(), baik berupa biner maupun library.
sequence; default adalah []
Daftar tambahan opsi penautan.
bool; defaultnya adalah False
Apakah library ini harus selalu ditautkan.
additional_inputs sequence; default adalah []
Untuk input tambahan pada tindakan penautan, misalnya: skrip penautan.
variables_extension dict; default is unbound
Variabel tambahan untuk diteruskan ke konfigurasi toolchain saat membuat command line link.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

Buat konteks kompilasi LTO

Parameter

Parameter Deskripsi
objects dict; default adalah {}
peta objek lengkap ke objek indeks

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

Jangan gunakan kolom ini, satu-satunya tujuannya adalah untuk membantu migrasi dari config_setting.values{'compiler') ke config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}

get_environment_variables

dict cc_common.get_environment_variables(feature_configuration, action_name, variables)

Menampilkan variabel lingkungan yang akan ditetapkan untuk tindakan tertentu.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
action_name string; wajib
Nama tindakan. Harus berupa salah satu nama di @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables Variabel; wajib
Buat variabel yang akan digunakan untuk perluasan template.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Menampilkan persyaratan eksekusi untuk tindakan tertentu.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
action_name string; wajib
Nama tindakan. Harus berupa salah satu nama di @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)

Menampilkan tanda command line yang diratakan untuk tindakan tertentu, menggunakan variabel tertentu untuk perluasan. Meratakan set bertingkat dan idealnya tidak boleh digunakan, atau setidaknya tidak boleh lebih lama dari analisis. Pengerjaan fungsi yang efisien memori yang menampilkan Args sedang berlangsung.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
action_name string; wajib
Nama tindakan. Harus berupa salah satu nama di @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)
variables Variabel; wajib
Membangun variabel yang akan digunakan untuk perluasan template.

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

Menampilkan jalur alat untuk tindakan tertentu.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
action_name string; wajib
Nama tindakan. Harus berupa salah satu nama di @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)

Menampilkan True jika fitur tertentu diaktifkan dalam konfigurasi fitur.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; required
Konfigurasi fitur yang akan dikueri.
feature_name string; wajib
Nama fitur.

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={})

Harus digunakan untuk penautan transitif C++.

Parameter

Parameter Deskripsi
actions actions; required
Objek actions.
name string; wajib diisi
Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini.
feature_configuration FeatureConfiguration; required
feature_configuration untuk dikueri.
cc_toolchain Info; wajib diisi
penyedia CcToolchainInfo yang akan digunakan.
language string; default adalah 'c++'
Saat ini hanya C++ yang didukung. Jangan gunakan parameter ini.
output_type string; default adalah 'executable'
Dapat berupa 'executable' atau 'dynamic_library'.
bool; default is True
True untuk menautkan dependensi secara statis, False secara dinamis.
compilation_outputs CcCompilationOutputs; atau None; default adalah None
Output kompilasi yang berisi file objek untuk ditautkan.
linking_contexts sequence; default adalah []
Menautkan konteks dari dependensi untuk ditautkan ke dalam konteks penautan yang dihasilkan oleh aturan ini.
sequence; default adalah []
Daftar opsi linker tambahan.
stamp int; default is 0
Apakah akan menyertakan informasi build dalam file yang dapat dieksekusi tertaut, jika output_type adalah 'executable'. Jika 1, informasi build selalu disertakan. Jika 0 (informasi build default selalu dikecualikan. Jika -1, menggunakan perilaku default, yang dapat diganti oleh tanda --[no]stamp. Kolom ini harus tidak disetel (atau disetel ke 0) saat membuat output yang dapat dieksekusi untuk aturan pengujian.
additional_inputs sequence; atau depset; default adalah []
Untuk input tambahan ke tindakan penautan, misalnya: skrip penautan.
additional_outputs sequence; default adalah []
Untuk output tambahan ke tindakan penautan, misalnya: file peta.
variables_extension dict; default adalah {}
Variabel tambahan untuk diteruskan ke konfigurasi toolchain saat membuat command line link.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

Menggabungkan beberapa CompilationContexts menjadi satu.

Parameter

Parameter Deskripsi
compilation_contexts sequence; default is []
List of CompilationContextss to be merged. Header setiap konteks akan diekspor oleh kolom langsung di penyedia yang ditampilkan.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Gabungkan output kompilasi.

Parameter

Parameter Deskripsi
compilation_outputs sequence; defaultnya adalah []