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çme
- subpackages
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
parametresi, bağımlılık grubunun doğrudan öğelerinin bir listesi, transitive
parametresi ise öğeleri oluşturulan bağımlılık grubunun dolaylı öğeleri haline gelen bağımlılık gruplarının bir listesidir. Depset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order
parametresiyle belirtilir. Daha fazla bilgi için Depsise 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ü 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
|
varsayılan değer "default" Yeni depo kümesi 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. |
existing_rule
unknown existing_rule(name)
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.
--noincompatible_existing_rules_immutable_view
işareti ayarlanırsa bunun yerine aynı içeriğe sahip yeni bir değişebilir dikt döndürülür.
Sonuç, özel olanlar (adları harfle başlamayan) ve temsil edilemeyen birkaç eski özellik türü hariç her ö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.
Sonuçtaki değerler, özellik değerlerini aşağıdaki gibi temsil eder:
- str, int ve bool türünde özellikler olduğu gibi temsil edilir.
- Etiketler, aynı paketteki hedefler için
':foo'
veya farklı bir paketteki hedefler için'//pkg:name'
biçiminde dizeler halinde dönüştürülür. - Listeler delikler olarak temsil edilir ve dikteler yeni, değişebilen diktelere dönüştürülür. Öğeleri de aynı şekilde yinelemeli olarak dönüştürülür.
select
değerleri, içerikleri yukarıda açıklandığı gibi dönüştürülerek 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 kullanmaktan kaçının. BUILD dosyalarını kırılgan ve sıraya bağımlı hale getirir. Ayrıca, bu koşulun, dahili formdan Starlark'a kural özelliği değerlerini içeren diğer iki dönüşümden (biri hesaplanan varsayılanlar, diğeri ise ctx.attr.foo
tarafından kullanılan) arasında belli bir fark olmadığını unutmayın.
Parametreler
Parametre | Açıklama |
---|---|
name
|
required Hedefin adı. |
existing_rules
unknown existing_rules()
existing_rule(name)
tarafından döndürülecek sonuçla eşler.Burada dikkat benzeri sabit nesne, dikt benzeri yinelemeyi destekleyen x
, tamamen sabit olmayan nesne x
, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
ve x.values()
anlamına gelir.
--noincompatible_existing_rules_immutable_view
işareti ayarlanırsa bunun yerine aynı içeriğe sahip yeni bir değişebilir dikt döndürülür.
Not: Mümkünse bu işlevi kullanmaktan kaçının. BUILD dosyalarını kırılgan ve sıraya bağımlı hale getirir. Ayrıca, --noincompatible_existing_rules_immutable_view
işareti ayarlanmışsa bu işlev, özellikle bir döngü içinde çağrılırsa çok pahalı olabilir.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
Parametreler
Parametre | Açıklama |
---|---|
srcs
|
Dize dizisi;
zorunlu Dışa aktarılacak dosyaların listesi. |
visibility
|
sequence; veya None ;
varsayılan olarak None Görünürlük bildirimi belirtilebilir. Dosyalar, belirtilen hedefler tarafından görülebilir. Görünürlük belirtilmezse dosyalar her paket tarafından görülebilir. |
licenses
|
dizelerin sequence veya None ;
varsayılan olarak None Belirtilecek lisanslar. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
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
|
dize değerlerinin sequence (dizi) değeri; varsayılan değer [] 'dir. Dahil edilecek glob kalıplarının listesidir. |
exclude
|
Dize dizisi;
varsayılan değer [] Hariç tutulacak genel ifade kalıplarının listesi. |
exclude_directories
|
varsayılan değer 1 'tir.Dizinlerin hariç tutulup tutulmayacağını belirtir. |
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()
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()
module_ctx.modules
konumunda görülen module.version
alanıyla aynıdır.
None
değerini döndürebilir.
package_group
None
package_group(name, packages=[], includes=[])
visibility
özelliklerinde referans verilebilir.
Parametreler
Parametre | Açıklama |
---|---|
name
|
required Bu kuralın benzersiz adı. |
packages
|
Dize dizisi;
varsayılan değer [] Bu gruptaki paketlerin tam listesi. |
includes
|
Dize dizisi;
varsayılan değer [] Bu pakete dahil edilen diğer paket grupları. |
package_name
string package_name()
some/package/BUILD
için değer some/package
olur. BUILD dosyası, .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)
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 bir BUILD dosyası ve doğrudan veya dolaylı olarak çağırdığı makrolar değerlendirilirken çağrılabilir; (ör.) kural uygulama işlevinde çağrılamaz.
Bu işlevin sonucu, verilen dizenin BUILD dosyasında tanımlanan bir hedefin etiket değerli özelliğine iletilmesi sonucunda üretilecek Label
değeriyle aynıdır.
Kullanım notu: Bu işlev ile Label() arasındaki fark Label()
özelliğinin BUILD
dosyasının paketini değil, onu çağıran .bzl
dosyasının paketinin bağlamını 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 sağlanan bir etiket dizesini Label
nesnesine normalleştirmeniz gerektiğinde package_relative_label()
kullanın. (BUILD dosyası veya çağıran .bzl dosyası dışında bir paket bağlamında bir dizeyi Label
olarak dönüştürmenin bir yolu yoktur. Bu nedenle, dış makrolar Etiket nesnelerini her zaman etiket dizeleri yerine iç makrolara geçirmeyi tercih etmelidir.)
Parametreler
Parametre | Açıklama |
---|---|
input
|
dize veya Etiket;
zorunlu Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi geçilirse olduğu gibi döndürülür. |
repo_name
string repo_name()
repository_name
string repository_name()
--+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 kıtası tarafından oluşturulan paketlerde local_repository(name='local', path=...)
, @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
|
required 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
|
varsayılan değer '' Hiçbir koşul eşleşmezse raporlanacak isteğe bağlı özel hata. |
alt paketler
sequence subpackages(include, exclude=[], allow_empty=False)
Parametreler
Parametre | Açıklama |
---|---|
include
|
Dize dizisi;
zorunlu Alt paket taramasına dahil edilecek genel eşleme 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
|
varsayılan değerdir: False Çağrının boş liste döndürdüğü durumlarda başarısız olup olmayacağı. 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 durumda bu işlevin başarılı olmasını sağlar. |