cc_common

Laporkan masalah Lihat sumber Nightly

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

Anggota

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

Menampilkan Benar jika action_config yang ditentukan diaktifkan dalam konfigurasi fitur.

Parameter

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

CcToolchainInfo

Provider cc_common.CcToolchainInfo

Kunci yang digunakan untuk mengambil penyedia yang berisi informasi tentang toolchain C++ yang 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=[], 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; diperlukan
objek actions.
feature_configuration FeatureConfiguration; diperlukan
feature_configuration untuk dikueri.
cc_toolchain Info; wajib
CcToolchainInfo penyedia yang akan digunakan.
srcs urut; defaultnya adalah []
Daftar file sumber yang akan dikompilasi.
public_hdrs Urutan; defaultnya adalah []
Daftar header yang diperlukan untuk kompilasi src dan dapat disertakan oleh aturan dependen secara transitif.
private_hdrs Urutan; defaultnya adalah []
Daftar header yang diperlukan untuk kompilasi src dan TIDAK akan disertakan oleh aturan dependen.
includes sequence; atau depset; default-nya adalah []
Jalur penelusuran untuk file header yang direferensikan berdasarkan kurung sudut dan tanda kutip. Biasanya diteruskan dengan -I. Disebarkan ke dependensi secara transitif.
quote_includes sequence; default-nya adalah []
Jalur penelusuran untuk file header yang dirujuk oleh tanda kutip, misalnya #include "foo/bar/header.h". Jumlah tersebut dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -iquote. Disebarkan ke dependensi secara transitif.
system_includes sequence; default-nya adalah []
Jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut, misalnya, #include <foo/bar/header.h>. Jalur tersebut dapat relatif terhadap akar exec atau absolut. Biasanya diteruskan dengan -isystem. Disebarkan ke dependensi secara transitif.
framework_includes urutan; defaultnya adalah []
Jalur penelusuran untuk file header dari framework Apple. Jumlah tersebut dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -F. Disebarkan ke dependensi secara transitif.
defines sequence; defaultnya adalah []
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Disebarkan ke dependensi secara transitif.
local_defines sequence; defaultnya adalah []
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Tidak disebarkan ke dependensi secara transitif.
include_prefix string; default-nya adalah ''
Awalan yang akan ditambahkan ke jalur header aturan ini. Jika ditetapkan, header dalam atribut hdrs dari aturan ini dapat diakses adalah 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-nya adalah ''
Awalan yang akan dihapus dari jalur header aturan ini. Jika ditetapkan, header dalam atribut hdrs dari aturan ini dapat diakses di jalurnya dengan awalan ini. Jika merupakan jalur relatif, header tersebut akan digunakan sebagai jalur yang relatif terhadap paket. Jika nilainya absolut, nilainya akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut include_prefix ditambahkan setelah awalan ini dihapus.
user_compile_flags urut; default-nya adalah []
Daftar opsi kompilasi tambahan.
compilation_contexts urutan; default-nya adalah []
Header dari dependensi yang digunakan untuk kompilasi.
name string; diperlukan
String ini digunakan untuk memberi nama artefak output dari 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; defaultnya adalah False
Apakah output NOPIC harus dibuat.
additional_inputs urut; defaultnya adalah []
Daftar file tambahan yang diperlukan untuk kompilasi src
module_interfaces urut; defaultnya adalah unbound
Daftar file sumber antarmuka modul yang akan dikompilasi. Catatan: ini adalah fitur eksperimental, yang hanya diaktifkan dengan -- experiments_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; default-nya adalah None
Konteks aturan.
cc_toolchain Info; diperlukan
cc_toolchain yang fiturnya kami konfigurasi.
language string; atau None; default-nya adalah None
Bahasa yang akan dikonfigurasi: c++ atau objc (c++ default)
requested_features urutan; defaultnya adalah []
Daftar fitur yang akan diaktifkan.
unsupported_features urut; defaultnya adalah []
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
Konteks aturan.
features sequence; default-nya adalah []
Berisi semua spesifikasi tanda untuk satu fitur.

