Kurallar
- 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)
Örtülü çıkış hedefleri
name.stripped
(yalnızca açıkça istenirse oluşturulur): İkili programın sadeleştirilmiş bir sürümü. Hata ayıklama sembollerini kaldırmak için ikili programdastrip -g
çalıştırılır.--stripopt=-foo
kullanılarak komut satırında ek şerit seçenekleri sağlanabilir. Bu çıkış, yalnızca açıkça istenirse oluşturulur.name.dwp
(yalnızca açıkça istenirse oluşturulur): Fission etkinse: Uzaktan dağıtılan ikili programlarda hata ayıklamaya uygun bir hata ayıklama bilgi paketi dosyası. Diğer: Boş bir dosya.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
Bunlar |
srcs
|
Tüm Bir Tüm Bir kuralın adı
İzin verilen
...ve bu dosyaları oluşturan kurallar. Farklı uzantılar, gcc kuralına uygun olarak farklı programlama dillerini belirtir. |
additional_linker_inputs
|
Örneğin, ikili program hedefine yerleştirilmek üzere derlenmiş Windows .res dosyaları burada sağlanabilir. |
copts
|
Bu özellikteki her dize, ikili hedef derlemeden önce
Paket |
defines
|
-D eklenir ve bu hedefin derleme komut satırına ve buna bağlı her kurala eklenir. Bu durum geniş kapsamlı etkilere sahip olabileceğinden çok dikkatli olun. Şüpheye düştüğünüzde bunun yerine değerleri local_defines etiketine ekleyin.
|
includes
|
"Değişken oluşturma" değişikliğine tabidir.
Her dizenin başına Başlıklar, src'lere veya hdr'lere eklenmelidir. Aksi takdirde, derleme korumalı alana alındığında (varsayılan) bağımlı kurallar tarafından kullanılamazlar. |
linkopts
|
LINKOPTS öğesine eklenir.
Bu listenin |
linkshared
|
linkshared=True özelliğini ekleyin. Bu seçenek varsayılan olarak kapalıdır.
Bu işaretin varlığı, bağlantı oluşturma işleminin
Hem |
linkstatic
|
cc_binary ve cc_test için: İkili dosyayı statik modda bağlayın. cc_library.linkstatic için: aşağıya bakın.
Bu seçenek,
Bu bir ikili program veya test ise bu seçenek, derleme aracına mümkün olduğunda kullanıcı kitaplıkları için Yürütülebilir bir dosyayı bağlamanın gerçekten üç farklı yolu vardır:
|
local_defines
|
-D eklenir ve bu hedefin derleme komut satırına eklenir ancak bağımlı öğelerine eklemeyin.
|
malloc
|
Varsayılan olarak C++ ikili programları, boş bir kitaplık olan |
nocopts
|
COPTS (kuralın copts özelliğinde açıkça belirtilen değerler dahil), bu kuralın derlenmesi amacıyla COPTS öğesinden kaldırılır.
Bu özelliğe nadiren ihtiyaç duyulur.
|
stamp
|
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
win_def_file
|
Bu özellik yalnızca hedef platform Windows olduğunda kullanılmalıdır. Paylaşılan bir kitaplığı bağlarken sembolleri dışa aktarmak için kullanılabilir. |
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)
cc_import
kuralları, kullanıcıların önceden derlenmiş C/C++ kitaplıklarını içe aktarmasına olanak tanır.
Tipik kullanım alanları şunlardır:
1. Statik kitaplık bağlama
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. Paylaşılan kitaplığı bağlama (Unix)
cc_import( name = "mylib", hdrs = ["mylib.h"], shared_library = "libmylib.so", )3. Paylaşılan kitaplığı arayüz kitaplığıyla bağlama (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. Paylaşılan kitaplığı
system_provided=True
ile bağlama (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. Statik veya paylaşılan kitaplığa bağlama
Unix'te:
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, )Windows'da:
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, )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
hdrs
|
|
alwayslink
|
Bilinen bir sorun nedeniyle Windows'da her zaman VS 2017 VS 2017 ile çalışmıyorsa lütfen VS 2017'nizi en son sürüme yükseltin. |
interface_library
|
İzin verilen dosya türleri:
|
shared_library
|
İzin verilen dosya türleri:
|
static_library
|
İzin verilen dosya türleri:
|
system_provided
|
interface_library belirtilmeli ve shared_library boş bırakılmalıdır.
|
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)
Başlık dahil etme kontrolü
Derlemede kullanılan tüm üstbilgi dosyaları, cc_*
kurallarının hdrs
veya srcs
bölümünde bildirilmelidir. Bu zorunlu kılınmıştır.
cc_library
kuralları için hdrs
içindeki başlıklar, kitaplığın herkese açık arayüzünü oluşturur ve hem kitaplığın hdrs
ve srcs
içindeki dosyalardan hem de kitaplığı deps
içinde listeleyen hdrs
ve cc_*
kuralındaki dosyalardan doğrudan eklenebilir.srcs
srcs
içindeki başlıklar doğrudan kitaplığın hdrs
ve srcs
içindeki dosyalardan eklenmelidir. hdrs
veya srcs
içine başlık ekleyip eklemeyeceğinize karar verirken, bu kitaplıktaki tüketicilerin bunu doğrudan dahil etmesini isteyip istemediğinizi sormalısınız. Bu, programlama dillerindeki public
ve private
görünürlüğüyle yaklaşık olarak aynı karardır.
cc_binary
ve cc_test
kurallarının dışa aktarılan bir arayüzü olmadığından hdrs
özelliği de yoktur. Doğrudan ikili programa veya teste ait olan tüm başlıklar srcs
içinde listelenmelidir.
Bu kuralları açıklamak için aşağıdaki örneği inceleyin.
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"], )
Bu örnekte izin verilen doğrudan dahil etmeler aşağıdaki tabloda listelenmiştir. Örneğin, foo.cc
öğesinin doğrudan foo.h
ve bar.h
içermesine izin verilir ancak baz.h
öğesinin eklenmesine izin verilmez.
Dosya ekleniyor | İzin verilen dahil etmeler |
---|---|
foo.h | bar.h |
foo.cc | foo.h bar.h |
bar.h | bar-impl.h baz.h |
bar-impl.h | bar.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 |
Dahil etme kontrolü kuralları yalnızca doğrudan dahil etmeler için geçerlidir. Yukarıdaki örnekte foo.cc
öğesinin bar.h
içermesine izin verilir. Bu durumda baz.h
, baz-impl.h
içerebilir. Teknik olarak, bir .cc
dosyasının derlemesi, geçişli deps
kapanışında herhangi bir cc_library
içinde yer alan hdrs
veya srcs
içindeki herhangi bir üstbilgi dosyasını geçişli olarak içerebilir. Bu durumda derleyici, foo.cc
derlerken baz.h
ve baz-impl.h
değerlerini okuyabilir ancak foo.cc
, #include "baz.h"
içermemelidir. Buna izin verilmesi için baz
öğesinin, foo
öğesinin deps
öğesine eklenmesi gerekir.
Maalesef Bazel şu anda doğrudan ve geçişli eklemeleri birbirinden ayırt edememektedir. Bu nedenle, bir dosyanın yasa dışı bir şekilde, yalnızca geçişli olarak eklenmesine izin verilen bir başlığın doğrudan içerdiği hata durumlarını algılayamaz. Örneğin, yukarıdaki örnekte foo.cc
doğrudan baz.h
içeriyorsa Bazel şikayet etmez. foo
, baz
doğrudan bağımlı olmadığından bu geçersiz olur. Bu durumda şu anda herhangi bir hata oluşturulmamaktadır, ancak gelecekte bu tür hata kontrolleri eklenebilir.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
Bunlar |
srcs
|
Tüm Bir Tüm Bir kuralın adı
İzin verilen
...ve bu dosyaları oluşturan kurallar. Farklı uzantılar, gcc kuralına uygun olarak farklı programlama dillerini belirtir. |
hdrs
|
Bu, kitaplığın arayüzünü açıklayan başlık dosyalarının bildirilmesi için kesinlikle tercih edilen konumdur. Bu üst bilgiler, bu kuraldaki veya bağımlı kurallardaki kaynaklar tarafından eklenmek üzere kullanıma sunulacak.
Bu kitaplığın istemcisi tarafından eklenmemesi amaçlanan başlıklar, yayınlanan bir başlık tarafından dahil edilmiş olsa bile |
additional_compiler_inputs
|
|
additional_linker_inputs
|
Örneğin, ikili program hedefine yerleştirilmek üzere derlenmiş Windows .res dosyaları burada sağlanabilir. |
alwayslink
|
srcs içinde listelenen dosyaların tüm nesne dosyalarına bağlantı oluşturur. Bazıları ikili programın başvurduğu herhangi bir simge içermese bile.
Bu yöntem, kodunuz ikili programdaki kod tarafından açıkça çağrılmıyorsa (ör. kodunuz bir hizmet tarafından sağlanan geri çağırmayı almak için kaydolursa) faydalıdır.
Bilinen bir sorun nedeniyle Windows'da her zaman VS 2017 VS 2017 ile çalışmıyorsa lütfen VS 2017'nizi en son sürüme yükseltin. |
copts
|
Bu özellikteki her dize, ikili hedef derlemeden önce
Paket |
defines
|
-D eklenir ve bu hedefin derleme komut satırına ve buna bağlı her kurala eklenir. Bu durum geniş kapsamlı etkilere sahip olabileceğinden çok dikkatli olun. Şüpheye düştüğünüzde bunun yerine değerleri local_defines etiketine ekleyin.
|
implementation_deps
|
deps ile farklı olarak, bu kitaplıkların (ve tüm geçişli bağlantılarının) başlıkları ve dahil yolları yalnızca bu kitaplığın derlenmesi için kullanılır, kendisine bağlı kitaplıklar için kullanılmaz. implementation_deps ile belirtilen kitaplıklar, bu kitaplığa bağlı olan ikili program hedeflerine bağlı kalmaya devam eder.
Şimdilik kullanım cc_libraries ile sınırlıdır ve
|
include_prefix
|
Ayarlandığında, bu kuralın
|
includes
|
"Değişken oluşturma" değişikliğine tabidir.
Her dizenin başına Başlıklar, src'lere veya hdr'lere eklenmelidir. Aksi takdirde, derleme korumalı alana alındığında (varsayılan) bağımlı kurallar tarafından kullanılamazlar. |
linkopts
|
LINKOPTS öğesine eklenir.
Bu listenin |
linkstamp
|
base paketinde gereklidir.
|
linkstatic
|
cc_binary ve cc_test için: İkili dosyayı statik modda bağlayın. cc_library.linkstatic için: aşağıya bakın.
Bu seçenek,
Bu bir ikili program veya test ise bu seçenek, derleme aracına mümkün olduğunda kullanıcı kitaplıkları için Yürütülebilir bir dosyayı bağlamanın gerçekten üç farklı yolu vardır:
|
local_defines
|
-D eklenir ve bu hedefin derleme komut satırına eklenir ancak bağımlı öğelerine eklemeyin.
|
nocopts
|
COPTS (kuralın copts özelliğinde açıkça belirtilen değerler dahil), bu kuralın derlenmesi amacıyla COPTS öğesinden kaldırılır.
Bu özelliğe nadiren ihtiyaç duyulur.
|
strip_include_prefix
|
Ayarlandığında bu kuralın Göreli bir yol ise pakete bağlı yol olarak kabul edilir. Mutlak bir ise depoya bağlı yol olarak kabul edilir.
|
textual_hdrs
|
Bu, kendi başlarına derlenemeyecek olan başlık dosyalarının bildirilmesi için kullanılan konumdur. Yani, geçerli kod oluşturmak için bu dosyaların her zaman diğer kaynak dosyaları tarafından metin olarak eklenmesi gerekir. |
win_def_file
|
Bu özellik yalnızca hedef platform Windows olduğunda kullanılmalıdır. Paylaşılan bir kitaplığı bağlarken sembolleri dışa aktarmak için kullanılabilir. |
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
, .proto
dosyadan C++ kodu oluşturur.
deps
, proto_library
kurallarına işaret etmelidir.
Örnek:
cc_library( name = "lib", deps = [":foo_cc_proto"], ) cc_proto_library( name = "foo_cc_proto", deps = [":foo_proto"], ) proto_library( name = "foo_proto", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
proto_library kurallarının listesi.
|
fdo_prefetch_hints
fdo_prefetch_hints(name, compatible_with, deprecation, distribs, features, licenses, profile, restricted_to, tags, target_compatible_with, testonly, visibility)
Çalışma alanında veya belirtilen bir mutlak yolda bulunan FDO önceden getirme ipuçları profilini temsil eder. Örnekler:
fdo_prefetch_hints( name = "hints", profile = "//path/to/hints:profile.afdo", ) fdo_profile( name = "hints_abs", absolute_path_profile = "/absolute/path/profile.afdo", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
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)
Çalışma alanında veya belirtilen bir mutlak yolda bulunan bir FDO profilini temsil eder. Örnekler:
fdo_profile( name = "fdo", profile = "//path/to/fdo:profile.zip", ) fdo_profile( name = "fdo_abs", absolute_path_profile = "/absolute/path/profile.zip", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
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)
Çalışma alanındaki bir Pervane optimizasyon profilini temsil eder. Örnek:
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" )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
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)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
Bunlar |
srcs
|
Tüm Bir Tüm Bir kuralın adı
İzin verilen
...ve bu dosyaları oluşturan kurallar. Farklı uzantılar, gcc kuralına uygun olarak farklı programlama dillerini belirtir. |
additional_linker_inputs
|
Örneğin, ikili program hedefine yerleştirilmek üzere derlenmiş Windows .res dosyaları burada sağlanabilir. |
copts
|
Bu özellikteki her dize, ikili hedef derlemeden önce
Paket |
defines
|
-D eklenir ve bu hedefin derleme komut satırına ve buna bağlı her kurala eklenir. Bu durum geniş kapsamlı etkilere sahip olabileceğinden çok dikkatli olun. Şüpheye düştüğünüzde bunun yerine değerleri local_defines etiketine ekleyin.
|
includes
|
"Değişken oluşturma" değişikliğine tabidir.
Her dizenin başına Başlıklar, src'lere veya hdr'lere eklenmelidir. Aksi takdirde, derleme korumalı alana alındığında (varsayılan) bağımlı kurallar tarafından kullanılamazlar. |
linkopts
|
LINKOPTS öğesine eklenir.
Bu listenin |
linkstatic
|
cc_binary ve cc_test için: İkili dosyayı statik modda bağlayın. cc_library.linkstatic için: aşağıya bakın.
Bu seçenek,
Bu bir ikili program veya test ise bu seçenek, derleme aracına mümkün olduğunda kullanıcı kitaplıkları için Yürütülebilir bir dosyayı bağlamanın gerçekten üç farklı yolu vardır:
|
local_defines
|
-D eklenir ve bu hedefin derleme komut satırına eklenir ancak bağımlı öğelerine eklemeyin.
|
malloc
|
Varsayılan olarak C++ ikili programları, boş bir kitaplık olan |
nocopts
|
COPTS (kuralın copts özelliğinde açıkça belirtilen değerler dahil), bu kuralın derlenmesi amacıyla COPTS öğesinden kaldırılır.
Bu özelliğe nadiren ihtiyaç duyulur.
|
stamp
|
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
win_def_file
|
Bu özellik yalnızca hedef platform Windows olduğunda kullanılmalıdır. Paylaşılan bir kitaplığı bağlarken sembolleri dışa aktarmak için kullanılabilir. |
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)
C++ araç zincirini temsil eder.
Bu kural şunlardan oluşur:
-
C++ işlemlerinin çalışması için gereken tüm yapılar toplanıyor. Bu işlem
all_files
,compiler_files
,linker_files
gibi özellikler veya_files
ile biten diğer özellikler tarafından yapılır. Bunlar en yaygın olarak gerekli tüm dosyaları bölen dosya gruplarıdır. -
C++ işlemleri için doğru komut satırları oluşturuluyor. Bu işlem,
CcToolchainConfigInfo
sağlayıcısı kullanılarak yapılır (ayrıntılar aşağıda verilmiştir).
C++ araç zincirini yapılandırmak için toolchain_config
özelliğini kullanın.
C++ araç zinciri yapılandırması ve araç zinciri seçimiyle ilgili ayrıntılı dokümanlar için bu
sayfaya
da göz atın.
bazel build //...
çağrılırken araç zincirlerinin gereksiz yere derlenmesini ve yapılandırılmasını önlemek için tags = ["manual"]
kullanın
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
all_files
|
all_files öğesinin diğer tüm yapı sağlayan özelliklerin üst kümesi olduğunu varsayar (örneğin, bağlantı damgası derlemesi hem derleme hem de bağlantı dosyası gerektirdiği için all_files gerekir).
|
ar_files
|
Arşivleme işlemleri için gereken tüm cc_toolchain yapılarının toplanması. |
as_files
|
Montaj işlemleri için gereken tüm cc_toolchain yapılarının toplanması |
compiler
|
toolchain_identifier özelliğini kullanın.
CROSSTOOL'un Starlark'a taşınmasından
sonra ermiş olacak ve #7075'ten sonra kaldırılacaktır.
Bu parametre ayarlandığında, crosstool_config.toolchain seçimi için kullanılır. --cpu Bazel seçeneğine göre önceliklidir. |
compiler_files
|
|
compiler_files_without_includes
|
|
coverage_files
|
|
cpu
|
Bu parametre ayarlandığında, crosstool_config.toolchain seçimi için kullanılır. --cpu Bazel seçeneğine göre önceliklidir. |
dwp_files
|
|
dynamic_runtime_lib
|
Bu, "static_link_cpp_runtimes" özelliği etkinleştirildiğinde ve bağımlılıkları dinamik olarak bağladığımızda kullanılır. |
exec_transition_for_inputs
|
|
libc_top
|
|
linker_files
|
|
module_map
|
|
objcopy_files
|
|
static_runtime_lib
|
Bu işlev, "static_link_cpp_runtimes" özelliği etkinleştirildiğinde kullanılır ve bağımlılıkları statik olarak bağlarız. |
strip_files
|
|
supports_header_parsing
|
|
supports_param_files
|
|
toolchain_config
|
cc_toolchain_config_info sağlayan kuralın etiketi.
|
toolchain_identifier
|
#5380 numaralı sorun düzeltilene kadar
|
cc_toolchain_suite
cc_toolchain_suite(name, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
C++ araç zinciri koleksiyonlarını temsil eder.
Bu kural şunlardan oluşur:
- İlgili tüm C++ araç zincirlerini toplama.
-
--cpu
ve--compiler
seçeneklerine bağlı olarak Bazel'e iletilen bir araç zincirini belirleme.
C++ araç zinciri yapılandırması ve araç zinciri seçimiyle ilgili ayrıntılı dokümanlar için bu sayfaya da göz atın.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
toolchains
|
cc_toolchain etiketine bir eşleme. Bazel'e yalnızca --cpu geçirildiğinde "<cpu>" kullanılır ve hem --cpu hem de --compiler Bazel'e geçirildiğinde "<cpu>|<derr>" kullanılır. Örnek:
cc_toolchain_suite( name = "toolchain", toolchains = { "piii|gcc": ":my_cc_toolchain_for_piii_using_gcc", "piii": ":my_cc_toolchain_for_piii_using_default_compiler", }, ) |