Tüm .bzl dosyalarında kullanılabilen genel yöntemler.
Üyeler
- analysis_test_transition
- aspect
- configuration_field
- depset
- exec_group
- exec_transition
- makro
- module_extension
- sağlayıcı
- repository_rule
- kurala
- seçme
- subrule
- tag_class
- visibility
analysis_test_transition
transition analysis_test_transition(settings)
Bir analiz-test kuralının bağımlılıklarına uygulanacak bir yapılandırma geçişi oluşturur. Bu geçiş yalnızca analysis_test = True
içeren kuralların özelliklerine uygulanabilir. Bu tür kuralların özellikleri kısıtlıdır (örneğin, bağımlılık ağaçlarının boyutu sınırlıdır). Bu nedenle, bu işlev kullanılarak oluşturulan geçişler, transition()
kullanılarak oluşturulan geçişlere kıyasla potansiyel kapsam açısından sınırlıdır.
Bu işlev, öncelikle Analysis Test Framework temel kitaplığını kolaylaştırmak için tasarlanmıştır. En iyi uygulamalar için ilgili dokümanları (veya uygulamayı) inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
settings
|
dict;
zorunlu Bu yapılandırma geçişi tarafından ayarlanması gereken yapılandırma ayarları hakkında bilgi içeren bir sözlük. Anahtarlar, derleme ayarı etiketleridir ve değerler, geçiş sonrası yeni değerleridir. Diğer tüm ayarlar değişmez. Bir analiz testinin geçmesi için ayarlanması gereken belirli yapılandırma ayarlarını belirtmek amacıyla bunu kullanın. |
ilişkili program
Aspect aspect(implementation, attr_aspects=[], toolchains_aspects=[], attrs={}, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None, subrules=[])
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
function;
required Bu yönü uygulayan, tam olarak iki parametre içeren bir Starlark işlevi: Hedef (yönün uygulandığı hedef) ve ctx (hedefin oluşturulduğu kural bağlamı). Hedefin özellikleri ctx.rule alanı aracılığıyla kullanılabilir. Bu işlev, analiz aşamasında bir özelliğin hedefe her uygulanması için değerlendirilir.
|
attr_aspects
|
Dize dizisi;
varsayılan değer [] Özellik adlarının listesi. Yön, bu adlara sahip bir hedefin özelliklerinde belirtilen bağımlılıklara göre yayılır. Buradaki yaygın değerler arasında deps ve exports bulunur. Liste, bir hedefin tüm bağımlılıkları boyunca dağıtılacak tek bir dize "*" de içerebilir.
|
toolchains_aspects
|
sequence;
varsayılan değer [] Araç zinciri türlerinin listesi. Yön, bu araç zinciri türleriyle eşleşen hedef araç zincirlerine yayılır. |
attrs
|
dict;
varsayılan değer {} Boyutun tüm özelliklerini açıklayan bir sözlük. Bir özellik adından attr.label veya attr.string gibi bir özellik nesnesine eşleme yapar (bkz. attr modülü). Yön özellik değerleri, uygulama işlevi tarafından ctx parametresinin alanları olarak kullanılabilir.
Açık atıf özellikleri Tanımlanmış özellikler, |
required_providers
|
sequence;
varsayılan değer [] Bu özellik, yönün yayılmasını yalnızca kuralları gerekli sağlayıcılarının reklamını yapan hedeflerle sınırlandırmasına olanak tanır. Değer, tekil sağlayıcılar veya sağlayıcı listeleri içeren bir liste olmalıdır ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerken [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.İç içe yerleştirilmemiş bir sağlayıcı listesi, otomatik olarak tek bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani Bazı kuralların (ör. |
required_aspect_providers
|
sequence;
varsayılan değer [] Bu özellik, bu yönün diğer yönleri incelemesine olanak tanır. Değer, tekil sağlayıcılar veya sağlayıcı listeleri içeren bir liste olmalıdır ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] geçerli bir değerken [FooInfo, BarInfo, [BazInfo, QuxInfo]] geçerli değildir.İç içe yerleştirilmemiş bir sağlayıcı listesi, otomatik olarak tek bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani Başka bir yönü (ör. |
provides
|
sequence;
varsayılan değer [] Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi. Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini dönüş değerinden çıkarırsa hata oluşur. Ancak uygulama işlevi, burada listelenmeyen ek sağlayıcılar döndürebilir. Listenin her öğesi, |
requires
|
Aspect sıralı;
varsayılan değer [] Bu özellikten önce dağıtılması gereken özelliklerin listesi. |
fragments
|
Dize dizisi;
varsayılan değer [] Yönelinmenin hedef yapılandırmada gerektirdiği yapılandırma parçalarının adları. |
host_fragments
|
Dize dizisi;
varsayılan değer [] Yönelinmenin ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adları. |
toolchains
|
sequence;
varsayılan değer [] Ayarlanırsa bu özelliğin gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. Araçlar zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla görünüm uygulamasına sağlanır.
|
incompatible_use_toolchain_transition
|
bool;
varsayılan değer False Desteği sonlandırıldı, artık kullanılmıyor ve kaldırılması gerekiyor. |
doc
|
dize veya None ;
varsayılan değer None Belge oluşturma araçları tarafından ayıklanabilen yönün açıklaması. |
apply_to_generating_rules
|
bool;
varsayılan değer False Doğru ise bir çıkış dosyasına uygulanan yön, çıkış dosyasının oluşturma kuralına uygulanır. Örneğin, bir özelliğin "deps" özelliği aracılığıyla aktarmalı olarak yayıldığını ve "alpha" hedefine uygulandığını varsayalım. "alpha"nın "deps = [':beta_output']" değerine sahip olduğunu varsayalım. Burada "beta_output", bir "beta" hedefinin tanımlanmış bir çıkışıdır. "beta"nın "deps" özelliklerinden biri olarak "charlie" hedefinin olduğunu varsayalım. Özellik için "apply_to_generating_rules=True" ise özellik "alpha", "beta" ve "charlie" aracılığıyla yayılır. Yanlış ise özellik yalnızca "alpha"ya yayılır. Varsayılan olarak yanlıştır. |
exec_compatible_with
|
Dize dizisi;
varsayılan değer [] Yürütme platformundaki, bu özelliğin tüm örnekleri için geçerli olan kısıtlamaların listesi. |
exec_groups
|
dict veya None ;
varsayılan değer None Yürütme grubu adının (dize) exec_group s olarak dize dizini. Ayarlanırsa yönlerin tek bir örnek içinde birden fazla yürütme platformunda işlemler çalıştırmasına olanak tanır. Daha fazla bilgi için yürütme grupları belgelerine bakın.
|
subrules
|
Alt kural dizini;
varsayılan değer [] Deneysel: Bu yön tarafından kullanılan alt kuralların listesi. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
Örnek kullanım:
Kural özelliğini tanımlama:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Kural uygulamada erişim:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parametreler
Parametre | Açıklama |
---|---|
fragment
|
string;
zorunlu Geç bağlanan değeri içeren bir yapılandırma parçasının adı. |
name
|
string;
required Yapılandırma parçasından alınacak değerin adı. |
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
parametresi, depsetin doğrudan öğelerinin bir listesi, transitive
parametresi ise öğeleri oluşturulan depsetin dolaylı öğeleri haline gelen depsetlerin bir listesidir. Depset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order
parametresi tarafından belirtilir. Daha fazla bilgi için Depset'lere genel bakış başlıklı makaleyi inceleyin.
Bir depsetteki tüm öğeler (doğrudan ve dolaylı), type(x)
ifadesiyle elde edilen türde olmalıdır.
Yineleme sırasında yinelemeleri ortadan kaldırmak için karma oluşturmaya dayalı bir küme kullanıldığından, bir depset'in tüm öğeleri karma oluşturmaya uygun olmalıdır. Ancak bu değişmez özellik şu anda tüm kurucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı kontrolü etkinleştirmek için --incompatible_always_check_depset_elements işaretini kullanın. Bu, gelecekteki sürümlerde varsayılan davranış olacaktır. Sayı 10313 sorununa bakın.
Ayrıca, öğeler şu anda değiştirilemez olmalıdır ancak bu kısıtlama gelecekte gevşetilecektir.
Oluşturulan depo grubunun sırası, transitive
depo gruplarının sırasıyla uyumlu olmalıdır. "default"
siparişi diğer tüm siparişlerle uyumludur. Diğer tüm siparişler yalnızca kendileriyle uyumludur.
Parametreler
Parametre | Açıklama |
---|---|
direct
|
sequence; veya None ;
varsayılan değer None Bir depsetin doğrudan öğelerinin listesi. |
order
|
dize;
varsayılan değer "default" Yeni depset için tarama stratejisi. Olası değerler için buraya bakın. |
transitive
|
Depset dizisi veya None ;
varsayılan değer None Öğeleri, depsetin dolaylı öğeleri olacak depsetlerin listesi. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])
Parametreler
Parametre | Açıklama |
---|---|
toolchains
|
sequence;
varsayılan değer [] Bu yürütme grubunun gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. |
exec_compatible_with
|
Dize dizisi;
varsayılan değer [] Yürütme platformundaki kısıtlamaların listesi. |
exec_transition
transition exec_transition(implementation, inputs, outputs)
transition()
öğesinin özelleştirilmiş bir sürümü. En iyi uygulamalar için ilgili dokümanları (veya uygulamayı) inceleyin. Yalnızca Bazel'in yerleşik işlevlerinden kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
callable;
required |
inputs
|
dize dizisi;
zorunlu |
outputs
|
dize dizisi;
zorunlu |
makro
macro macro(implementation, attrs={}, inherit_attrs=None, finalizer=False, doc=None)
BUILD
dosyalarında veya makrolarında (eski veya sembolik) çağrılabilecek sembolik bir makro tanımlar.
macro(...)
tarafından döndürülen değer, .bzl dosyasında bir genel değişkene atanmalıdır. Genel değişkenin adı, makro sembolünün adıdır.
Sembolik makroların nasıl kullanılacağıyla ilgili kapsamlı bir kılavuz için Makrolar başlıklı makaleyi inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
function;
required Bu makroyu uygulayan Starlark işlevi. Makro özelliklerinin değerleri, uygulama işlevine anahtar kelime bağımsız değişkenleri olarak iletilir. Uygulama işlevi en az iki adlandırılmış parametreye ( name ve visibility ) sahip olmalıdır. Makro, özellikleri devralıyorsa (aşağıdaki inherit_attrs bölümüne bakın) **kwargs artık anahtar kelime parametresine sahip olmalıdır.
Kural olarak, uygulama işlevinde makronun "ana" olmayan hedeflere incelemesi, değiştirmesi veya iletmesi gereken tüm özellikler için adlandırılmış bir parametre bulunmalıdır. "Ana" hedefe değiştirilmeden iletilecek "toplu" devralınan özellikler ise Uygulama işlevi bir değer döndürmemelidir. Bunun yerine uygulama işlevi, kural veya makro simgelerini çağırarak hedefleri tanımlar. Bir sembolik makro tarafından tanımlanan herhangi bir hedefin veya iç sembolik makronun adı (makronun uygulama işlevinin geçişli olarak çağırdığı tüm Starlark işlevleri dahil), Varsayılan olarak, sembolik bir makro tarafından tanımlanan hedefler (makronun uygulama işlevinin geçişli olarak çağırdığı tüm Starlark işlevleri dahil) yalnızca makroyu tanımlayan .bzl dosyasını içeren pakette görünür. Hedefleri harici olarak görünür olarak beyan etmek için (sembol makrosunu çağıran dahil), uygulama işlevi Aşağıdaki API'ler, makro uygulama işlevinde ve bu işlevin aktarmalı olarak çağırdığı Starlark işlevlerinde kullanılamaz:
|
attrs
|
dict;
varsayılan değer {} Bu makronun desteklediği özelliklerin sözlüğüdür (rule.attrs ile benzer). Anahtarlar özellik adları, değerler ise attr.label_list(...) gibi özellik nesneleri (attr modülüne bakın) veya None 'dır. None girişi, makronun inherit_attrs aracılığıyla devralabileceği halde bu ada sahip bir özniteliğe sahip olmadığı anlamına gelir (aşağıya bakın).
Özel Adları Bellek kullanımını sınırlamak için tanımlanabilecek özellik sayısına bir sınır uygulanır. |
inherit_attrs
|
rule; veya macro; veya string; veya None ;
varsayılan değer None Bir kural simgesi, makro simgesi veya makronun özelliklerini devralacağı yerleşik bir ortak özellik listesinin adı (aşağıya bakın).
Miras mekanizması şu şekilde çalışır:
Zorunlu olmayan bir özellik devralındığında, özelliğin varsayılan değeri, orijinal kuralda veya makroda ne belirtilmiş olursa olsun Örneğin, aşağıdaki makro, def _my_cc_library_impl(name, visibility, tags, **kwargs): # Append a tag; tags attr was inherited from native.cc_library, and # therefore is None unless explicitly set by the caller of my_cc_library() my_tags = (tags or []) + ["my_custom_tag"] native.cc_library( name = name, visibility = visibility, tags = my_tags, **kwargs ) my_cc_library = macro( implementation = _my_cc_library_impl, inherit_attrs = native.cc_library, attrs = { "cxxopts": None, "copts": attr.string_list(default = ["-D_FOO"]), }, )
Kural olarak, bir makro, devralınan ve geçersiz kılınmayan özellikleri, makronun sarmaladığı "ana" kurala veya makro simgesine değiştirilmeden iletmelidir. Genellikle, devralınan özelliklerin çoğunun uygulama işlevinin parametre listesinde bir parametresi olmaz ve |
finalizer
|
bool;
varsayılan değer False Bu makronun kural sonlandırıcı olup olmadığı. Kural sonlandırıcı, BUILD dosyasında bulunduğu konumdan bağımsız olarak, paket yüklemenin sonunda, sonlandırıcı olmayan tüm hedefler tanımlandıktan sonra değerlendirilen bir makrodur.
Normal sembolik makroların aksine kural sonlandırıcılar, mevcut pakette tanımlanan sonlandırıcı olmayan kural hedeflerinin kümesini sorgulamak için |
doc
|
dize veya None ;
varsayılan değer None Makro için doküman oluşturma araçları tarafından ayıklanabilen bir açıklama. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)
use_extension
ile MODULE.bazel dosyasında kullanılabilmesi için global bir değerde saklayın.
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
callable;
required Bu modül uzantısını uygulayan işlev. Tek bir parametre ( module_ctx ) almalıdır. Mevcut depo grubunu belirlemek için işlev, derlemenin başında bir kez çağrılır.
|
tag_classes
|
dict;
varsayılan değer {} Uzantı tarafından kullanılan tüm etiket sınıflarını bildiren bir sözlük. Etiket sınıfının adından bir tag_class nesnesine eşlenir.
|
doc
|
dize; veya None ;
varsayılan değer None Doküman oluşturma araçları tarafından ayıklanabilen modül uzantısının açıklaması. |
environ
|
Dize dizisi;
varsayılan değer [] Bu modül uzantısının bağlı olduğu ortam değişkenlerinin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse uzantı yeniden değerlendirilir. |
os_dependent
|
bool;
varsayılan değer False Bu uzantının işletim sistemine bağlı olup olmadığını belirtir |
arch_dependent
|
bool;
varsayılan değer False Bu uzantının mimariye bağlı olup olmadığını belirtir |
sağlayıcı
unknown provider(doc=None, *, fields=None, init=None)
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Sağlayıcıların nasıl kullanılacağıyla ilgili kapsamlı bir kılavuz için Kurallar (Sağlayıcılar) başlıklı makaleyi inceleyin.
init
belirtilmezse Provider
çağrılabilir bir değer döndürür.
init
belirtilirse 2 öğeden oluşan bir tuple döndürür: Provider
çağrılabilir değer ve ham kurucu çağrılabilir değer. Ayrıntılar için Kurallar (Özel sağlayıcıların özel başlatılması) bölümüne ve aşağıdaki init
parametresi tartışmasına bakın.
Parametreler
Parametre | Açıklama |
---|---|
doc
|
dize veya None ;
varsayılan değer None Sağlayıcının, doküman oluşturma araçları tarafından ayıklanabilen açıklaması. |
fields
|
Dize dizisi; veya dizin; veya None ;
varsayılan değer None Belirtilirse izin verilen alan grubunu kısıtlar. Olası değerler:
|
init
|
çağrılabilir; veya None ;
varsayılan değer None Oluşturma sırasında sağlayıcının alan değerlerini ön işleme ve doğrulamak için isteğe bağlı bir geri çağırma işlevi. init belirtilirse provider() , 2 öğeden oluşan bir tuple döndürür: normal sağlayıcı sembolü ve bir ham kurucu.Aşağıda bu konuyla ilgili net bir açıklama verilmiştir. Anlaşılır bir tartışma ve kullanım alanları için Kurallar (Sağlayıcıların özel başlatılması) başlıklı makaleyi inceleyin.
init geri çağırma işlevi verilmediği takdirde, P simgesine yapılan çağrı, varsayılan yapıcı işlevi c 'e yapılan çağrı gibi davranır. Diğer bir deyişle, P(*args, **kwargs) c(*args, **kwargs) döndürür. Örneğin,MyInfo = provider() m = MyInfo(foo = 1) m 'ın m.foo == 1 içeren bir MyInfo örneği olmasını sağlar.Ancak
Not: Yukarıdaki adımlar, Bu şekilde
MyInfo, _new_myinfo = provider(init = ...) |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc=None)
module_extension()
uygulama işlevinden yüklenmesi ve çağrılabilmesi ya da use_repo_rule()
tarafından kullanılabilmesi için global bir değerde saklayın.
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
callable;
required Bu kuralı uygulayan işlev. Tek bir parametre ( repository_ctx ) içermelidir. İşlev, kuralın her örneği için yükleme aşamasında çağrılır.
|
attrs
|
dict veya None ;
varsayılan değer None Depolama alanı kuralının tüm özelliklerini bildiren bir sözlük. Bir özellik adından özellik nesnesine eşleme yapar ( attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir dosyaya etikete yönelik gizli bir bağımlılık eklemek için kullanılabilir (depo kuralı, oluşturulan bir yapıya bağlı olamaz). name özelliği dolaylı olarak eklenir ve belirtilmemelidir.
Tanımlanmış özellikler, |
local
|
bool;
varsayılan değer False Bu kuralın her şeyi yerel sistemden getirdiğini ve her getirme işleminde yeniden değerlendirilmesi gerektiğini belirtir. |
environ
|
Dize dizisi;
varsayılan değer [] Desteği sonlandırıldı. Bu parametrenin desteği sonlandırılmıştır. Bunun yerine repository_ctx.getenv 'e geçin.Bu depo kuralının bağlı olduğu ortam değişkenlerinin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse depo yeniden getirilir. |
configure
|
bool;
varsayılan değer False Deponun, yapılandırma amacıyla sistemi incelediğini belirtir |
remotable
|
bool;
varsayılan değer False Deneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --experimental_repo_remote_exec Uzaktan yürütme ile uyumlu olarak ayarlanarak deneme amaçlı olarak etkinleştirilebilir. |
doc
|
dize veya None ;
varsayılan değer None Depolama alanı kuralının, doküman oluşturma araçları tarafından ayıklanabilen açıklaması. |
kural
callable rule(implementation, *, test=unbound, attrs={}, outputs=None, executable=unbound, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, provides=[], dependency_resolution_rule=False, exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])
Kurallar, .bzl dosyasındaki genel değişkenlere atanmalıdır. Genel değişkenin adı, kuralın adıdır.
Test kurallarının adının _test
ile bitmesi gerekir. Diğer tüm kuralların adında bu son ek bulunmamalıdır. (Bu kısıtlama yalnızca kurallar için geçerli olup hedeflerinin kapsamına girmez.)
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
function;
zorunlu Bu kuralı uygulayan Starlark işlevinin tam olarak bir parametresi olmalıdır: ctx. İşlev, kuralın her örneği için analiz aşamasında çağrılır. Kullanıcı tarafından sağlanan özelliklere erişebilir. Bildirilen tüm çıkışları oluşturmak için işlemler oluşturmalıdır. |
test
|
bool;
varsayılan değer unbound Bu kuralın test kuralı olup olmadığı, yani blaze test komutuna tabi olup olmadığı. Tüm test kuralları otomatik olarak executable olarak kabul edilir. Test kuralları için executable = True değerini açıkça ayarlamak gerekmez (ve önerilmez). Varsayılan değer False 'tür. Daha fazla bilgi için Kurallar sayfasına bakın.
|
attrs
|
dict;
varsayılan değer {} Kuralın tüm özelliklerini bildirmek için kullanılan bir sözlük. Bir özellik adından özellik nesnesine eşleme yapar ( attr modülüne bakın). _ ile başlayan özellikler gizlidir ve bir etikete dolaylı bağımlılık eklemek için kullanılabilir. name özelliği dolaylı olarak eklenir ve belirtilmemelidir. visibility , deprecation , tags , testonly ve features özellikleri dolaylı olarak eklenir ve geçersiz kılınamaz. Çoğu kural için yalnızca birkaç özellik gerekir. Bellek kullanımını sınırlamak için tanımlanabilecek özellik sayısına bir sınır uygulanır.
Tanımlanmış özellikler, |
outputs
|
dict; veya None ; veya function;
varsayılan değer None Kullanımdan kaldırılmıştır. Bu parametrenin desteği sonlandırıldı ve yakında kaldırılacak. Lütfen bu yönteme güvenmeyin. --incompatible_no_rule_outputs_param ile devre dışı bırakılır. Kodunuzun yakında kaldırılacak olan özellikle uyumlu olup olmadığını doğrulamak için bu işareti kullanın. Bu parametrenin desteği sonlandırılmıştır. Kuralları, OutputGroupInfo veya attr.output yerine kullanacak şekilde taşıyın. Önceden beyan edilen çıkışları tanımlamak için kullanılan bir şema. Bu bağımsız değişkenin değeri bir sözlük veya sözlük oluşturan bir geri çağırma işlevidir. Geri çağırma işlevi, hesaplanmış bağımlılık özelliklerine benzer şekilde çalışır: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin, Sözlükteki her giriş, anahtarın bir tanımlayıcı ve değerin, çıktının etiketini belirleyen bir dize şablonu olduğu önceden bildirilmiş bir çıktı oluşturur. Kuralın uygulama işlevinde tanımlayıcı,
Uygulamada en yaygın yer tutucu |
executable
|
bool;
varsayılan değer unbound Bu kuralın yürütülebilir olarak kabul edilip edilmeyeceğini, yani bir blaze run komutunun konusu olup olamayacağını belirtir. Varsayılan olarak False değerine ayarlanır. Daha fazla bilgi için Kurallar sayfasına bakın.
|
output_to_genfiles
|
bool;
varsayılan değer False Doğru ise dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için ihtiyacınız olmadığı sürece (ör. C++ için başlık dosyaları oluştururken) bu işareti ayarlamayınız. |
fragments
|
Dize dizisi;
varsayılan değer [] Kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adları. |
host_fragments
|
Dize dizisi;
varsayılan değer [] Kuralın ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adları. |
_skylark_testable
|
bool;
varsayılan değer False (Deneysel) Doğru ise bu kural, işlemlerini bir Actions sağlayıcı aracılığıyla kendisine bağlı kurallar tarafından incelenmek üzere gösterir. Sağlayıcı, ctx.created_actions() çağrısı yapılarak kuralın kendisi tarafından da kullanılabilir.Bu, yalnızca Starlark kurallarının analiz sırasındaki davranışını test etmek için kullanılmalıdır. Bu işaret gelecekte kaldırılabilir. |
toolchains
|
sequence;
varsayılan değer [] Ayarlanırsa bu kuralın gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. Araçlar zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchain aracılığıyla kural uygulamasına sağlanır.
|
incompatible_use_toolchain_transition
|
bool;
varsayılan değer False Desteği sonlandırıldı, artık kullanılmıyor ve kaldırılması gerekiyor. |
doc
|
dize veya None ;
varsayılan değer None Belge oluşturma araçları tarafından ayıklanabilen kural açıklaması. |
provides
|
sequence;
varsayılan değer [] Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi. Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini dönüş değerinden çıkarırsa hata oluşur. Ancak uygulama işlevi, burada listelenmeyen ek sağlayıcılar döndürebilir. Listenin her öğesi, |
dependency_resolution_rule
|
bool;
varsayılan değer False Ayarlanırsa kural, materyalize ediciler tarafından kullanılabilir olarak da işaretlenen özellikler aracılığıyla bağımlılık olabilir. Bu işaretin ayarlandığı kuralların her özelliği, materyalize ediciler için de kullanılabilir olarak işaretlenmelidir. Bu, işaretlenen kuralların işaretlenmemiş kurallara bağlı olmaması içindir. |
exec_compatible_with
|
Dize dizisi;
varsayılan değer [] Yürütme platformundaki, bu kural türünün tüm hedefleri için geçerli olan kısıtlamaların listesi. |
analysis_test
|
bool;
varsayılan değer False Doğru ise bu kural bir analiz testi olarak değerlendirilir. Not: Analiz testi kuralları, temel Starlark kitaplıklarında sağlanan altyapı kullanılarak tanımlanır. Yardım için Test bölümüne bakın. Bir kural analiz testi kuralı olarak tanımlanırsa özelliklerinde analysis_test_transition kullanılarak tanımlanan yapılandırma geçişlerinin kullanılmasına izin verilir ancak bazı kısıtlamalar etkinleştirilir:
|
build_setting
|
BuildSetting veya None ;
varsayılan değer None Ayarlanırsa bu kuralın ne tür bir build setting olduğunu açıklar. config modülüne bakın. Bu ayar belirlenirse bu kurala, burada iletilen değere karşılık gelen bir türde "build_setting_default" adlı zorunlu bir özellik otomatik olarak eklenir.
|
cfg
|
varsayılan değer None Ayarlanırsa kuralın analizden önce kendi yapılandırmasına uygulayacağı yapılandırma geçişini gösterir. |
exec_groups
|
dict veya None ;
varsayılan değer None Yürütme grubu adının (dize) exec_group s olarak dize dizini. Ayarlanırsa kuralların tek bir hedef içinde birden fazla yürütme platformunda işlemler yapmasını sağlar. Daha fazla bilgi için yürütme grupları belgelerine bakın.
|
initializer
|
varsayılan değer None Deneysel: Kuralın özelliklerini başlatan Stalark işlevi. İşlev, kuralın her örneği için yükleme sırasında çağrılır. Özellik adlarından istenen değerlere giden bir sözlük döndürmelidir. Döndürülmeyen özellikler bu durumdan etkilenmez. Değer olarak Başlatıcılar, bir özellik tanımında belirtilen varsayılan değerlerden önce değerlendirilir. Sonuç olarak, başlatıcının imzasında bir parametre varsayılan değerler içeriyorsa özellik tanımındaki varsayılan değerin üzerine yazılır ( Benzer şekilde, başlatıcının imzasında varsayılan değeri olmayan bir parametre varsa bu parametre zorunlu hale gelir. Bu gibi durumlarda, özellik tanımında varsayılan/zorunlu ayarları çıkarmak iyi bir uygulamadır. İşlenmeyen özellikler için Genişletilmiş kurallar söz konusu olduğunda, tüm başlatıcılar alt öğeden üst öğelere doğru çağrılır. Her başlatıcıya yalnızca bildiği herkese açık özellikler iletilir. |
parent
|
Varsayılan değer None Deneme: Uzatılmış Stalark kuralı. Ayarlandığında, reklamı yapılan sağlayıcıların yanı sıra herkese açık özellikler de birleştirilir. Kural, üst öğedeki executable ve test ile eşleşir. fragments , toolchains , exec_compatible_with ve exec_groups değerleri birleştirilir. Eski veya kullanımdan kaldırılmış parametreler ayarlanamaz. Üst öğenin gelen yapılandırma geçişi cfg , thisrule öğesinin gelen yapılandırmasından sonra uygulanır.
|
extendable
|
bool; veya Label; veya string; veya None ;
varsayılan değer None Deneysel: Bu kuralı hangi kuralların genişletebileceğini tanımlayan izin verilenler listesi etiketi. Uzatma işlemine her zaman izin vermek/vermemek için True/False olarak da ayarlanabilir. Bazel varsayılan olarak uzantılara her zaman izin verir. |
subrules
|
Alt kural dizisi;
varsayılan değer [] Deneysel: Bu kuralın kullandığı alt kuralların listesi. |
seç
unknown select(x, no_match_error='')
select()
, kural özelliğini yapılandırılabilir hale getiren yardımcı işlevdir. Ayrıntılar için derleme ansiklopedisine bakın.
Parametreler
Parametre | Açıklama |
---|---|
x
|
dict;
zorunlu Yapılandırma koşullarını değerlerle eşleyen bir sözlük. Her anahtar, bir config_setting veya constraint_value örneğini tanımlayan bir etiket ya da etiket dizesidir. Dize yerine etiketin ne zaman kullanılacağı hakkında bilgi edinmek için makrolarla ilgili dokümanlara bakın. |
no_match_error
|
dize;
varsayılan değer '' Hiçbir koşul eşleşmezse raporlanacak isteğe bağlı özel hata. |
alt kural
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
Parametreler
Parametre | Açıklama |
---|---|
implementation
|
function;
required Bu alt kuralı uygulayan Starlark işlevi |
attrs
|
dict;
varsayılan değer {} Alt kuralın tüm (gizli) özelliklerini bildirmek için bir sözlük. Alt kurallarda yalnızca etiket türüne sahip gizli özellikler (ör. etiket veya etiket listesi) bulunabilir. Bu etiketlere karşılık gelen çözümlenmiş değerler, Bazel tarafından alt kuralın uygulama işlevine adlandırılmış bağımsız değişkenler olarak otomatik olarak iletilir (bu nedenle uygulama işlevinin, özellik adlarıyla eşleşen adlandırılmış parametreleri kabul etmesi gerekir). Bu değerlerin türleri şunlardır:
|
toolchains
|
sequence;
varsayılan değer [] Ayarlanırsa bu alt kuralın gerektirdiği araç zinciri grubu. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesneleri içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchains aracılığıyla alt kural uygulamasına sağlanır. Bu parametre ayarlanmışsa AEG'lerin, tüketen kurallarda etkinleştirilmesi gerektiğini unutmayın. Henüz AEG'lere geçmediyseniz https://bazel.build/extending/auto-exec-groups#migration-aegs adresine bakın.
|
fragments
|
Dize dizisi;
varsayılan değer [] Alt kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adları. |
subrules
|
Alt kural sıralı listesi;
varsayılan değer [] Bu alt kuralın ihtiyaç duyduğu diğer alt kuralların listesi. |
tag_class
tag_class tag_class(attrs={}, *, doc=None)
Parametreler
Parametre | Açıklama |
---|---|
attrs
|
dict;
varsayılan değer {} Bu etiket sınıfının tüm özelliklerini bildirmek için kullanılan bir sözlük. Bir özellik adından özellik nesnesine eşleme yapar ( attr modülüne bakın).
|
doc
|
dize veya None ;
varsayılan değer None Belge oluşturma araçları tarafından ayıklanabilen etiket sınıfının açıklaması. |
görünürlük
None
visibility(value)
Şu anda başlatılmakta olan .bzl modülünün yükleme görünürlüğünü ayarlar.
Bir modülün yükleme görünürlüğü, diğer BUILD ve .bzl dosyalarının bu modülü yükleyip yükleyemeyeceğini belirler. (Bu, dosyanın diğer hedeflerin bağımlılığı olarak görünüp görünmeyeceğini yöneten temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır.) Yükleme görünürlüğü paket düzeyinde çalışır: Bir modülün yüklenmesi için yüklemeyi yapan dosyanın, modüle görünürlük izni verilmiş bir pakette bulunması gerekir. Bir modül, görünürlüğünden bağımsız olarak her zaman kendi paketinde yüklenebilir.
visibility()
, .bzl dosyası başına yalnızca bir kez çağrılabilir ve işlev içinde değil, yalnızca üst düzeyde çağrılabilir. Tercih edilen stil, bu çağrıyı load()
ifadelerinin ve bağımsız değişkeni belirlemek için gereken kısa mantığın hemen altına yerleştirmektir.
--check_bzl_visibility
işareti yanlış değerine ayarlanırsa yük görünürlüğü ihlalleri uyarı verir ancak derleme başarısız olmaz.
Parametreler
Parametre | Açıklama |
---|---|
value
|
required Paket spesifikasyonu dizelerinin listesi veya tek bir paket spesifikasyonu dizesi. Paket özellikleri, negatif paket özelliklerine izin verilmemesi dışında
"@" söz dizimine izin verilmez; tüm özellikler geçerli modülün deposuna göre yorumlanır.
|