Utilitas untuk kompilasi, penautan, dan pembuatan command line C++.
Anggota
- 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
- 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)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
diperlukan Konfigurasi fitur yang akan dikueri. |
action_name
|
wajib Nama action_config. |
CcToolchainInfo
Provider cc_common.CcToolchainInfo
configure_features
FeatureConfiguration cc_common.configure_features(ctx=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])
Parameter
Parameter | Deskripsi |
---|---|
ctx
|
ctx; atau None ;
default-nya adalah None Konteks aturan. |
cc_toolchain
|
wajib cc_ toolchain yang kami konfigurasi fiturnya. |
language
|
string; atau None ;
default-nya adalah None Bahasa yang akan dikonfigurasi: c++ atau objc (c++ default) |
requested_features
|
default adalah [] Daftar fitur yang akan diaktifkan. |
unsupported_features
|
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, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)
CcToolchainConfigInfo
Parameter
Parameter | Deskripsi |
---|---|
ctx
|
required Konteks aturan. |
features
|
defaultnya adalah [] Berisi semua spesifikasi tanda untuk satu fitur. Argumen:
- provides berisi nama fitur atau konfigurasi tindakan lain yang ingin kita aktifkan.- provides berisi nilai yang sama dengan 'provides' dalam fitur atau konfigurasi tindakan lain 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
|
default 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:
|
artifact_name_patterns
|
defaultnya adalah [] Nama untuk artefak dari kategori artefak input atau output tertentu ke suatu tindakan. Argumen:
|
cxx_builtin_include_directories
|
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 juga menggunakan jalur C++ untuk kompilasi C, yang aman selama tidak ada bentrok nama antara file header C++ dan C. Jalur relatif di-resolve 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
|
wajib diisi 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
|
required Nama Sistem GNU. |
target_cpu
|
required String arsitektur target. |
target_libc
|
diperlukan String versi libc (misalnya, "glibc-2.2.2"). |
compiler
|
wajib String versi compiler (misalnya, "gcc-4.1.1"). |
abi_version
|
string; atau None ;
defaultnya adalah None ABI yang digunakan, yang merupakan versi gcc. Mis.: "gcc-3.4" |
abi_libc_version
|
string; atau None ;
default adalah None Versi glibc yang digunakan oleh abi yang kita gunakan. |
tool_paths
|
default adalah [] Lokasi alat. Argumen:
|
make_variables
|
default adalah [] Variabel pembuatan yang 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. |
cc_target_os
|
string; atau None ;
default-nya adalah None Khusus tujuan internal, jangan gunakan. |
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
.
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
|
default 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
|
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. Disebarkan 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 dependensi. |
create_compilation_outputs
CcCompilationOutputs cc_common.create_compilation_outputs(objects=None, pic_objects=None)
Parameter
Parameter | Deskripsi |
---|---|
objects
|
depset; atau None ;
default-nya adalah None Daftar file objek. |
pic_objects
|
depset; atau None ;
defaultnya 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)
Parameter
Parameter | Deskripsi |
---|---|
cc_toolchain
|
wajib cc_toolchain yang akan kami buat variabel build-nya. |
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
source_file
|
default-nya adalah None File sumber opsional untuk kompilasi. Sebaiknya teruskan source_file di sini, bukan menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena penulis toolchain dapat menentukan dan memosisikan flag compiler dengan benar. |
output_file
|
defaultnya adalah None File output opsional dari kompilasi. Sebaiknya teruskan output_file di sini, bukan menambahkannya ke akhir command line yang dihasilkan dari cc_common.get_memory_inefficient_command_line, karena penulis toolchain dapat menentukan dan memosisikan flag compiler dengan benar. |
user_compile_flags
|
urutan string; atau None ; defaultnya 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 dari direktori yang disertakan sistem. |
framework_include_directories
|
depset; atau None ;
default-nya adalah None Depset framework menyertakan direktori. |
preprocessor_defines
|
depset; atau None ;
defaultnya adalah None Depset dari definisi preprocessor. |
thinlto_index
|
string; atau None ;
default-nya adalah None Jalur file indeks LTO. |
thinlto_input_bitcode_file
|
string; atau None ;
default-nya adalah None file Bitcode yang merupakan input ke backend LTO. |
thinlto_output_object_file
|
string; atau None ;
default adalah None File objek yang dihasilkan oleh backend LTO. |
use_pic
|
default adalah False Jika benar, kompilasi akan menghasilkan kode yang tidak bergantung pada posisi. |
add_legacy_cxx_options
|
defaultnya adalah False Tidak digunakan. |
variables_extension
|
dict;
default adalah unbound Kamus variabel tambahan yang digunakan oleh tindakan kompilasi. |
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
Parameter
Parameter | Deskripsi |
---|---|
actions
|
objek actions yang diperlukan.
|
feature_configuration
|
default-nya adalah None feature_configuration yang akan dikueri.
|
cc_toolchain
|
default-nya 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 dari library statis pic yang akan ditautkan.
|
dynamic_library
|
File; atau None ;
default adalah None File library dinamis yang akan ditautkan. Selalu digunakan untuk runtime dan digunakan untuk menautkan jika interface_library tidak diteruskan.
|
interface_library
|
File; atau None ;
default adalah None File 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 |
alwayslink
|
defaultnya adalah False Apakah akan menautkan library/objek statis di blok --whole_archive. |
dynamic_library_symlink_path
|
string;
defaultnya adalah '' Ganti jalur default link library dinamis di direktori solib. String kosong untuk menggunakan default. |
interface_library_symlink_path
|
defaultnya adalah '' Ganti jalur default link library antarmuka di direktori solib. String kosong untuk menggunakan default. |
create_link_variables
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)
Parameter
Parameter | Deskripsi |
---|---|
cc_toolchain
|
wajib cc_toolchain yang akan kami buat variabel build-nya. |
feature_configuration
|
diperlukan Konfigurasi fitur yang akan dikueri. |
library_search_directories
|
None ; atau depset;
default-nya adalah None Depset direktori tempat linker akan mencari library pada waktu penautan. |
runtime_library_search_directories
|
None ; atau depset;
default adalah None Depset direktori tempat loader akan mencari library saat runtime. |
user_link_flags
|
None ; atau sequence;
default-nya adalah None Daftar flag link tambahan (linkopt). |
output_file
|
defaultnya adalah None Jalur file output opsional. |
param_file
|
default adalah None Jalur file parameter opsional. |
def_file
|
defaultnya adalah None Jalur file .def opsional. |
is_using_linker
|
default adalah True Benar saat menggunakan penaut, Salah saat pengarsip. Pemanggil bertanggung jawab untuk menjaga sinkronisasi 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). |
is_linking_dynamic_library
|
defaultnya adalah False Benar saat membuat library dinamis, Salah 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. |
must_keep_debug
|
default adalah True Jika disetel ke False, bazel akan mengekspos variabel 'strip_debug_symbols', yang biasanya digunakan untuk menggunakan penaut guna menghapus simbol debug dari file output. |
use_test_only_flags
|
defaultnya adalah False Jika ditetapkan ke benar, variabel 'is_cc_test' akan ditetapkan. |
is_static_linking_mode
|
defaultnya adalah True Tidak digunakan. |
create_linker_input
LinkerInput cc_common.create_linker_input(owner, libraries=None, user_link_flags=None, additional_inputs=None)
LinkerInput
.
Parameter
Parameter | Deskripsi |
---|---|
owner
|
required Label target yang menghasilkan semua file yang digunakan dalam input ini. |
libraries
|
None ; atau depset;
defaultnya adalah None Daftar LibraryToLink .
|
user_link_flags
|
None ; atau depset dari string; atau sequence dari string;
default adalah None Flag link pengguna yang diteruskan sebagai string. Menerima [String], [[String]], atau depset(String). Yang terakhir tidak dianjurkan karena hanya disimpan untuk tujuan kompatibilitas, depset diratakan. Jika Anda ingin menyebarkan user_link_flags melalui depset() yang tidak di-flatten, gabungkan dalam LinkerInput sehingga tidak di-flatten hingga akhir. |
additional_inputs
|
None ; atau depset;
default adalah None Untuk input tambahan ke tindakan penautan, misalnya: skrip penautan. |
create_linking_context
LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)
LinkingContext
.
Parameter
Parameter | Deskripsi |
---|---|
linker_inputs
|
None ; atau depset;
default-nya adalah None Depset dari LinkerInput .
|
libraries_to_link
|
None ; atau sequence;
default-nya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan bergantung pada hal ini. 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 .
|
user_link_flags
|
None ; atau sequence;
default-nya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Harap tidak bergantung padanya. Fitur ini dinonaktifkan dengan --+incompatible_require_linker_input_cc_api . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan. Daftar flag 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. Fitur 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, 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
).
Parameter
Parameter | Deskripsi |
---|---|
actions
|
objek actions yang diperlukan.
|
feature_configuration
|
diperlukanfeature_configuration untuk dikueri.
|
cc_toolchain
|
penyediaCcToolchainInfo wajib digunakan.
|
compilation_outputs
|
diperlukan Output kompilasi yang berisi file objek untuk ditautkan. |
user_link_flags
|
default adalah [] Daftar tambahan opsi penautan. |
linking_contexts
|
defaultnya adalah [] Library dari dependensi. Library ini akan ditautkan ke artefak output dari panggilan link(), baik berupa biner maupun library. |
name
|
diperlukan Ini digunakan untuk menamai artefak output dari tindakan yang dibuat oleh metode ini. |
language
|
defaultnya adalah 'c++' Hanya C++ yang didukung untuk saat ini. Jangan gunakan parameter ini. |
alwayslink
|
defaultnya adalah False Apakah library ini harus selalu ditautkan. |
additional_inputs
|
default adalah [] Untuk input tambahan ke tindakan penautan, misalnya: skrip penautan. |
disallow_static_libraries
|
defaultnya adalah False Apakah library statis harus dibuat. |
disallow_dynamic_library
|
defaultnya adalah False Apakah library dinamis harus dibuat. |
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)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
action_name
|
wajib 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
|
required Mem-build variabel yang akan digunakan untuk perluasan template. |
get_execution_requirements
sequence cc_common.get_execution_requirements(feature_configuration, action_name)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
action_name
|
required 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)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
action_name
|
required 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
|
required Mem-build variabel yang akan digunakan untuk perluasan template. |
get_tool_for_action
string cc_common.get_tool_for_action(feature_configuration, action_name)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
action_name
|
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)
Parameter
Parameter | Deskripsi |
---|---|
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
feature_name
|
wajib diisi Nama fitur. |
link
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)
Parameter
Parameter | Deskripsi |
---|---|
actions
|
objek actions yang diperlukan.
|
feature_configuration
|
diperlukanfeature_configuration untuk dikueri.
|
cc_toolchain
|
penyediaCcToolchainInfo wajib digunakan.
|
compilation_outputs
|
CcCompilationOutputs; atau None ;
defaultnya adalah None Output kompilasi yang berisi file objek untuk ditautkan. |
user_link_flags
|
defaultnya adalah [] Daftar opsi penaut tambahan. |
linking_contexts
|
default adalah [] Menautkan konteks dari dependensi yang akan ditautkan ke konteks penautan yang dihasilkan oleh aturan ini. |
name
|
required Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini. |
language
|
defaultnya adalah 'c++' Hanya C++ yang didukung untuk saat ini. Jangan gunakan parameter ini. |
output_type
|
defaultnya adalah 'executable' Dapat berupa 'executable' atau 'dynamic_library'. |
link_deps_statically
|
defaultnya adalah True True untuk menautkan dependensi secara statis, False secara dinamis. |
stamp
|
default adalah 0 Apakah akan menyertakan informasi build dalam file yang dapat dieksekusi yang ditautkan, jika output_type adalah '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 tidak boleh ditetapkan (atau ditetapkan 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: menautkan skrip. |
additional_outputs
|
sequence;
default adalah unbound Untuk output tambahan ke tindakan penautan, misalnya: file peta. |
merge_compilation_contexts
CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])
CompilationContexts
menjadi satu.
Parameter
Parameter | Deskripsi |
---|---|
compilation_contexts
|
default 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=[])
Parameter
Parameter | Deskripsi |
---|---|
compilation_outputs
|
default-nya adalah [] |