Argumen:

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

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

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

env_sets: daftar EnvSet. Jika fitur yang diberikan diaktifkan, kumpulan env 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, ketika semua fitur dari set fitur diaktifkan. Jika requires tidak disertakan, fitur ini didukung secara terpisah dari fitur lainnya yang diaktifkan. Gunakan ini misalnya untuk memfilter flag yang 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 (secara diam-diam) tidak akan diaktifkan.

provides: Daftar nama yang bertentangan dengan fitur ini.

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

Argumen:

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

enabled: Jika 'Benar', 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 fitur yang cocok dengan konfigurasi fitur yang diberikan - untuk alasan tersebut, sebaiknya sediakan fitur default dengan set fitur kosong.

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

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

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

Argumen:

category_name: Kategori artefak tempat pilihan ini berlaku. Bidang ini dibandingkan dengan daftar kategori yang ditetapkan dalam Bazel. Kategori contoh mencakup "linked_output" atau artefak untuk pilihan ini. Bersama dengan ekstensi, contoh ini digunakan untuk membuat nama artefak berdasarkan nama target.

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

cxx_builtin_include_directories urut; default-nya adalah []

Direktori include bawaan untuk kompilasi C++. Ini harus merupakan jalur tepat yang digunakan oleh compiler, dan umumnya relatif terhadap root exec.

Jalur yang digunakan oleh compiler dapat ditentukan dengan '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 secara relatif terhadap direktori file konfigurasi.

Jika compiler memiliki dukungan --sysroot, jalur ini harus menggunakan %sysroot%, bukan jalur include, dan menentukan atribut sysroot untuk memberi blazer informasi yang diperlukan untuk membuat penggantian yang benar.

toolchain_identifier string; wajib

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

URL tersebut harus cocok dengan ekspresi reguler berikut: [a-zA-Z_][\.\- \w]*

host_system_name string; atau None; default-nya adalah None
Diabaikan.
target_system_name string; atau None; default-nya adalah None
Tidak digunakan lagi. Nama Sistem GNU. String ini diekspos ke CcToolchainInfo.target_gnu_system_name.
target_cpu string; atau None; defaultnya adalah None
Tidak digunakan lagi: Gunakan batasan berbasis cpu. Jika stringnya adalah "k8", `target_cpu` akan dihilangkan dari nama file data profil FDO mentah.
target_libc string; atau None; default-nya adalah None
Tidak digunakan lagi: Gunakan batasan berbasis OS sebagai gantinya. String versi libc (mis. "glibc-2.2.2"). Jika stringnya adalah "macosx", platform diasumsikan sebagai MacOS. Jika tidak, Linux. String ini 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 tanda. Target yang memerlukan tanda 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 memadai.
abi_version string; atau None; default-nya adalah None
Abi yang digunakan, yang merupakan versi gcc. E.g.: "gcc-3.4". String ini disetel ke ABI variabel toolchain C++.
abi_libc_version string; atau None; default-nya adalah None
Versi glibc digunakan oleh abi yang sedang kita gunakan. String ini disetel ke variabel toolchain C++ ABI_LIBC_VERSION.
tool_paths sequence; default-nya adalah []
Lokasi alat.

Argumen:

name: Nama alat.

path: Lokasi alat; Dapat berupa jalur absolut (untuk toolchain non-hermetic), atau jalur yang terkait dengan paket cc_toolchain.

