Yerel kuralları ve diğer paket yardımcı işlevlerini destekleyen yerleşik bir modül. Tüm yerel kurallar bu modülde işlev olarak görünür (ör. native.cc_library
). Yerel modülün yalnızca yükleme aşamasında (yani kurallar için değil, makrolar için) kullanılabildiğini unutmayın. Özellikler None
değerlerini yoksayar ve özelliği ayarlanmamış gibi değerlendirir.
Aşağıdaki işlevler de kullanılabilir:
Üyeler
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- subpackages
existing_rule
unknown native.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 kullanmayın. 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üşümünden 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 native.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.
Not: Mümkünse bu işlevi kullanmaktan kaçının. BUILD dosyalarını kırılgan ve sıraya bağımlı hale getirir.
exports_files
None
native.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 native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include
içinde en az bir kalıpla eşleşiyor.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 native.module_name()
module_ctx.modules
içinde görünen module.name
alanı ile aynıdır.
None
tarihine kadar iade edilebilir.
module_version
string native.module_version()
module_ctx.modules
içinde görünen module.version
alanı ile aynıdır.
None
tarihine kadar iade edilebilir.
package_group
None
native.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 native.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.
package_relative_label
Label native.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 Label nesnesi iletilirse olduğu gibi döndürülür. |
repo_name
string native.repo_name()
repository_name
string native.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
özelliğini kullanmanız önerilir.Şu anda değerlendirilmekte olan paketi içeren deponun standart adı. Tek bir @ işareti (@
) ile başlar. Örneğin, WORKSPACE stanza'sı local_repository(name='local', path=...)
tarafından oluşturulan paketlerde @local
olarak ayarlanır. Ana depodaki paketlerde @
olarak ayarlanır.
alt paketler
sequence native.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. |