Aturan
- cc_binary
- cc_import
- cc_library
- cc_proto_library
- fdo_prefetch_hints
- fdo_profile
- propeller_optimize
- cc_test
- cc_toolchain
- cc_toolchain_suite
cc_binary
cc_binary(name, deps, srcs, data, additional_linker_inputs, args, compatible_with, copts, defines, deprecation, distribs, env, exec_compatible_with, exec_properties, features, includes, licenses, linkopts, linkshared, linkstatic, local_defines, malloc, nocopts, output_licenses, restricted_to, stamp, tags, target_compatible_with, testonly, toolchains, visibility, win_def_file)
Target output implisit
name.stripped
(hanya dibuat jika diminta secara eksplisit): Versi biner yang dihilangkan.strip -g
dijalankan pada biner untuk menghapus simbol debug. Opsi strip tambahan dapat disediakan pada command line menggunakan--stripopt=-foo
. Output ini hanya dibuat jika diminta secara eksplisit.name.dwp
(hanya dibuat jika diminta secara eksplisit): Jika Fission diaktifkan: file paket informasi debug yang cocok untuk men-debug biner yang di-deploy dari jarak jauh. Else: file kosong.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
Ini dapat berupa target |
srcs
|
Semua file File Semua file Jika nama aturan ada di
...dan aturan apa pun yang menghasilkan file tersebut. Ekstensi yang berbeda menunjukkan bahasa pemrograman yang berbeda sesuai dengan konvensi gcc. |
additional_linker_inputs
|
Misalnya, file .res Windows yang dikompilasi dapat diberikan di sini untuk disematkan dalam target biner. |
copts
|
Setiap string dalam atribut ini ditambahkan dalam urutan tertentu ke
Jika paket mendeklarasikan fitur
|
defines
|
-D dan ditambahkan ke command line kompilasi ke target ini, serta ke setiap aturan yang bergantung padanya. Hati-hati, karena hal ini mungkin berdampak luas. Jika ragu, tambahkan nilai tentukan ke local_defines .
|
includes
|
Tunduk pada penggantian "Buat variabel".
Setiap string diawali dengan Header harus ditambahkan ke srcs atau hdrs. Jika tidak, header tidak akan tersedia untuk aturan dependen saat kompilasi di-sandbox (default). |
linkopts
|
LINKOPTS sebelum
menautkan target biner.
Setiap elemen daftar ini yang tidak diawali dengan |
linkshared
|
linkshared=True dalam aturan Anda. Secara default, opsi ini nonaktif.
Adanya flag ini berarti penautan terjadi dengan flag
Jika menentukan |
linkstatic
|
cc_binary dan cc_test : tautkan biner dalam mode statis. Untuk cc_library.linkstatic : lihat di bawah.
Secara default, opsi ini aktif untuk
Jika diaktifkan dan ini adalah biner atau pengujian, opsi ini akan memberi tahu alat build untuk menautkan dalam Sebenarnya ada tiga cara berbeda untuk menautkan file yang dapat dieksekusi:
Atribut
Jika |
local_defines
|
-D dan ditambahkan ke command line kompilasi untuk target ini, tetapi tidak ke turunannya.
|
malloc
|
Secara default, biner C++ ditautkan ke |
nocopts
|
COPTS yang sudah ada dan cocok dengan ekspresi reguler ini (termasuk nilai yang secara eksplisit ditentukan dalam atribut copts aturan) akan dihapus dari COPTS untuk tujuan kompilasi aturan ini.
Atribut ini jarang diperlukan.
|
stamp
|
Biner berstempel tidak dibuat ulang kecuali dependensinya berubah. |
win_def_file
|
Atribut ini hanya boleh digunakan jika Windows adalah platform target. Fungsi ini dapat digunakan untuk mengekspor simbol selama menautkan library bersama. |
cc_import
cc_import(name, data, hdrs, alwayslink, compatible_with, deprecation, distribs, features, interface_library, licenses, restricted_to, shared_library, static_library, system_provided, tags, target_compatible_with, testonly, visibility)
Aturan cc_import
memungkinkan pengguna mengimpor library C/C++ yang telah dikompilasi sebelumnya.
Berikut adalah kasus penggunaan umum:
1. Menautkan library statis
cc_import( name = "mylib", hdrs = ["mylib.h"], static_library = "libmylib.a", # If alwayslink is turned on, # libmylib.a will be forcely linked into any binary that depends on it. # alwayslink = 1, )2. Menautkan library bersama (Unix)
cc_import( name = "mylib", hdrs = ["mylib.h"], shared_library = "libmylib.so", )3. Menautkan library bersama dengan library antarmuka (Windows)
cc_import( name = "mylib", hdrs = ["mylib.h"], # mylib.lib is a import library for mylib.dll which will be passed to linker interface_library = "mylib.lib", # mylib.dll will be available for runtime shared_library = "mylib.dll", )4. Menautkan library bersama dengan
system_provided=True
(Windows)
cc_import( name = "mylib", hdrs = ["mylib.h"], # mylib.lib is an import library for mylib.dll which will be passed to linker interface_library = "mylib.lib", # mylib.dll is provided by system environment, for example it can be found in PATH. # This indicates that Bazel is not responsible for making mylib.dll available. system_provided = 1, )5. Menautkan ke library statis atau bersama
Di Unix:
cc_import( name = "mylib", hdrs = ["mylib.h"], static_library = "libmylib.a", shared_library = "libmylib.so", ) # first will link to libmylib.a cc_binary( name = "first", srcs = ["first.cc"], deps = [":mylib"], linkstatic = 1, # default value ) # second will link to libmylib.so cc_binary( name = "second", srcs = ["second.cc"], deps = [":mylib"], linkstatic = 0, )Di Windows:
cc_import( name = "mylib", hdrs = ["mylib.h"], static_library = "libmylib.lib", # A normal static library interface_library = "mylib.lib", # An import library for mylib.dll shared_library = "mylib.dll", ) # first will link to libmylib.lib cc_binary( name = "first", srcs = ["first.cc"], deps = [":mylib"], linkstatic = 1, # default value ) # second will link to mylib.dll through mylib.lib cc_binary( name = "second", srcs = ["second.cc"], deps = [":mylib"], linkstatic = 0, )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
hdrs
|
|
alwayslink
|
Jika alwayslink tidak berfungsi dengan VS 2017 di Windows, hal ini karena masalah umum, upgrade VS 2017 Anda ke versi terbaru. |
interface_library
|
Jenis file yang diizinkan:
|
shared_library
|
Jenis file yang diizinkan:
|
static_library
|
Jenis file yang diizinkan:
|
system_provided
|
interface_library harus ditentukan dan
shared_library harus kosong.
|
cc_library
cc_library(name, deps, srcs, data, hdrs, additional_compiler_inputs, additional_linker_inputs, alwayslink, compatible_with, copts, defines, deprecation, distribs, exec_compatible_with, exec_properties, features, implementation_deps, include_prefix, includes, licenses, linkopts, linkstamp, linkstatic, local_defines, nocopts, restricted_to, strip_include_prefix, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, win_def_file)
Pemeriksaan penyertaan header
Semua file header yang digunakan dalam build harus dideklarasikan dalam hdrs
atau
srcs
aturan cc_*
. Hal ini diberlakukan.
Untuk aturan cc_library
, header di hdrs
menyusun antarmuka publik library dan dapat disertakan secara langsung dari file dalam hdrs
dan srcs
library itu sendiri, serta dari file dalam hdrs
dan srcs
aturan cc_*
yang mencantumkan library dalam deps
-nya.
Header di srcs
hanya boleh disertakan langsung dari file dalam hdrs
dan srcs
library itu sendiri. Saat memutuskan apakah akan menempatkan header ke hdrs
atau srcs
, Anda harus bertanya apakah Anda ingin konsumen library ini dapat menyertakannya secara langsung. Ini kurang lebih sama dengan keputusan antara visibilitas public
dan private
dalam bahasa pemrograman.
Aturan cc_binary
dan cc_test
tidak memiliki antarmuka yang diekspor, sehingga
aturan tersebut juga tidak memiliki atribut hdrs
. Semua header yang termasuk dalam biner atau pengujian secara langsung harus tercantum dalam srcs
.
Untuk mengilustrasikan aturan ini, lihat contoh berikut.
cc_binary( name = "foo", srcs = [ "foo.cc", "foo.h", ], deps = [":bar"], ) cc_library( name = "bar", srcs = [ "bar.cc", "bar-impl.h", ], hdrs = ["bar.h"], deps = [":baz"], ) cc_library( name = "baz", srcs = [ "baz.cc", "baz-impl.h", ], hdrs = ["baz.h"], )
Penyertaan langsung yang diizinkan dalam contoh ini tercantum dalam tabel di bawah. Misalnya,
foo.cc
diizinkan untuk langsung menyertakan foo.h
dan bar.h
, tetapi
tidak baz.h
.
Termasuk file | Penyertaan yang diizinkan |
---|---|
foo.h | bar.h |
foo.cc | {i>foo.h bar.h<i} |
bar.h | bar-impl.h baz.h |
batang-impl.h | bar.h baz.h |
bar.cc | bar.h bar-impl.h baz.h |
baz.h | baz-impl.h |
baz-impl.h | baz.h |
baz.cc | baz.h baz-impl.h |
Aturan pemeriksaan penyertaan hanya berlaku untuk penyertaan langsung. Pada contoh di atas, foo.cc
diizinkan untuk
menyertakan bar.h
, yang dapat menyertakan baz.h
, yang
kemudian diizinkan untuk menyertakan baz-impl.h
. Secara teknis, kompilasi file .cc
dapat secara transitif menyertakan file
header apa pun dalam hdrs
atau srcs
dalam
cc_library
mana pun dalam penutupan deps
transitif. Dalam hal ini, compiler dapat membaca baz.h
dan baz-impl.h
saat mengompilasi foo.cc
, tetapi foo.cc
tidak boleh berisi #include "baz.h"
. Agar diizinkan, baz
harus ditambahkan ke deps
dari foo
.
Sayangnya, Bazel saat ini tidak dapat membedakan antara penyertaan
langsung dan transitif, sehingga tidak dapat mendeteksi kasus error ketika file secara ilegal menyertakan
header secara langsung yang hanya diizinkan untuk disertakan secara transitif. Misalnya, Bazel tidak akan mengeluhkan jika dalam contoh di atas foo.cc
secara langsung menyertakan baz.h
. Hal ini akan ilegal, karena foo
tidak bergantung secara langsung pada baz
. Saat ini, tidak ada error yang dihasilkan
dalam kasus tersebut, tetapi pemeriksaan error tersebut mungkin ditambahkan di masa mendatang.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
Ini dapat berupa target |
srcs
|
Semua file File Semua file Jika nama aturan ada di
...dan aturan apa pun yang menghasilkan file tersebut. Ekstensi yang berbeda menunjukkan bahasa pemrograman yang berbeda sesuai dengan konvensi gcc. |
hdrs
|
Ini adalah lokasi yang sangat direkomendasikan untuk mendeklarasikan file header yang mendeskripsikan antarmuka untuk library. Header ini akan tersedia untuk
disertakan oleh sumber dalam aturan ini atau dalam aturan dependen.
Header yang tidak dimaksudkan untuk disertakan oleh klien library ini harus dicantumkan dalam atribut |
additional_compiler_inputs
|
|
additional_linker_inputs
|
Misalnya, file .res Windows yang dikompilasi dapat diberikan di sini untuk disematkan dalam target biner. |
alwayslink
|
srcs , meskipun beberapa file tidak berisi simbol yang dirujuk oleh biner.
Hal ini berguna jika kode Anda tidak secara eksplisit dipanggil oleh kode dalam biner, misalnya jika kode Anda mendaftar untuk menerima callback yang disediakan oleh beberapa layanan.
Jika alwayslink tidak berfungsi dengan VS 2017 di Windows, hal ini karena masalah umum, upgrade VS 2017 Anda ke versi terbaru. |
copts
|
Setiap string dalam atribut ini ditambahkan dalam urutan tertentu ke
Jika paket mendeklarasikan fitur
|
defines
|
-D dan ditambahkan ke command line kompilasi ke target ini, serta ke setiap aturan yang bergantung padanya. Hati-hati, karena hal ini mungkin berdampak luas. Jika ragu, tambahkan nilai tentukan ke local_defines .
|
implementation_deps
|
deps , header dan jalur penyertaan library ini (dan semua
dependensi transitifnya) hanya digunakan untuk kompilasi library ini, dan bukan library yang
bergantung padanya. Library yang ditentukan dengan implementation_deps tetap ditautkan di
target biner yang bergantung pada library ini.
Untuk saat ini, penggunaannya terbatas untuk cc_libraries dan dilindungi oleh flag
|
include_prefix
|
Jika ditetapkan, header dalam atribut Awalan dalam atribut |
includes
|
Tunduk pada penggantian "Buat variabel".
Setiap string diawali dengan Header harus ditambahkan ke srcs atau hdrs. Jika tidak, header tidak akan tersedia untuk aturan dependen saat kompilasi di-sandbox (default). |
linkopts
|
LINKOPTS sebelum
menautkan target biner.
Setiap elemen daftar ini yang tidak diawali dengan |
linkstamp
|
base .
|
linkstatic
|
cc_binary dan cc_test : tautkan biner dalam mode statis. Untuk cc_library.linkstatic : lihat di bawah.
Secara default, opsi ini aktif untuk
Jika diaktifkan dan ini adalah biner atau pengujian, opsi ini akan memberi tahu alat build untuk menautkan dalam Sebenarnya ada tiga cara berbeda untuk menautkan file yang dapat dieksekusi:
Atribut
Jika |
local_defines
|
-D dan ditambahkan ke command line kompilasi untuk target ini, tetapi tidak ke turunannya.
|
nocopts
|
COPTS yang sudah ada dan cocok dengan ekspresi reguler ini (termasuk nilai yang secara eksplisit ditentukan dalam atribut copts aturan) akan dihapus dari COPTS untuk tujuan kompilasi aturan ini.
Atribut ini jarang diperlukan.
|
strip_include_prefix
|
Jika ditetapkan, header dalam atribut Jika jalur relatif, maka akan diambil sebagai jalur relatif paket. Jika bersifat absolut, hal tersebut dipahami sebagai jalur yang relatif terhadap repositori. Awalan dalam atribut |
textual_hdrs
|
Ini adalah lokasi untuk mendeklarasikan file header yang tidak dapat dikompilasi sendiri; artinya, file tersebut selalu harus disertakan secara tekstual oleh file sumber lain untuk mem-build kode yang valid. |
win_def_file
|
Atribut ini hanya boleh digunakan jika Windows adalah platform target. Fungsi ini dapat digunakan untuk mengekspor simbol selama menautkan library bersama. |
cc_proto_library
cc_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
cc_proto_library
menghasilkan kode C++ dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
cc_library( name = "lib", deps = [":foo_cc_proto"], ) cc_proto_library( name = "foo_cc_proto", deps = [":foo_proto"], ) proto_library( name = "foo_proto", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
proto_library untuk menghasilkan kode C++.
|
fdo_prefetch_hints
fdo_prefetch_hints(name, compatible_with, deprecation, distribs, features, licenses, profile, restricted_to, tags, target_compatible_with, testonly, visibility)
Mewakili profil petunjuk pengambilan data FDO yang ada di ruang kerja atau di jalur absolut yang ditentukan. Contoh:
fdo_prefetch_hints( name = "hints", profile = "//path/to/hints:profile.afdo", ) fdo_profile( name = "hints_abs", absolute_path_profile = "/absolute/path/profile.afdo", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
profile
|
|
fdo_profile
fdo_profile(name, absolute_path_profile, compatible_with, deprecation, distribs, features, licenses, profile, proto_profile, restricted_to, tags, target_compatible_with, testonly, visibility)
Mewakili profil FDO yang ada di ruang kerja atau di jalur absolut yang ditetapkan. Contoh:
fdo_profile( name = "fdo", profile = "//path/to/fdo:profile.zip", ) fdo_profile( name = "fdo_abs", absolute_path_profile = "/absolute/path/profile.zip", )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
absolute_path_profile
|
|
profile
|
|
proto_profile
|
|
propeller_optimize
propeller_optimize(name, compatible_with, deprecation, distribs, features, ld_profile, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Menampilkan profil pengoptimalan Baling-baling di ruang kerja. Contoh:
propeller_optimize( name = "layout", cc_profile = "//path:cc_profile.txt", ld_profile = "//path:ld_profile.txt" ) propeller_optimize( name = "layout_absolute", absolute_cc_profile = "/absolute/cc_profile.txt", absolute_ld_profile = "/absolute/ld_profile.txt" )
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
ld_profile
|
|
cc_test
cc_test(name, deps, srcs, data, additional_linker_inputs, args, compatible_with, copts, defines, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, includes, licenses, linkopts, linkstatic, local, local_defines, malloc, nocopts, restricted_to, shard_count, size, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility, win_def_file)
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
Ini dapat berupa target |
srcs
|
Semua file File Semua file Jika nama aturan ada di
...dan aturan apa pun yang menghasilkan file tersebut. Ekstensi yang berbeda menunjukkan bahasa pemrograman yang berbeda sesuai dengan konvensi gcc. |
additional_linker_inputs
|
Misalnya, file .res Windows yang dikompilasi dapat diberikan di sini untuk disematkan dalam target biner. |
copts
|
Setiap string dalam atribut ini ditambahkan dalam urutan tertentu ke
Jika paket mendeklarasikan fitur
|
defines
|
-D dan ditambahkan ke command line kompilasi ke target ini, serta ke setiap aturan yang bergantung padanya. Hati-hati, karena hal ini mungkin berdampak luas. Jika ragu, tambahkan nilai tentukan ke local_defines .
|
includes
|
Tunduk pada penggantian "Buat variabel".
Setiap string diawali dengan Header harus ditambahkan ke srcs atau hdrs. Jika tidak, header tidak akan tersedia untuk aturan dependen saat kompilasi di-sandbox (default). |
linkopts
|
LINKOPTS sebelum
menautkan target biner.
Setiap elemen daftar ini yang tidak diawali dengan |
linkstatic
|
cc_binary dan cc_test : tautkan biner dalam mode statis. Untuk cc_library.linkstatic : lihat di bawah.
Secara default, opsi ini aktif untuk
Jika diaktifkan dan ini adalah biner atau pengujian, opsi ini akan memberi tahu alat build untuk menautkan dalam Sebenarnya ada tiga cara berbeda untuk menautkan file yang dapat dieksekusi:
Atribut
Jika |
local_defines
|
-D dan ditambahkan ke command line kompilasi untuk target ini, tetapi tidak ke turunannya.
|
malloc
|
Secara default, biner C++ ditautkan ke |
nocopts
|
COPTS yang sudah ada dan cocok dengan ekspresi reguler ini (termasuk nilai yang secara eksplisit ditentukan dalam atribut copts aturan) akan dihapus dari COPTS untuk tujuan kompilasi aturan ini.
Atribut ini jarang diperlukan.
|
stamp
|
Biner berstempel tidak dibuat ulang kecuali dependensinya berubah. |
win_def_file
|
Atribut ini hanya boleh digunakan jika Windows adalah platform target. Fungsi ini dapat digunakan untuk mengekspor simbol selama menautkan library bersama. |
cc_toolchain
cc_toolchain(name, all_files, ar_files, as_files, compatible_with, compiler, compiler_files, compiler_files_without_includes, coverage_files, cpu, deprecation, distribs, dwp_files, dynamic_runtime_lib, exec_transition_for_inputs, features, libc_top, licenses, linker_files, module_map, objcopy_files, restricted_to, static_runtime_lib, strip_files, supports_header_parsing, supports_param_files, tags, target_compatible_with, testonly, toolchain_config, toolchain_identifier, visibility)
Merepresentasikan toolchain C++.
Aturan ini berfungsi untuk:
-
Mengumpulkan semua artefak yang diperlukan untuk menjalankan tindakan C++. Hal ini dilakukan oleh atribut seperti
all_files
,compiler_files
,linker_files
, atau atribut lain yang diakhiri dengan_files
). Umumnya, ini adalah grup file yang membolak-balik semua file yang diperlukan. -
Menghasilkan command line yang benar untuk tindakan C++. Hal ini dilakukan menggunakan
penyedia
CcToolchainConfigInfo
(detail di bawah).
Gunakan atribut toolchain_config
untuk mengonfigurasi toolchain C++.
Lihat juga
halaman
ini untuk mengetahui konfigurasi toolchain C++ dan dokumentasi pemilihan toolchain yang rumit.
Gunakan tags = ["manual"]
untuk mencegah toolchain dibuat dan dikonfigurasi jika tidak perlu saat memanggil bazel build //...
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
all_files
|
all_files adalah superset dari semua atribut lain yang menyediakan artefak (misalnya, kompilasi linkstamp memerlukan file kompilasi dan link, sehingga akan menggunakan all_files ).
Ini adalah isi |
ar_files
|
Pengumpulan semua artefak cc_toolchain yang diperlukan untuk tindakan pengarsipan. |
as_files
|
Pengumpulan semua artefak cc_toolchain yang diperlukan untuk tindakan perakitan. |
compiler
|
toolchain_identifier . Peristiwa akan menjadi noop
setelah
migrasi CROSSTOOL ke Starlark
, dan akan dihapus oleh
#7075.
Jika ditetapkan, parameter ini akan digunakan untuk melakukan pemilihan crosstool_config.toolchain. Opsi ini akan lebih diutamakan daripada opsi --cpu Bazel. |
compiler_files
|
|
compiler_files_without_includes
|
|
coverage_files
|
|
cpu
|
Jika ditetapkan, parameter ini akan digunakan untuk melakukan pemilihan crosstool_config.toolchain. Opsi ini akan lebih diutamakan daripada opsi --cpu Bazel. |
dwp_files
|
|
dynamic_runtime_lib
|
Ini akan digunakan saat fitur 'static_link_cpp_runtimes' diaktifkan, dan kita menautkan dependensi secara dinamis. |
exec_transition_for_inputs
|
|
libc_top
|
|
linker_files
|
|
module_map
|
|
objcopy_files
|
|
static_runtime_lib
|
Ini akan digunakan saat fitur 'static_link_cpp_runtimes' diaktifkan, dan kita menautkan dependensi secara statis. |
strip_files
|
|
supports_header_parsing
|
|
supports_param_files
|
|
toolchain_config
|
cc_toolchain_config_info .
|
toolchain_identifier
|
Hingga masalah #5380 diperbaiki,
ini adalah cara yang direkomendasikan untuk mengaitkan |
cc_toolchain_suite
cc_toolchain_suite(name, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Mewakili koleksi toolchain C++.
Aturan ini berfungsi untuk:
- Mengumpulkan semua toolchain C++ yang relevan.
-
Memilih satu toolchain bergantung pada opsi
--cpu
dan--compiler
akan diteruskan ke Bazel.
Lihat juga halaman ini untuk mengetahui konfigurasi toolchain C++ dan dokumentasi pemilihan toolchain yang rumit.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
toolchains
|
cc_toolchain . "<cpu>" akan digunakan jika hanya --cpu
yang diteruskan ke Bazel, dan "<cpu>|<compiler>" akan digunakan saat
--cpu dan --compiler diteruskan ke Bazel. Contoh:
cc_toolchain_suite( name = "toolchain", toolchains = { "piii|gcc": ":my_cc_toolchain_for_piii_using_gcc", "piii": ":my_cc_toolchain_for_piii_using_default_compiler", }, ) |