make_variables urutan; default-nya adalah []
Variabel make yang dibuat dapat diakses oleh aturan.
builtin_sysroot string; atau None; default-nya 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 defaultnya adalah unbound
Kumpulan header yang diperlukan untuk mengompilasi target ini
system_includes defaultnya adalah unbound
Kumpulan jalur penelusuran untuk file header yang dirujuk oleh tanda kurung sudut, yaitu #include <foo/bar/header.h>. Jalur tersebut dapat terkait dengan root exec atau absolut. Biasanya diteruskan dengan -isystem
includes defaultnya adalah unbound
Kumpulan jalur penelusuran untuk file header yang direferensikan oleh tanda kurung sudut dan tanda kutip.Biasanya diteruskan dengan -I
quote_includes defaultnya adalah unbound
Kumpulan jalur penelusuran untuk file header yang dirujuk oleh tanda kutip, yaitu #include "foo/bar/header.h". Jumlah tersebut dapat bersifat relatif terhadap root exec atau absolut. Biasanya diteruskan dengan -iquote
framework_includes defaultnya adalah unbound
Kumpulan jalur penelusuran framework untuk file header (khusus platform Apple)
defines defaultnya adalah unbound
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Disebarkan secara transitif ke dependen.
local_defines defaultnya adalah unbound
Kumpulan definisi yang diperlukan untuk mengompilasi target ini. Setiap definisi adalah string. Tidak disebarkan secara transitif ke dependensi.

create_compilation_outputs

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

Membuat objek output kompilasi.

Parameter

