BUILD dosyalarında kullanılabilen yöntemler. Ayrıca, BUILD dosyalarında da kullanılabilecek ek işlevler ve derleme kuralları için Build Encyclopedia'ya bakın.
Üyeler
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package
- package_default_visibility
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- seç
- subpackages
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
parametresi, depset'in doğrudan öğelerinin listesidir. transitive
parametresi ise öğeleri oluşturulan depset'in dolaylı öğeleri haline gelen depset'lerin listesidir. Depsset liste olarak dönüştürüldüğünde öğelerin döndürülme sırası order
parametresiyle belirtilir. Daha fazla bilgi için Depset'lere genel bakış başlıklı makaleyi inceleyin.
Bir depset'in tüm öğeleri (doğrudan ve dolaylı), type(x)
ifadesiyle elde edildiği gibi aynı türde olmalıdır.
Tekrarlama sırasında yinelenenleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, bir depset'in tüm öğeleri karma oluşturulabilir olmalıdır. Ancak bu değişmez, şu anda tüm oluşturucularda 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. 10313 numaralı soruna bakın.
Ayrıca, öğeler şu anda değişmez olmalıdır. Ancak bu kısıtlama gelecekte gevşetilecektir.
Oluşturulan bağımlılık kümesinin sırası, transitive
bağımlılık kümelerinin sırasıyla uyumlu olmalıdır. "default"
sırası diğer sıralarla uyumludur, diğer tüm sıralar yalnızca kendi aralarında uyumludur.
Parametreler
Parametre | Açıklama |
---|---|
direct
|
sequence; veya None ;
varsayılan değer None Bir depset'in direct öğelerinin listesi. |
order
|
string;
varsayılan değer "default" Yeni depset için geçiş stratejisi. Olası değerler için buraya bakın. |
transitive
|
depset'lerin sırası veya None ;
varsayılan değer None Öğeleri depset'in dolaylı öğeleri haline gelecek depset'lerin listesi. |
existing_rule
unknown existing_rule(name)
None
döndürür.Burada değiştirilemez sözlük benzeri nesne, sözlük benzeri yinelemeyi destekleyen x
, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
ve x.values()
gibi derinlemesine değiştirilemez bir nesne anlamına gelir.
Sonuç, özel olanlar (adları harfle başlamayanlar) ve birkaç temsil edilemeyen eski özellik türü hariç olmak üzere her özellik için bir giriş içerir. Ayrıca sözlük, kural örneğinin name
ve kind
girişlerini (örneğin, 'cc_binary'
) içerir.
Sonucun değerleri, özellik değerlerini aşağıdaki gibi temsil eder:
- str, int ve bool türündeki özellikler olduğu gibi gösterilir.
- Etiketler, aynı paketteki hedefler için
':foo'
biçiminde, farklı paketteki hedefler için ise'//pkg:name'
biçiminde dizelere dönüştürülür. - Listeler demet olarak gösterilir ve sözlükler yeni, değiştirilebilir sözlüklere dönüştürülür. Bu öğeler, aynı şekilde yinelemeli olarak dönüştürülür.
select
değerleri, içerikleri yukarıda açıklandığı şekilde dönüştürülerek döndürülür.- Kural oluşturma sırasında değeri belirtilmeyen ve varsayılan değeri hesaplanan özellikler sonuçtan çıkarılır. (Hesaplanmış varsayılanlar, analiz aşamasına kadar hesaplanamaz.)
Mümkünse bu işlevi yalnızca kural sonlandırıcı sembolik makroları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ılı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 formdan Starlark'a dönüştürülmesinin diğer iki dönüşümden biraz farklı olduğunu unutmayın: Biri hesaplanmış varsayılanlar, diğeri ise ctx.attr.foo
tarafından kullanılır.
Parametreler
Parametre | Açıklama |
---|---|
name
|
string;
required Hedefin adı. |
existing_rules
unknown existing_rules()
existing_rule(name)
tarafından döndürülecek sonuçla eşler.Burada değiştirilemez sözlük benzeri nesne, sözlük benzeri yinelemeyi destekleyen x
, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
ve x.values()
gibi derinlemesine değiştirilemez bir nesne anlamına gelir.
Mümkünse bu işlevi yalnızca kural sonlandırıcı sembolik makroları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ılır. Bu işlev, BUILD
dosyalarını kırılgan ve sıraya bağımlı hale getirir.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
Parametreler
Parametre | Açıklama |
---|---|
srcs
|
sequence of strings;
required Dışa aktarılacak dosyaların listesi. |
visibility
|
sequence veya None ;
varsayılan değer None Görünürlük bildirimi belirtilebilir. Dosyalar, belirtilen hedefler tarafından görülebilir. Görünürlük belirtilmezse dosyalar her pakette görünür. |
licenses
|
Dize dizisi veya None ;
varsayılan değer None Belirtilecek lisanslar. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include
içinde en az bir kalıpla eşleşir.exclude
içindeki kalıplardan 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
|
Dizelerin sırası;
varsayılan değer [] Dahil edilecek glob desenlerinin listesi. |
exclude
|
string'lerin sırası;
varsayılan değer [] Hariç tutulacak glob desenlerinin 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 'dir. Glob kalıplarının hiçbir şeyle eşleşmesine izin verilip verilmeyeceği. `allow_empty` False ise her bir dahil etme kalıbı bir şeyle eşleşmeli ve son sonuç da boş olmamalıdır (eşleşen `exclude` kalıpları hariç tutulduktan sonra). |
module_name
string module_name()
module_ctx.modules
içinde görünen module.name
alanı ile aynıdır.
None
iade edilebilir.
module_version
string module_version()
module_ctx.modules
içinde görünen module.version
alanı ile aynıdır.
None
iade edilebilir.
paket
unknown package(**kwargs)
load()
ifadelerinden hemen sonra gelmelidir.
Parametreler
Parametre | Açıklama |
---|---|
kwargs
|
required Geçerli bağımsız değişkenler için Yapı Ansiklopedisi'ndeki package() işlevine bakın.
|
package_default_visibility
List package_default_visibility()
package()
öğesinin default_visibility
parametresinin değeridir.
package_group
None
package_group(name, packages=[], includes=[])
visibility
özelliklerinde referans verilebilir.
Parametreler
Parametre | Açıklama |
---|---|
name
|
string;
required Bu kuralın benzersiz adı. |
packages
|
sequence of strings;
default is [] Bu gruptaki paketlerin tam listesi. |
includes
|
string'lerin sequence'ı;
varsayılan değer [] Buna dahil edilen diğer paket grupları. |
package_name
string package_name()
some/package/BUILD
BUILD dosyasında değeri 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. Değer, kök paket için her zaman boş bir dize olur.
package_relative_label
Label package_relative_label(input)
BUILD
dosyası) bir Label nesnesine dönüştürür. Giriş zaten bir Label
ise değiştirilmeden 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. Örneğin, bir kural uygulama işlevinde çağrılamaz.
Bu işlevin sonucu, verilen dizeyi BUILD dosyasında belirtilen bir hedefin etiket değerli özelliğine ileterek elde edilen Label
değeriyle aynıdır.
Kullanım notu: Bu işlev ile Label() arasındaki fark, Label()
işlevinin BUILD
dosyasının değil, kendisini çağıran .bzl
dosyasının paket bağlamını kullanmasıdır. Bir derleyici gibi makroya sabit kodlanmış bir hedefe başvurmanız gerektiğinde Label()
kullanın. BUILD dosyası tarafından sağlanan bir etiket dizesini package_relative_label()
nesnesine normalleştirmeniz gerektiğinde package_relative_label()
işlevini kullanın.Label
(BUILD dosyası veya çağıran .bzl dosyası dışındaki bir paket bağlamında bir dizeyi Label
öğesine dönüştürmenin bir yolu yoktur. Bu nedenle, dış makrolar her zaman etiket dizeleri yerine etiket nesnelerini iç makrolara geçirmeyi tercih etmelidir.)
Parametreler
Parametre | Açıklama |
---|---|
input
|
string veya Label;
required Giriş etiketi dizesi veya Etiket nesnesi. Bir Etiket nesnesi iletilirse olduğu gibi döndürülür. |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis
Kullanımdan kaldırıldı. ayarlanarak deneysel olarak etkinleştirilebilir. Bunun yerine, başında gereksiz @ işareti içermeyen ancak diğer açılardan aynı şekilde çalışan
repo_name
kullanılması tercih edilir.Şu anda değerlendirilmekte olan paketi içeren deponun standart adı. Tek bir @ işareti (@
) ile başlar. Örneğin, WORKSPACE stanza local_repository(name='local', path=...)
tarafından oluşturulan paketlerde @local
olarak ayarlanır. Ana depodaki paketlerde @
olarak ayarlanır.
seç
unknown select(x, no_match_error='')
select()
, bir kural özelliğini yapılandırılabilir hale getiren yardımcı işlevdir. Ayrıntılar için yapı ansiklopedisine bakın.
Parametreler
Parametre | Açıklama |
---|---|
x
|
dict;
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 ne zaman etiket kullanılması gerektiği hakkında bilgi edinmek için makrolarla ilgili dokümanları inceleyin. |
no_match_error
|
string;
varsayılan değer '' Hiçbir koşul eşleşmezse bildirilecek isteğe bağlı özel hata. |
alt paketler
sequence subpackages(include, exclude=[], allow_empty=False)
Parametreler
Parametre | Açıklama |
---|---|
include
|
sequence of strings;
required Alt paket taramasına dahil edilecek glob kalıplarının listesi. |
exclude
|
string'lerin sequence'ı;
varsayılan değer [] Alt paket taramasından hariç tutulacak glob desenlerinin 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. Varsayılan olarak boş liste, subpackages() çağrısının gereksiz olduğu BUILD dosyasında olası bir hatayı gösterir. Doğru olarak ayarlamak, bu işlevin söz konusu durumda başarılı olmasını sağlar. |