. BUILD dosyalarında kullanılabilen yöntemler. BUILD dosyalarında da kullanılabilen ek işlevler ve derleme kuralları için Derleme Ansiklopedisi'ne de bakın.
Üyeler
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- seç
- alt paketler
çökmüş
depset depset(direct=None, order="default", *, transitive=None)depset oluşturur.
direct
parametresi, depset'in doğrudan öğelerinin listesidir. transitive
parametresi ise öğeleri, oluşturulan görüntünün dolaylı öğeleri haline gelen depset'lerin 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 kümenin tüm öğeleri (doğrudan ve dolaylı), type(x)
ifadesiyle elde edilenle aynı türde olmalıdır.
Yineleme sırasında yinelemeleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, kümedeki tüm öğeler karma oluşturma işlemine tabi olmalıdır. Ancak bu değişmez özellik şu anda tüm kurucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı kontrol sağlamak için --inuyumlu_always_check_depset_elements işaretini kullanın; bu, gelecekteki sürümlerde varsayılan davranış olacaktır. Sorun 10313'e bakın.
Ayrıca, öğeler şu anda sabit olmalıdır ancak bu kısıtlama ileride gevşetilecektir.
Oluşturulan depsetin sırası, transitive
depsetlerinin sırası ile 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 kümenin 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
|
sequence of depset'ler; veya None ;
varsayılan değer None Öğeleri, derinliğin dolaylı öğeleri haline gelecek olan depset'lerin listesi. |
existing_rule
unknown existing_rule(name)Bu ileti dizisinin paketinde örneklendirilmiş bir kuralın özelliklerini açıklayan, değişmez bir sözlük benzeri nesne döndürür veya bu ada sahip bir kural örneği yoksa
None
döndürür.Burada değişmez sözlük benzeri nesne, sözlük benzeri iterasyonu (len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
ve x.values()
) destekleyen, temelden değişmez bir nesne x
anlamına gelir.
Sonuç, gizli olanlar (adları harfle başlamayan) ve bazı temsil edilemeyen eski özellik türleri hariç her bir özellik için bir giriş içerir. Ayrıca sözlük, kural örneğinin name
ve kind
(örneğin, 'cc_binary'
) değerleri için girişler içerir.
Sonucun değerleri, özellik değerlerini şu şekilde temsil eder:
- str, int ve bool türündeki özellikler olduğu gibi gösterilir.
- Etiketler, aynı paketteki hedefler için
':foo'
veya farklı bir paketteki hedefler için'//pkg:name'
biçiminde dizelere dönüştürülür. - Listeler delikler olarak temsil edilir ve dikteler yeni, değişebilen diktelere dönüştürülür. Bunların öğeleri aynı şekilde yinelemeli bir şekilde dönüştürülür.
select
değerleri, içerikleri yukarıda açıklandığı şekilde dönüştürülmüş olarak döndürülür.- Kuralın oluşturulması sırasında değeri belirtilmeyen ve varsayılan değeri hesaplanan özellikler sonuçtan hariç tutulur. (Hesaplanmış varsayılan değerler, analiz aşamasına kadar hesaplanamaz.).
Mümkünse bu işlevi yalnızca kural tamamlayıcısı sembolik makrolarının uygulama işlevlerinde kullanın. Bu işlevin diğer bağlamlarda kullanılması önerilmez ve gelecekteki bir Bazel sürümünde devre dışı bırakılacaktır. Bu işlev, BUILD
dosyalarını kırılgan ve sıraya bağımlı hale getirir. Ayrıca, kural özelliği değerlerinin dahili biçimden Starlark'a yapılan diğer iki dönüşümden farklı olduğuna dikkat edin: Biri hesaplanmış varsayılanlar tarafından, diğeri ctx.attr.foo
tarafından kullanılır.
Parametreler
Parametre | Açıklama |
---|---|
name
|
string;
gerekli Hedefin adı. |
existing_rules
unknown existing_rules()Bu iş parçacığının paketinde o ana kadar örneklendirilen kuralları açıklayan, dikt benzeri bir nesne döndürür. Sözlük benzeri nesnenin her girişi, kural örneğinin adını
existing_rule(name)
tarafından döndürülecek sonuçla eşler.Burada değişmez sözlük benzeri nesne, sözlük benzeri iterasyonu (len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
ve x.values()
) destekleyen, temelden değişmez bir nesne x
anlamına gelir.
Mümkünse bu işlevi yalnızca kural tamamlayıcısı sembolik makrolarının uygulama işlevlerinde kullanın. Bu işlevin diğer bağlamlarda kullanılması önerilmez ve gelecekteki bir Bazel sürümünde devre dışı bırakılacaktır; BUILD
dosyayı kırılgan ve sıraya bağlı hale getirir.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
Bu pakete ait olan ve diğer paketlere aktarılan dosyaların listesini belirtir.
Parametreler
Parametre | Açıklama |
---|---|
srcs
|
sequence of dize;
gerekli Dışa aktarılacak dosyaların listesi. |
visibility
|
sequence veya None ;
varsayılan değer None Görünürlük beyanı belirtilebilir. Dosyalar, belirtilen hedefler tarafından görülebilir. Görünürlük belirtilmezse dosyalar her paket tarafından görülebilir. |
licenses
|
Dize dizisi veya None ;
varsayılan değer None Belirtilecek lisanslar. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)Glob, geçerli paketteki her dosya için aşağıdaki özelliklere sahip yeni, değişebilir, sıralanmış bir liste döndürür:
include
'te en az bir kalıpla eşleşir.exclude
içindeki kalıpların hiçbiriyle eşleşmiyor (varsayılan[]
).
exclude_directories
bağımsız değişkeni etkinleştirilirse (1
olarak ayarlanırsa) dizin türündeki dosyalar sonuçlardan çıkarılır (varsayılan 1
).
Parametreler
Parametre | Açıklama |
---|---|
include
|
sequence of dize;
varsayılan değer [] Dahil edilecek glob kalıplarının listesi. |
exclude
|
Dize dizisi;
varsayılan değer [] Hariç tutulacak genel ifade kalıplarının listesi. |
exclude_directories
|
int;
varsayılan değer 1 Dizinlerin hariç tutulup tutulmayacağını belirten bir işaret. |
allow_empty
|
varsayılan değer unbound Glob kalıplarının hiçbir şeyle eşleşmesine izin verip vermeyeceğimizi belirtir. "allow_boş" Yanlış değerine ayarlanırsa her bağımsız dahil etme kalıbı bir öğeyle eşleşmeli ve nihai sonuç boş olmamalıdır ("hariç_tutulan" kalıplarıyla eşleşmeler hariç tutulduktan sonra). |
module_name
string module_name()Bu paketin içinde bulunduğu depoyla ilişkilendirilmiş Bazel modülünün adı. Bu paket MODULE.bazel yerine WORKSPACE'te tanımlanan bir depodan geliyorsa bu boş olur. Modül uzantıları tarafından oluşturulan depolar için bu, uzantıyı barındıran modülün adıdır.
module_ctx.modules
konumunda görülen module.name
alanıyla aynıdır.
None
değerini döndürebilir.
module_version
string module_version()Bu paketin bulunduğu depoyla ilişkilendirilmiş Bazel modülünün sürümü. Bu paket, MODULE.bazel yerine WORKSPACE içinde tanımlanan bir depodaysa bu alan boştur. Modül uzantıları tarafından oluşturulan depolar için bu, uzantıyı barındıran modülün sürümüdür.
module_ctx.modules
içinde görülen module.version
alanıyla aynıdır.
None
sonucunu döndürebilir.
package_group
None
package_group(name, packages=[], includes=[])
Bu işlev, bir paket grubu tanımlar ve gruba bir etiket atar. Etikete, visibility
özelliklerinde referans verilebilir.
Parametreler
Parametre | Açıklama |
---|---|
name
|
string;
gerekli Bu kuralın benzersiz adı. |
packages
|
sequence of dize;
varsayılan değer [] Bu gruptaki paketlerin tam listesi. |
includes
|
sequence of dize;
varsayılan değer [] Buna dahil olan diğer paket grupları. |
package_name
string package_name()Değerlendirilen paketin, depo adı olmadan adı. Örneğin, BUILD dosyasında
some/package/BUILD
için değer some/package
olur. BUILD dosyası bir .bzl dosyasında tanımlanan bir işlevi çağırıyorsa package_name()
, çağıran BUILD dosyası paketiyle eşleşir.
package_relative_label
Label package_relative_label(input)Giriş dizesini, şu anda başlatılmakta olan paket bağlamında (yani mevcut makronun yürütüldüğü
BUILD
dosyası) bir Etiket nesnesine dönüştürür. Giriş zaten bir Label
ise değişmeden döndürülür.Bu işlev yalnızca BUILD dosyası ve doğrudan veya dolaylı olarak çağırdığı makrolar değerlendirilirken çağrılabilir; (örneğin) bir kural uygulama işlevinde çağrılamayabilir.
Bu işlevin sonucu, belirtilen dizenin BUILD dosyasında bildirilen hedefin etiket değerli özelliğine geçirilmesiyle elde edilecek Label
değeriyle aynıdır.
Kullanım notu: Bu işlev ile Label() arasındaki fark, Label()
'in BUILD
dosyasının paketini değil, kendisini çağıran .bzl
dosyasının paketini kullanmasıdır. Bir derleyici gibi makroya sabit kodlanmış sabit bir hedefe başvurmanız gerektiğinde Label()
değerini kullanın. BUILD dosyası tarafından bir Label
nesnesine sağlanan etiket dizesini normalleştirmeniz gerektiğinde package_relative_label()
kullanın. (Bir dize, BUILD dosyası veya çağrı yapan .bzl dosyası dışında bir paket bağlamındaki bağlamda Label
öğesine dönüştürülemez. Bu nedenle, dış makrolar her zaman etiket dizeleri yerine etiket nesnelerini iç makrolara iletmeyi tercih etmelidir.)
Parametreler
Parametre | Açıklama |
---|---|
input
|
string; veya Etiket;
gerekli Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi geçilirse olduğu gibi döndürülür. |
repo_name
string repo_name()Şu anda değerlendirilmekte olan paketi içeren deponun, önde gelen işaret işaretleri olmadan standart adı.
repository_name
string repository_name()Deneysel. Bu API deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin.
--+incompatible_enable_deprecated_label_apis
Desteği sonlandırıldı ayarlanarak deneysel olarak etkinleştirilebilir. Bunun yerine,
repo_name
kullanmayı tercih edin. Bu karakter, sahte bir @ işareti içermez ancak diğer açılardan aynı şekilde çalışır.Şu anda değerlendirilmekte olan paketi içeren deponun, başına tek bir @ işareti (@
) eklenmiş standart adı. Örneğin, WORKSPACE dizeleriyle local_repository(name='local', path=...)
çağrıştıran paketlerde bu değer @local
olarak ayarlanır. Ana depoda bulunan paketlerde bu değer @
olarak ayarlanır.
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 Etiket ne zaman kullanılacağını öğrenmek için makrolarla ilgili dokümanlara bakın. |
no_match_error
|
dize;
varsayılan olarak '' Hiçbir koşul eşleşmezse raporlanacak isteğe bağlı özel hata. |
alt paketler
sequence subpackages(include, exclude=[], allow_empty=False)Dosya sistemi dizini derinliğinden bağımsız olarak, geçerli paketin her doğrudan alt paketinin yeni ve değiştirilebilir bir listesini döndürür. Döndürülen liste sıralanır ve geçerli pakete göre alt paketlerin adlarını içerir. Bu işlevi doğrudan çağırmak yerine bazel_skylib.subpackages modülündeki yöntemleri tercih etmeniz önerilir.
Parametreler
Parametre | Açıklama |
---|---|
include
|
sequence of dize;
gerekli Alt paket taramasına dahil edilecek glob kalıplarının listesi. |
exclude
|
Dize dizisi;
varsayılan değer [] Alt paket taramasından hariç tutulacak genel ifade kalıplarının listesi. |
allow_empty
|
bool;
varsayılan değer False Çağrı boş bir liste döndürürse başarısız olup olmayacağımızı belirtir. Varsayılan olarak boş liste, BUILD dosyasında subpackages() çağrısının çok fazla olduğu olası hatayı gösterir. Doğru değerine ayarlamak, bu işlevin bu durumda başarılı olmasını sağlar. |