Parameter Deskripsi
objects depset; atau None; default-nya adalah None
Daftar file objek.
pic_objects depset; atau None; default-nya adalah None
Daftar file objek foto.

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; cc_ toolchain diperlukan
yang akan kami buat variabel build-nya.
feature_configuration FeatureConfiguration; diperlukan
Konfigurasi fitur yang akan dikueri.
source_file defaultnya adalah None
File sumber opsional untuk kompilasi. Lebih suka meneruskan source_file di sini daripada menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena ini terkait dengan kemampuan penulis toolchain untuk menentukan dan memosisikan flag compiler dengan benar.
output_file defaultnya adalah None
File output opsional dari kompilasi. Lebih baik meneruskan output_file di sini daripada menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena ini terkait dengan kemampuan penulis toolchain untuk menentukan dan memosisikan flag compiler dengan benar.
user_compile_flags Urutan string; atau None; default-nya adalah None
Daftar flag kompilasi tambahan (copt).
include_directories depset; atau None; default-nya adalah None
Depset direktori include.
quote_include_directories depset; atau None; default-nya adalah None
Depset tanda kutip mencakup direktori.
system_include_directories depset; atau None; default-nya adalah None
Depset of system include directory.
framework_include_directories depset; atau None; default-nya adalah None
Depset framework sertakan direktori.
preprocessor_defines depset; atau None; default-nya adalah None
Depset preprosesor yang ditentukan.
thinlto_index string; atau None; default-nya adalah None
jalur file indeks LTO.
thinlto_input_bitcode_file string; atau None; defaultnya adalah None
file Bitcode yang merupakan input ke backend LTO.
thinlto_output_object_file string; atau None; defaultnya adalah None
File objek yang dihasilkan oleh backend LTO.
use_pic bool; defaultnya adalah False
Jika true (benar), kompilasi akan menghasilkan kode yang tidak bergantung pada posisi.
add_legacy_cxx_options bool; defaultnya adalah False
Tidak digunakan.
variables_extension dict; defaultnya 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 memerlukan objek
actions.
feature_configuration defaultnya adalah None
feature_configuration yang akan dikueri.
cc_toolchain default-nya adalah penyedia None
CcToolchainInfo yang akan digunakan.
static_library File; atau None; default-nya adalah None
File library statis yang akan ditautkan.
pic_static_library File; atau None; default-nya adalah None
File dari library statis gambar yang akan ditautkan.
dynamic_library File; atau None; default-nya adalah None
File dari library dinamis yang akan ditautkan. Selalu digunakan untuk runtime dan digunakan untuk menautkan jika interface_library tidak diteruskan.
interface_library File; atau None; default-nya adalah None
File dari library antarmuka yang akan ditautkan.
pic_objects Urutan dari File; default-nya adalah unbound
Eksperimental, jangan gunakan
objects Urutan dari File; default-nya adalah unbound
Eksperimental, jangan gunakan
bool; defaultnya adalah False
Apakah akan menautkan library/objek statis dalam blok --whole_archive.
string; defaultnya adalah ''
Ganti jalur default link library dinamis di direktori solib. String kosong untuk menggunakan default.
string; defaultnya adalah ''
Ganti jalur default link library antarmuka di direktori solib. String kosong untuk menggunakan 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; cc_ toolchain diperlukan
yang akan kami buat variabel build-nya.
FeatureConfiguration; diperlukan
Konfigurasi fitur yang akan dikueri.
depset; defaultnya adalah []
Depset direktori tempat penaut akan mencari library pada waktu penautan.
depset; defaultnya adalah []
Depset direktori tempat loader akan mencari library saat runtime.
urutan; defaultnya adalah []
Daftar tanda link tambahan (linkopt).
defaultnya adalah None
Jalur file output opsional.
defaultnya adalah None
Jalur file parameter opsional.
bool; defaultnya adalah True
Benar saat menggunakan penaut, False saat pengarsip. Pemanggil bertanggung jawab untuk menjaganya tetap sinkron dengan nama tindakan yang digunakan (is_using_linker = True untuk menautkan library yang dapat dieksekusi atau library dinamis, is_using_linker = False untuk mengarsipkan library statis).
bool; defaultnya adalah False
True saat membuat library dinamis, False jika library yang dapat dieksekusi atau library statis. Pemanggil bertanggung jawab untuk menjaga sinkronisasi ini dengan nama tindakan yang digunakan. Kolom ini akan dihapus setelah b/65151735 diperbaiki.
bool; defaultnya adalah True
Jika ditetapkan ke False, bazel akan menampilkan variabel 'strip_debug_symbols', yang biasanya digunakan untuk menggunakan penaut untuk menghapus simbol debug dari file output.
bool; defaultnya adalah False
Jika ditetapkan ke true, variabel 'is_cc_test' akan ditetapkan.
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; diperlukan
Label target yang menghasilkan semua file yang digunakan dalam input ini.
libraries None; atau depset; default-nya adalah None
Daftar LibraryToLink.
None; atau depset dari string; atau urutan string; defaultnya adalah None
Tanda link pengguna yang diteruskan sebagai string. Menerima [String], [[String]], atau depset(String). Yang kedua tidak disarankan karena hanya disimpan untuk tujuan kompatibilitas, depset akan diratakan. Jika Anda ingin menyebarkan user_link_flag melalui depsets() yang tidak diratakan, gabungkan dalam LinkerInput sehingga tidak diratakan hingga akhir.
additional_inputs None; atau depset; default-nya adalah None
Untuk input tambahan ke tindakan penautan, misalnya: menautkan skrip.

create_linking_context

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

Membuat LinkingContext.

Parameter

Parameter Deskripsi
linker_inputs None; atau depset; default-nya adalah None
Depset dari LinkerInput.
None; atau sequence; default-nya adalah None
Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Harap tidak bergantung padanya. Layanan ini dinonaktifkan dengan --incompatible_require_linker_input_cc_api. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi.
Daftar LibraryToLink.
None; atau sequence; default-nya adalah None
Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Harap tidak bergantung padanya. Layanan ini dinonaktifkan dengan --incompatible_require_linker_input_cc_api. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi.
Daftar tanda link pengguna yang diteruskan sebagai string.
additional_inputs None; atau sequence; default-nya adalah None
Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Harap tidak bergantung padanya. Layanan ini dinonaktifkan dengan --incompatible_require_linker_input_cc_api. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera terjadi.
Untuk input tambahan ke tindakan penautan, misalnya: menautkan skrip.

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 downstream agar nanti ditautkan oleh aturan tingkat atas yang melakukan penautan transitif untuk membuat library yang dapat dieksekusi atau library dinamis. Menampilkan tuple (CcLinkingContext, CcLinkingOutputs).

