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
|
required Konfigurasi fitur yang akan dikueri. |
action_name
|
wajib diisi 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 ;
defaultnya adalah None Konteks aturan. |
cc_toolchain
|
required cc_toolchain yang akan kita konfigurasi fiturnya. |
language
|
string; atau None ;
default adalah None Bahasa yang akan dikonfigurasi: c++ atau objc (default c++) |
requested_features
|
default adalah [] Daftar fitur yang akan diaktifkan. |
unsupported_features
|
default 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
|
default adalah [] Berisi semua spesifikasi tanda untuk satu fitur. Argumen:
- 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
|
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:
|
artifact_name_patterns
|
default adalah [] Nama untuk artefak dari kategori tertentu dari artefak input atau output ke suatu tindakan. Argumen:
|
cxx_builtin_include_directories
|
default-nya 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
|
wajib diisi 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
|
wajib diisi Nama Sistem GNU. |
target_cpu
|
wajib String arsitektur target. |
target_libc
|
wajib String versi libc (misalnya, "glibc-2.2.2"). |
compiler
|
wajib String versi compiler (misalnya, "gcc-4.1.1"). |
abi_version
|
string; atau None ;
default adalah None ABI yang digunakan, yang merupakan versi gcc. Mis.: "gcc-3.4" |
abi_libc_version
|
string; atau None ;
default-nya adalah None Versi glibc yang digunakan oleh ABI yang kita gunakan. |
tool_paths
|
default adalah [] Lokasi alat. Argumen:
|
make_variables
|
default adalah [] 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. |
cc_target_os
|
string; atau None ;
default 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
|
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 ke 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 petik, 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)
Parameter
Parameter | Deskripsi |
---|---|
objects
|
depset; atau None ;
default adalah None Daftar file objek. |
pic_objects
|
depset; atau None ;
default adalah None Daftar file objek 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)
Parameter
Parameter | Deskripsi |
---|---|
cc_toolchain
|
required cc_toolchain yang digunakan untuk membuat variabel build. |
feature_configuration
|
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 flag 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 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
|
default adalah False Jika benar (true), kompilasi akan menghasilkan kode independen posisi. |
add_legacy_cxx_options
|
default-nya 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
|
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 ;
default 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 |
alwayslink
|
default adalah False Apakah akan menautkan library/objek statis dalam blok --whole_archive. |
dynamic_library_symlink_path
|
string;
default adalah '' Ganti jalur default link library dinamis di direktori solib. String kosong untuk menggunakan nilai default. |
interface_library_symlink_path
|
defaultnya adalah '' Ganti jalur default link library antarmuka di direktori solib. String kosong untuk menggunakan nilai 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
|
required cc_toolchain yang digunakan untuk membuat variabel build. |
feature_configuration
|
required Konfigurasi fitur yang akan dikueri. |
library_search_directories
|
None ; atau depset;
default adalah None Depset direktori tempat linker akan mencari library pada waktu penautan. |
runtime_library_search_directories
|
None ; atau depset;
default-nya adalah None Depset direktori tempat loader akan mencari library saat runtime. |
user_link_flags
|
None ; atau sequence;
default adalah None Daftar tanda link tambahan (linkopts). |
output_file
|
default adalah None Jalur file output opsional. |
param_file
|
default-nya adalah None Jalur file parameter opsional. |
def_file
|
default adalah None Jalur file .def opsional. |
is_using_linker
|
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). |
is_linking_dynamic_library
|
default adalah False Benar saat membuat library dinamis, Salah saat executable atau library statis. Pemanggil bertanggung jawab untuk menyinkronkan 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 linker guna menghapus simbol debug dari file output. |
use_test_only_flags
|
default adalah False Jika disetel ke benar, variabel 'is_cc_test' akan disetel. |
is_static_linking_mode
|
default-nya 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
|
wajib 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 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=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)
LinkingContext
.
Parameter
Parameter | Deskripsi |
---|---|
linker_inputs
|
None ; atau depset;
defaultnya adalah None Depset LinkerInput .
|
libraries_to_link
|
None ; atau sequence;
defaultnya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan mengandalkannya. Dinonaktifkan dengan --+incompatible_require_linker_input_cc_api . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan. Daftar LibraryToLink .
|
user_link_flags
|
None ; atau sequence;
defaultnya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan mengandalkannya. Dinonaktifkan dengan --+incompatible_require_linker_input_cc_api . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan. Daftar tanda link pengguna yang diteruskan sebagai string. |
additional_inputs
|
None ; atau sequence;
defaultnya adalah None Tidak digunakan lagi. Parameter ini tidak digunakan lagi dan akan segera dihapus. Jangan mengandalkannya. Dinonaktifkan dengan --+incompatible_require_linker_input_cc_api . Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusannya yang akan segera dilakukan. Untuk input tambahan pada 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
|
wajib Objek actions .
|
feature_configuration
|
diperlukanfeature_configuration untuk dikueri.
|
cc_toolchain
|
diperlukan penyedia CcToolchainInfo yang akan digunakan.
|
compilation_outputs
|
wajib Output kompilasi yang berisi file objek untuk ditautkan. |
user_link_flags
|
defaultnya adalah [] Daftar opsi penautan tambahan. |
linking_contexts
|
default adalah [] Library dari dependensi. Library ini akan ditautkan ke artefak output panggilan link(), baik berupa biner maupun library. |
name
|
wajib Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini. |
language
|
default adalah 'c++' Saat ini hanya C++ yang didukung. Jangan gunakan parameter ini. |
alwayslink
|
default adalah False Apakah library ini harus selalu ditautkan. |
additional_inputs
|
default adalah [] Untuk input tambahan pada tindakan penautan, misalnya: skrip penautan. |
disallow_static_libraries
|
default adalah False Apakah library statis harus dibuat. |
disallow_dynamic_library
|
default 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 diisi Nama tindakan. Harus 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
|
wajib Bangun 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
|
wajib diisi Nama tindakan. Harus 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
|
wajib diisi Nama tindakan. Harus 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 Bangun 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 diisi Nama tindakan. Harus 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 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
|
wajib Objek actions .
|
feature_configuration
|
diperlukanfeature_configuration untuk dikueri.
|
cc_toolchain
|
diperlukan penyedia CcToolchainInfo yang akan digunakan.
|
compilation_outputs
|
CcCompilationOutputs; atau None ;
defaultnya adalah None Output kompilasi yang berisi file objek untuk ditautkan. |
user_link_flags
|
default adalah [] Daftar opsi linker tambahan. |
linking_contexts
|
default adalah [] Menautkan konteks dari dependensi yang akan ditautkan ke dalam konteks penautan yang dibuat oleh aturan ini. |
name
|
wajib Ini digunakan untuk memberi nama artefak output tindakan yang dibuat oleh metode ini. |
language
|
default adalah 'c++' Saat ini hanya C++ yang didukung. Jangan gunakan parameter ini. |
output_type
|
default-nya adalah 'executable' Dapat berupa 'executable' atau 'dynamic_library'. |
link_deps_statically
|
default adalah True Benar untuk menautkan dependensi secara statis, Salah secara dinamis. |
stamp
|
default adalah 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 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 [] |