Parameter

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

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

Membuat konteks kompilasi LTO

Parameter

Parameter Deskripsi
objects dict; defaultnya adalah {}
peta objek lengkap untuk mengindeks objek

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 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; diperlukan
Konfigurasi fitur yang akan dikueri.
action_name string; wajib diisi
Nama tindakan. Harus menjadi 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
Variabel build yang akan digunakan untuk perluasan template.

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

Menampilkan persyaratan eksekusi untuk tindakan yang ditentukan.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; diperlukan
Konfigurasi fitur yang akan dikueri.
action_name string; wajib diisi
Nama tindakan. Harus menjadi 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 disatukan untuk tindakan tertentu, menggunakan variabel yang diberikan untuk perluasan. Meratakan kumpulan bertingkat dan idealnya tidak boleh digunakan, atau setidaknya tidak boleh aktif lebih lama dibandingkan analisis. Pekerjaan pada fungsi hemat memori yang menampilkan Args sedang berlangsung.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; diperlukan
Konfigurasi fitur yang akan dikueri.
action_name string; wajib diisi
Nama tindakan. Harus menjadi 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
Variabel build 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; diperlukan
Konfigurasi fitur yang akan dikueri.
action_name string; wajib diisi
Nama tindakan. Harus menjadi 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 Benar jika fitur yang ditentukan diaktifkan di konfigurasi fitur.

Parameter

Parameter Deskripsi
feature_configuration FeatureConfiguration; diperlukan
Konfigurasi fitur yang akan dikueri.
feature_name string; wajib diisi
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; diperlukan
objek actions.
name string; diperlukan
String ini digunakan untuk memberi nama artefak output dari tindakan yang dibuat oleh metode ini.
feature_configuration FeatureConfiguration; diperlukan
feature_configuration untuk dikueri.
cc_toolchain Info; wajib
CcToolchainInfo penyedia yang akan digunakan.
language string; defaultnya adalah 'c++'
Saat ini hanya C++ yang didukung. Jangan gunakan parameter ini.
output_type string; defaultnya adalah 'executable'
Dapat berupa 'executable' atau 'dynamic_library'.
bool; defaultnya adalah True
True untuk menautkan dependensi secara statis, False secara dinamis.
compilation_outputs CcCompilationOutputs; atau None; defaultnya adalah None
Output kompilasi yang berisi file objek untuk ditautkan.
linking_contexts urutan; defaultnya adalah []
Menautkan konteks dari dependensi yang akan ditautkan ke konteks penautan yang dihasilkan oleh aturan ini.
Urutan; default-nya adalah []
Daftar tambahan opsi penaut.
stamp int; defaultnya adalah 0
Apakah akan menyertakan informasi build dalam file yang dapat dieksekusi tertaut, jika output_type bernilai 'executable'. Jika 1, informasi build akan selalu disertakan. Jika 0 (informasi build default akan selalu dikecualikan. Jika -1, menggunakan perilaku default, yang dapat diganti oleh tanda --[no]stamp. Nilai ini harus tidak disetel (atau disetel ke 0) saat menghasilkan output yang dapat dieksekusi untuk aturan pengujian.
additional_inputs sequence; atau depset; default-nya adalah []
Untuk input tambahan ke tindakan penautan, misalnya: menautkan skrip.
additional_outputs sequence; defaultnya adalah []
Untuk output tambahan pada tindakan penautan, misalnya: file peta.
variables_extension dict; defaultnya adalah {}
Variabel tambahan yang akan 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 urut; defaultnya adalah []
Daftar CompilationContexts yang akan digabungkan. Header setiap konteks akan diekspor oleh kolom langsung di penyedia yang ditampilkan.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

Menggabungkan output kompilasi.

Parameter

Parameter Deskripsi
compilation_outputs urut; default-nya adalah []